<?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>101748</bug_id>
          
          <creation_ts>2012-11-09 05:52:50 -0800</creation_ts>
          <short_desc>[WK2][GTK][EFL] Share WebKit2-GTK&apos;s WebProcess Accessibility implementation with other WebKit ports.</short_desc>
          <delta_ts>2012-11-16 08:02:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>99578</dependson>
          <blocked>98895</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Krzysztof Czech">k.czech</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apinheiro</cc>
    
    <cc>g.czajkowski</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jdiggs</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mario</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762908</commentid>
    <comment_count>0</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-09 05:52:50 -0800</bug_when>
    <thetext>Remove and rename files related to Accessibility from WebPage/gtk to WebPage/atk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762944</commentid>
    <comment_count>1</comment_count>
      <attachid>173293</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-09 06:23:06 -0800</bug_when>
    <thetext>Created attachment 173293
[EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762955</commentid>
    <comment_count>2</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-09 06:30:55 -0800</bug_when>
    <thetext>Sharing the WebCore&apos;s Accessibility, I thought that, some bits from WebProcess part can also be shared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764109</commentid>
    <comment_count>3</comment_count>
      <attachid>173293</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-11-11 23:55:06 -0800</bug_when>
    <thetext>Comment on attachment 173293
[EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.

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

&gt; Source/WebKit2/ChangeLog:3
&gt; +        [EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.

I think this is not related to [EFL] port patch. I think [WK2] is proper for this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764386</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 07:11:31 -0800</bug_when>
    <thetext>Attachment 173293 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.h:26:  #ifndef header guard has wrong style, please use: WebPageAccessibilityObjectAtk_h  [build/header_guard] [5]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.h:56:  web_page_accessibility_object_get_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:107:  web_page_accessibility_object_init is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:111:  web_page_accessibility_object_class_init is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 4 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>765575</commentid>
    <comment_count>5</comment_count>
      <attachid>173889</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-13 07:25:56 -0800</bug_when>
    <thetext>Created attachment 173889
[WK2] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765576</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 07:30:25 -0800</bug_when>
    <thetext>Attachment 173889 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.h:26:  #ifndef header guard has wrong style, please use: WebPageAccessibilityObjectAtk_h  [build/header_guard] [5]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.h:56:  web_page_accessibility_object_get_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:107:  web_page_accessibility_object_init is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:111:  web_page_accessibility_object_class_init is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 4 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>765591</commentid>
    <comment_count>7</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-11-13 07:50:00 -0800</bug_when>
    <thetext>This patch touches WK2-GTK implementation. How about changing the title to: [WK2][GTK][EFL] ..

There is style error which is connected witch the proposed changes:
#ifndef header guard has wrong style, please use: WebPageAccessibilityObjectAtk_h

IMHO, other style errors could be fixed in this bug according to WebKit coding style (only 3 left). It will encourage the reviewers to take a look at the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766929</commentid>
    <comment_count>8</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-14 08:29:18 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; This patch touches WK2-GTK implementation. How about changing the title to: [WK2][GTK][EFL] ..
I think is sounds reasonable. Done
&gt; 
&gt; There is style error which is connected witch the proposed changes:
&gt; #ifndef header guard has wrong style, please use: WebPageAccessibilityObjectAtk_h
Done.
&gt; 
&gt; IMHO, other style errors could be fixed in this bug according to WebKit coding style (only 3 left). It will encourage the reviewers to take a look at the patch.

I think it is glib&apos;s ecosystem naming convention so probably it should be left as it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766930</commentid>
    <comment_count>9</comment_count>
      <attachid>174168</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-14 08:29:56 -0800</bug_when>
    <thetext>Created attachment 174168
[WK2][GTK][EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766932</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-11-14 08:30:46 -0800</bug_when>
    <thetext>(In reply to comment #8)

&gt; I think it is glib&apos;s ecosystem naming convention so probably it should be left as it is.

At some point the GTK+ port switched to only using GLib naming conventions in public headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766937</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 08:34:14 -0800</bug_when>
    <thetext>Attachment 174168 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.h:56:  web_page_accessibility_object_get_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:107:  web_page_accessibility_object_init is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:111:  web_page_accessibility_object_class_init is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 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>767766</commentid>
    <comment_count>12</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-11-14 23:27:07 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; 
&gt; &gt; I think it is glib&apos;s ecosystem naming convention so probably it should be left as it is.
&gt; 
&gt; At some point the GTK+ port switched to only using GLib naming conventions in public headers.

Thanks for the clarifications. LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768173</commentid>
    <comment_count>13</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-15 09:27:01 -0800</bug_when>
    <thetext>This patch eliminates some code duplication in terms of Accessibility (see 99578)

Ping reviewers ?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768193</commentid>
    <comment_count>14</comment_count>
      <attachid>174168</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-11-15 09:44:19 -0800</bug_when>
    <thetext>Comment on attachment 174168
[WK2][GTK][EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.

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

&gt; Source/WebKit2/GNUmakefile.list.am:1148
&gt; +    Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.h \
&gt; +    Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp \

It seems to maintain the alphabetical ordering, these should go above Source/WebKit2/WebProcess/WebPage/gtk/WebInspectorGtk.cpp.

&gt; Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp:33
&gt; +#include &quot;WebPageAccessibilityObjectAtk.h&quot;

It makes sense to keep the header name as WebPageAccessibilityObject.h since that&apos;s the name of GObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769073</commentid>
    <comment_count>15</comment_count>
      <attachid>174637</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-16 03:33:33 -0800</bug_when>
    <thetext>Created attachment 174637
[WK2][GTK][EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.

[WK2][GTK][EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769079</commentid>
    <comment_count>16</comment_count>
      <attachid>174638</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-16 03:37:48 -0800</bug_when>
    <thetext>Created attachment 174638
[WK2][GTK][EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769080</commentid>
    <comment_count>17</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-16 03:38:21 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 174168 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174168&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/GNUmakefile.list.am:1148
&gt; &gt; +    Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.h \
&gt; &gt; +    Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp \
&gt; 
&gt; It seems to maintain the alphabetical ordering, these should go above Source/WebKit2/WebProcess/WebPage/gtk/WebInspectorGtk.cpp.
Done.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp:33
&gt; &gt; +#include &quot;WebPageAccessibilityObjectAtk.h&quot;
&gt; 
&gt; It makes sense to keep the header name as WebPageAccessibilityObject.h since that&apos;s the name of GObject.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769083</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 03:41:13 -0800</bug_when>
    <thetext>Attachment 174638 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:107:  web_page_accessibility_object_init is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:111:  web_page_accessibility_object_class_init is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObject.h:56:  web_page_accessibility_object_get_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 in 5 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>769108</commentid>
    <comment_count>19</comment_count>
      <attachid>174638</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-11-16 04:26:32 -0800</bug_when>
    <thetext>Comment on attachment 174638
[WK2][GTK][EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.

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

The changes look good to me. Actually the only comment I can make about them is about fixing an issue with naming I&apos;m guilty of :/

Additionally, besides the code in this patch (which is about the AtkPlug part in the Web process only), I wonder if it could be possible to share the bits in WebKit2/UIProcess/API/gtk/WebKitWebViewBaseAccessible.[cpp|h] as well, as they implement the other side of this thing (the AtkSocket part in the UI process).

Or maybe you were already thinking of doing that in a separate bug?

&gt; Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:60
&gt; +    Page* page = accessible-&gt;m_page-&gt;corePage();
&gt; +    if (!page)
&gt; +        return 0;
&gt; +
&gt; +    Frame* core = page-&gt;mainFrame();
&gt; +    if (!core || !core-&gt;document())
&gt; +        return 0;
&gt; +
&gt; +    AccessibilityObject* root = core-&gt;document()-&gt;axObjectCache()-&gt;rootObject();
&gt; +    if (!root)
&gt; +        return 0;
&gt; +
&gt; +    AtkObject* axRoot = root-&gt;wrapper();

I know I&apos;m the one to blame for this in the first place, but perhaps this patch is a good moment to use more meaningful names here :)

  page -&gt; corePage
  core -&gt; coreFrame
  root -&gt; coreRootObject
  axRoot -&gt; rootObject (to be consistent with the rest of this file)

... or something like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769217</commentid>
    <comment_count>20</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-16 06:46:47 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 174638 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174638&amp;action=review
&gt; 
&gt; The changes look good to me. Actually the only comment I can make about them is about fixing an issue with naming I&apos;m guilty of :/
&gt; 
&gt; Additionally, besides the code in this patch (which is about the AtkPlug part in the Web process only), I wonder if it could be possible to share the bits in WebKit2/UIProcess/API/gtk/WebKitWebViewBaseAccessible.[cpp|h] as well, as they implement the other side of this thing (the AtkSocket part in the UI process).
&gt; 
&gt; Or maybe you were already thinking of doing that in a separate bug?
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:60
&gt; &gt; +    Page* page = accessible-&gt;m_page-&gt;corePage();
&gt; &gt; +    if (!page)
&gt; &gt; +        return 0;
&gt; &gt; +
&gt; &gt; +    Frame* core = page-&gt;mainFrame();
&gt; &gt; +    if (!core || !core-&gt;document())
&gt; &gt; +        return 0;
&gt; &gt; +
&gt; &gt; +    AccessibilityObject* root = core-&gt;document()-&gt;axObjectCache()-&gt;rootObject();
&gt; &gt; +    if (!root)
&gt; &gt; +        return 0;
&gt; &gt; +
&gt; &gt; +    AtkObject* axRoot = root-&gt;wrapper();
&gt; 
&gt; I know I&apos;m the one to blame for this in the first place, but perhaps this patch is a good moment to use more meaningful names here :)
&gt; 
&gt;   page -&gt; corePage
&gt;   core -&gt; coreFrame
&gt;   root -&gt; coreRootObject
&gt;   axRoot -&gt; rootObject (to be consistent with the rest of this file)
&gt; 
&gt; ... or something like that.
Sounds good to me. I will change those names.

Thank you for review.
I was also thinking about sharing WebKitWebViewBaseAccessible.[cpp|h] from UIProcess part. I think it&apos;s feasible. Let&apos;s have a separate bug on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769222</commentid>
    <comment_count>21</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-16 06:53:45 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; (From update of attachment 174638 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174638&amp;action=review
&gt; &gt; 
&gt; &gt; The changes look good to me. Actually the only comment I can make about them is about fixing an issue with naming I&apos;m guilty of :/
&gt; &gt; 
&gt; &gt; Additionally, besides the code in this patch (which is about the AtkPlug part in the Web process only), I wonder if it could be possible to share the bits in WebKit2/UIProcess/API/gtk/WebKitWebViewBaseAccessible.[cpp|h] as well, as they implement the other side of this thing (the AtkSocket part in the UI process).
&gt; &gt; 
&gt; &gt; Or maybe you were already thinking of doing that in a separate bug?
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:60
&gt; &gt; &gt; +    Page* page = accessible-&gt;m_page-&gt;corePage();
&gt; &gt; &gt; +    if (!page)
&gt; &gt; &gt; +        return 0;
&gt; &gt; &gt; +
&gt; &gt; &gt; +    Frame* core = page-&gt;mainFrame();
&gt; &gt; &gt; +    if (!core || !core-&gt;document())
&gt; &gt; &gt; +        return 0;
&gt; &gt; &gt; +
&gt; &gt; &gt; +    AccessibilityObject* root = core-&gt;document()-&gt;axObjectCache()-&gt;rootObject();
&gt; &gt; &gt; +    if (!root)
&gt; &gt; &gt; +        return 0;
&gt; &gt; &gt; +
&gt; &gt; &gt; +    AtkObject* axRoot = root-&gt;wrapper();
&gt; &gt; 
&gt; &gt; I know I&apos;m the one to blame for this in the first place, but perhaps this patch is a good moment to use more meaningful names here :)
&gt; &gt; 
&gt; &gt;   page -&gt; corePage
&gt; &gt;   core -&gt; coreFrame
&gt; &gt;   root -&gt; coreRootObject
&gt; &gt;   axRoot -&gt; rootObject (to be consistent with the rest of this file)
&gt; &gt; 
&gt; &gt; ... or something like that.
&gt; Sounds good to me. I will change those names.
&gt; 
&gt; Thank you for review.
&gt; I was also thinking about sharing WebKitWebViewBaseAccessible.[cpp|h] from UIProcess part. I think it&apos;s feasible. Let&apos;s have a separate bug on this.

I have opened ticket for this, https://bugs.webkit.org/show_bug.cgi?id=102502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769236</commentid>
    <comment_count>22</comment_count>
      <attachid>174677</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-11-16 07:10:31 -0800</bug_when>
    <thetext>Created attachment 174677
[WK2][GTK][EFL] Share WebKit2-GTK&apos;s WebProcess Accessibility implementation with other WebKit ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769240</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 07:14:27 -0800</bug_when>
    <thetext>Attachment 174677 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:107:  web_page_accessibility_object_init is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:111:  web_page_accessibility_object_class_init is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit2/WebProcess/WebPage/atk/WebPageAccessibilityObject.h:56:  web_page_accessibility_object_get_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 in 5 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>769277</commentid>
    <comment_count>24</comment_count>
      <attachid>174677</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 08:02:23 -0800</bug_when>
    <thetext>Comment on attachment 174677
[WK2][GTK][EFL] Share WebKit2-GTK&apos;s WebProcess Accessibility implementation with other WebKit ports.

Clearing flags on attachment: 174677

Committed r134951: &lt;http://trac.webkit.org/changeset/134951&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769278</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 08:02:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173293</attachid>
            <date>2012-11-09 06:23:06 -0800</date>
            <delta_ts>2012-11-13 07:25:56 -0800</delta_ts>
            <desc>[EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.</desc>
            <filename>wk2-share-a11y.patch</filename>
            <type>text/plain</type>
            <size>22003</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0MjUzY2FhLi5lMGM3MTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTItMTEtMDkgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0VGTF0gU2hhcmUgV2ViS2l0Mi1HVEsncyBBY2Nlc3NpYmlsaXR5IGltcGxlbWVu
dGF0aW9uIHdpdGggb3RoZXIgV2ViS2l0IHBvcnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGFuZCByZW5hbWUgZmlsZXMgcmVsYXRlZCB0
byBBY2Nlc3NpYmlsaXR5IGZyb20gV2ViUGFnZS9ndGsgdG8gV2ViUGFnZS9hdGsuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcC4KKyAgICAgICAgKGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBl
cik6CisgICAgICAgICh3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEluaXRpYWxpemUpOgorICAg
ICAgICAod2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RHZXRJbmRleEluUGFyZW50KToKKyAgICAg
ICAgKHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0TkNoaWxkcmVuKToKKyAgICAgICAgKHdl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmQ2hpbGQpOgorICAgICAgICAod2ViX3BhZ2VfYWNj
ZXNzaWJpbGl0eV9vYmplY3RfaW5pdCk6CisgICAgICAgICh3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5
X29iamVjdF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0
TmV3KToKKyAgICAgICAgKHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmcmVzaCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0
ay5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9X
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KF9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgIChfV2ViUGFnZUFjY2Vzc2li
aWxpdHlPYmplY3RDbGFzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQ
YWdlR3RrLmNwcDoKKwogMjAxMi0xMS0wNyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUu
ZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIEFkZCByZXBsYWNlV2l0aExpdGVyYWwoKSBtZXRo
b2QgdG8gV1RGOjpTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggMGJiZmVhZS4uNjdlODcx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUuYW0KQEAgLTg3LDYgKzg3LDcgQEAgbGlid2Via2l0Mmd0a19A
V0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9O
QF9sYV9DUFAKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L2d0ayBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9zb3VwIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UgXAorICAgIC1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9hdGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsgXAogCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIgXAogCS1J
JCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvaW5jbHVkZSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5ZDQ3Yjc2Li42MGFhMzQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTExNDQsNiArMTE0NCw4IEBAIHdlYmtpdDJfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQ
b3B1cE1lbnUuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJWaWJyYXRpb25DbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5oIFwKKyAgICBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvYXRrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmggXAorICAg
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3RBdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRGVj
b2RlckFkYXB0ZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRGVj
b2RlckFkYXB0ZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmNwcCBcCkBAIC0xMTU5LDggKzExNjEsNiBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UYXBIaWdobGlnaHRDb250cm9sbGVy
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RhcEhpZ2hsaWdodENv
bnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJJ
bnNwZWN0b3JHdGsuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmggXAotCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcCBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlv
bkd0ay5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IGVhZmM4NzEuLmY5YjJmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaApAQCAtNzksNyArNzksNyBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2lu
Y2x1ZGUgIkFyZ3VtZW50Q29kZXJzR3RrLmgiCi0jaW5jbHVkZSAiV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5oIgog
I2luY2x1ZGUgIldlYlByaW50T3BlcmF0aW9uR3RrLmgiCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdEF0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zMDAxZjYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKQEAg
LTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0QXRrLmgiCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9BWE9iamVjdENhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK0dfREVGSU5FX1RZUEUoV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3Qs
IHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0LCBBVEtfVFlQRV9QTFVHKQorCitzdGF0aWMg
QXRrT2JqZWN0KiBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIoQXRrT2JqZWN0KiBhdGtP
YmplY3QpCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICBBWE9iamVjdENhY2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7CisKKyAgICBX
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJsZSA9IFdFQl9QQUdFX0FDQ0VTU0lC
SUxJVFlfT0JKRUNUKGF0a09iamVjdCk7CisgICAgaWYgKCFhY2Nlc3NpYmxlLT5tX3BhZ2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgUGFnZSogcGFnZSA9IGFjY2Vzc2libGUtPm1fcGFnZS0+
Y29yZVBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgRnJh
bWUqIGNvcmUgPSBwYWdlLT5tYWluRnJhbWUoKTsKKyAgICBpZiAoIWNvcmUgfHwgIWNvcmUtPmRv
Y3VtZW50KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
cm9vdCA9IGNvcmUtPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+cm9vdE9iamVjdCgpOwor
ICAgIGlmICghcm9vdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBBdGtPYmplY3QqIGF4Um9v
dCA9IHJvb3QtPndyYXBwZXIoKTsKKyAgICBpZiAoIWF4Um9vdCB8fCAhQVRLX0lTX09CSkVDVChh
eFJvb3QpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBheFJvb3Q7Cit9CisKK3N0
YXRpYyB2b2lkIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0SW5pdGlhbGl6ZShBdGtPYmplY3Qq
IGF0a09iamVjdCwgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBpZiAoQVRLX09CSkVDVF9DTEFTUyh3
ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9wYXJlbnRfY2xhc3MpLT5pbml0aWFsaXplKQor
ICAgICAgICBBVEtfT0JKRUNUX0NMQVNTKHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X3Bh
cmVudF9jbGFzcyktPmluaXRpYWxpemUoYXRrT2JqZWN0LCBkYXRhKTsKKworICAgIFdFQl9QQUdF
X0FDQ0VTU0lCSUxJVFlfT0JKRUNUKGF0a09iamVjdCktPm1fcGFnZSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViUGFnZSo+KGRhdGEpOworICAgIGF0a19vYmplY3Rfc2V0X3JvbGUoYXRrT2JqZWN0LCBB
VEtfUk9MRV9GSUxMRVIpOworfQorCitzdGF0aWMgZ2ludCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdEdldEluZGV4SW5QYXJlbnQoQXRrT2JqZWN0ICphdGtPYmplY3QpCit7CisgICAgLy8gQW4g
QXRrUGx1ZyBpcyB0aGUgb25seSBjaGlsZCBhbiBBdGtTb2NrZXQgY2FuIGhhdmUuCisgICAgcmV0
dXJuIDA7Cit9CisKK3N0YXRpYyBnaW50IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0TkNo
aWxkcmVuKEF0a09iamVjdCogYXRrT2JqZWN0KQoreworICAgIEF0a09iamVjdCogcm9vdE9iamVj
dCA9IGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcihhdGtPYmplY3QpOworICAgIGlmICgh
cm9vdE9iamVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gMTsKK30KKworc3Rh
dGljIEF0a09iamVjdCogd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZDaGlsZChBdGtPYmpl
Y3QqIGF0a09iamVjdCwgZ2ludCBpbmRleCkKK3sKKyAgICAvLyBJdCdzIHN1cHBvc2VkIHRvIGhh
dmUgZWl0aGVyIG9uZSBjaGlsZCBvciB6ZXJvLgorICAgIGlmIChpbmRleCAmJiBpbmRleCAhPSAx
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIEF0a09iamVjdCogcm9vdE9iamVjdCA9IGFjY2Vz
c2liaWxpdHlSb290T2JqZWN0V3JhcHBlcihhdGtPYmplY3QpOworICAgIGlmICghcm9vdE9iamVj
dCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBhdGtfb2JqZWN0X3NldF9wYXJlbnQocm9vdE9i
amVjdCwgYXRrT2JqZWN0KTsKKyAgICBnX29iamVjdF9yZWYocm9vdE9iamVjdCk7CisKKyAgICBy
ZXR1cm4gcm9vdE9iamVjdDsKK30KKworc3RhdGljIHZvaWQgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0
eV9vYmplY3RfaW5pdChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJsZSkKK3sK
K30KKworc3RhdGljIHZvaWQgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfY2xhc3NfaW5p
dChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzKiBrbGFzcykKK3sKKyAgICBBdGtPYmpl
Y3RDbGFzcyogYXRrT2JqZWN0Q2xhc3MgPSBBVEtfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKworICAg
IC8vIE5vIG5lZWQgdG8gaW1wbGVtZW50IGdldF9wYXJlbnQoKSBoZXJlIHNpbmNlIHRoaXMgaXMg
YSBzdWJjbGFzcworICAgIC8vIG9mIEF0a1BsdWcgYW5kIGFsbCB0aGUgbG9naWMgcmVsYXRlZCB0
byB0aGF0IGZ1bmN0aW9uIHdpbGwgYmUKKyAgICAvLyBpbXBsZW1lbnRlZCBieSB0aGUgQVRLIGJy
aWRnZS4KKyAgICBhdGtPYmplY3RDbGFzcy0+aW5pdGlhbGl6ZSA9IHdlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0SW5pdGlhbGl6ZTsKKyAgICBhdGtPYmplY3RDbGFzcy0+Z2V0X2luZGV4X2luX3Bh
cmVudCA9IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0SW5kZXhJblBhcmVudDsKKyAgICBh
dGtPYmplY3RDbGFzcy0+Z2V0X25fY2hpbGRyZW4gPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVj
dEdldE5DaGlsZHJlbjsKKyAgICBhdGtPYmplY3RDbGFzcy0+cmVmX2NoaWxkID0gd2ViUGFnZUFj
Y2Vzc2liaWxpdHlPYmplY3RSZWZDaGlsZDsKK30KKworV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0TmV3KFdlYlBhZ2UqIHBhZ2UpCit7CisgICAg
QXRrT2JqZWN0KiBvYmplY3QgPSBBVEtfT0JKRUNUKGdfb2JqZWN0X25ldyhXRUJfVFlQRV9QQUdF
X0FDQ0VTU0lCSUxJVFlfT0JKRUNULCBOVUxMKSk7CisgICAgYXRrX29iamVjdF9pbml0aWFsaXpl
KG9iamVjdCwgcGFnZSk7CisgICAgcmV0dXJuIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNU
KG9iamVjdCk7Cit9CisKK3ZvaWQgd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZyZXNoKFdl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmxlKQoreworICAgIC8vIFdlIGp1c3Qg
bmVlZCB0byBlbnN1cmUgdGhhdCB0aGVyZSdzIGEgY29ubmVjdGlvbiBpbiB0aGUgQVRLCisgICAg
Ly8gd29ybGQgYmV0d2VlbiB0aGlzIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGFuZCB0aGUgQXRrT2Jq
ZWN0IG9mCisgICAgLy8gdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGZvciB0aGUgcm9vdCBvZiB0
aGUgRE9NIHRyZWUuCisgICAgQXRrT2JqZWN0KiByb290T2JqZWN0ID0gYWNjZXNzaWJpbGl0eVJv
b3RPYmplY3RXcmFwcGVyKEFUS19PQkpFQ1QoYWNjZXNzaWJsZSkpOworICAgIGlmICghcm9vdE9i
amVjdCkKKyAgICAgICAgcmV0dXJuOworICAgIGF0a19vYmplY3Rfc2V0X3BhcmVudChyb290T2Jq
ZWN0LCBBVEtfT0JKRUNUKGFjY2Vzc2libGUpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RBdGsu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2li
aWxpdHlPYmplY3RBdGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjc5
ZDliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5oCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdF9oCisjZGVmaW5lIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5
T2JqZWN0X2gKKworI2luY2x1ZGUgPGF0ay9hdGsuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Citj
bGFzcyBXZWJQYWdlOworfQorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCX1RZUEVfUEFH
RV9BQ0NFU1NJQklMSVRZX09CSkVDVCAgICAgICAgICAgICAgKHdlYl9wYWdlX2FjY2Vzc2liaWxp
dHlfb2JqZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JK
RUNUKG9iamVjdCkgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqZWN0
KSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3QpKQorI2RlZmluZSBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVF9DTEFTUyhr
bGFzcykgICAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgV0VCX1RZUEVfUEFH
RV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcykp
CisjZGVmaW5lIFdFQl9JU19QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKG9iamVjdCkgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqZWN0KSwgV0VCX1RZUEVfUEFHRV9BQ0NF
U1NJQklMSVRZX09CSkVDVCkpCisjZGVmaW5lIFdFQl9JU19QQUdFX0FDQ0VTU0lCSUxJVFlfT0JK
RUNUX0NMQVNTKGtsYXNzKSAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCBXRUJf
VFlQRV9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKSkKKyNkZWZpbmUgV0VCX1BBR0VfQUNDRVNT
SUJJTElUWV9PQkpFQ1RfR0VUX0NMQVNTKG9iamVjdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xB
U1MoKG9iamVjdCksIFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QsIFdlYlBhZ2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViUGFnZUFjY2Vz
c2liaWxpdHlPYmplY3QgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3Q7Cit0eXBlZGVmIHN0cnVj
dCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyBXZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdENsYXNzOworCitzdHJ1Y3QgX1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0IHsKKyAgICBB
dGtQbHVnIHBhcmVudDsKKyAgICBXZWJLaXQ6OldlYlBhZ2UqIG1fcGFnZTsKK307CisKK3N0cnVj
dCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyB7CisgICAgQXRrUGx1Z0NsYXNzIHBh
cmVudENsYXNzOworfTsKKworR1R5cGUgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfZ2V0
X3R5cGUoKTsKKworV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0TmV3KFdlYktpdDo6V2ViUGFnZSopOworCit2b2lkIHdlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0UmVmcmVzaChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCopOworCitHX0VORF9E
RUNMUworCisjZW5kaWYgLy8gV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjIzNzAwMC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDE0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdC5oIgotCi0jaW5jbHVkZSAiV2ViUGFnZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQVhP
YmplY3RDYWNoZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2UuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1HX0RFRklORV9UWVBFKFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LCB3ZWJf
cGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdCwgQVRLX1RZUEVfUExVRykKLQotc3RhdGljIEF0a09i
amVjdCogYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyKEF0a09iamVjdCogYXRrT2JqZWN0
KQotewotICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAg
ICAgICAgQVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgpOwotCi0gICAgV2ViUGFn
ZUFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2libGUgPSBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZ
X09CSkVDVChhdGtPYmplY3QpOwotICAgIGlmICghYWNjZXNzaWJsZS0+bV9wYWdlKQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIFBhZ2UqIHBhZ2UgPSBhY2Nlc3NpYmxlLT5tX3BhZ2UtPmNvcmVQ
YWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEZyYW1lKiBj
b3JlID0gcGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFjb3JlIHx8ICFjb3JlLT5kb2N1bWVu
dCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3Qg
PSBjb3JlLT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnJvb3RPYmplY3QoKTsKLSAgICBp
ZiAoIXJvb3QpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQXRrT2JqZWN0KiBheFJvb3QgPSBy
b290LT53cmFwcGVyKCk7Ci0gICAgaWYgKCFheFJvb3QgfHwgIUFUS19JU19PQkpFQ1QoYXhSb290
KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gYXhSb290OwotfQotCi1zdGF0aWMg
dm9pZCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEluaXRpYWxpemUoQXRrT2JqZWN0KiBhdGtP
YmplY3QsIGdwb2ludGVyIGRhdGEpCi17Ci0gICAgaWYgKEFUS19PQkpFQ1RfQ0xBU1Mod2ViX3Bh
Z2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfcGFyZW50X2NsYXNzKS0+aW5pdGlhbGl6ZSkKLSAgICAg
ICAgQVRLX09CSkVDVF9DTEFTUyh3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9wYXJlbnRf
Y2xhc3MpLT5pbml0aWFsaXplKGF0a09iamVjdCwgZGF0YSk7Ci0KLSAgICBXRUJfUEFHRV9BQ0NF
U1NJQklMSVRZX09CSkVDVChhdGtPYmplY3QpLT5tX3BhZ2UgPSByZWludGVycHJldF9jYXN0PFdl
YlBhZ2UqPihkYXRhKTsKLSAgICBhdGtfb2JqZWN0X3NldF9yb2xlKGF0a09iamVjdCwgQVRLX1JP
TEVfRklMTEVSKTsKLX0KLQotc3RhdGljIGdpbnQgd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RH
ZXRJbmRleEluUGFyZW50KEF0a09iamVjdCAqYXRrT2JqZWN0KQotewotICAgIC8vIEFuIEF0a1Bs
dWcgaXMgdGhlIG9ubHkgY2hpbGQgYW4gQXRrU29ja2V0IGNhbiBoYXZlLgotICAgIHJldHVybiAw
OwotfQotCi1zdGF0aWMgZ2ludCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEdldE5DaGlsZHJl
bihBdGtPYmplY3QqIGF0a09iamVjdCkKLXsKLSAgICBBdGtPYmplY3QqIHJvb3RPYmplY3QgPSBh
Y2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIoYXRrT2JqZWN0KTsKLSAgICBpZiAoIXJvb3RP
YmplY3QpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyBB
dGtPYmplY3QqIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmQ2hpbGQoQXRrT2JqZWN0KiBh
dGtPYmplY3QsIGdpbnQgaW5kZXgpCi17Ci0gICAgLy8gSXQncyBzdXBwb3NlZCB0byBoYXZlIGVp
dGhlciBvbmUgY2hpbGQgb3IgemVyby4KLSAgICBpZiAoaW5kZXggJiYgaW5kZXggIT0gMSkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBdGtPYmplY3QqIHJvb3RPYmplY3QgPSBhY2Nlc3NpYmls
aXR5Um9vdE9iamVjdFdyYXBwZXIoYXRrT2JqZWN0KTsKLSAgICBpZiAoIXJvb3RPYmplY3QpCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgYXRrX29iamVjdF9zZXRfcGFyZW50KHJvb3RPYmplY3Qs
IGF0a09iamVjdCk7Ci0gICAgZ19vYmplY3RfcmVmKHJvb3RPYmplY3QpOwotCi0gICAgcmV0dXJu
IHJvb3RPYmplY3Q7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2Jq
ZWN0X2luaXQoV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2libGUpCi17Ci19Ci0K
LXN0YXRpYyB2b2lkIHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X2NsYXNzX2luaXQoV2Vi
UGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyoga2xhc3MpCi17Ci0gICAgQXRrT2JqZWN0Q2xh
c3MqIGF0a09iamVjdENsYXNzID0gQVRLX09CSkVDVF9DTEFTUyhrbGFzcyk7Ci0KLSAgICAvLyBO
byBuZWVkIHRvIGltcGxlbWVudCBnZXRfcGFyZW50KCkgaGVyZSBzaW5jZSB0aGlzIGlzIGEgc3Vi
Y2xhc3MKLSAgICAvLyBvZiBBdGtQbHVnIGFuZCBhbGwgdGhlIGxvZ2ljIHJlbGF0ZWQgdG8gdGhh
dCBmdW5jdGlvbiB3aWxsIGJlCi0gICAgLy8gaW1wbGVtZW50ZWQgYnkgdGhlIEFUSyBicmlkZ2Uu
Ci0gICAgYXRrT2JqZWN0Q2xhc3MtPmluaXRpYWxpemUgPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdEluaXRpYWxpemU7Ci0gICAgYXRrT2JqZWN0Q2xhc3MtPmdldF9pbmRleF9pbl9wYXJlbnQg
PSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEdldEluZGV4SW5QYXJlbnQ7Ci0gICAgYXRrT2Jq
ZWN0Q2xhc3MtPmdldF9uX2NoaWxkcmVuID0gd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RHZXRO
Q2hpbGRyZW47Ci0gICAgYXRrT2JqZWN0Q2xhc3MtPnJlZl9jaGlsZCA9IHdlYlBhZ2VBY2Nlc3Np
YmlsaXR5T2JqZWN0UmVmQ2hpbGQ7Ci19Ci0KLVdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdE5ldyhXZWJQYWdlKiBwYWdlKQotewotICAgIEF0a09i
amVjdCogb2JqZWN0ID0gQVRLX09CSkVDVChnX29iamVjdF9uZXcoV0VCX1RZUEVfUEFHRV9BQ0NF
U1NJQklMSVRZX09CSkVDVCwgTlVMTCkpOwotICAgIGF0a19vYmplY3RfaW5pdGlhbGl6ZShvYmpl
Y3QsIHBhZ2UpOwotICAgIHJldHVybiBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVChvYmpl
Y3QpOwotfQotCi12b2lkIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmcmVzaChXZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJsZSkKLXsKLSAgICAvLyBXZSBqdXN0IG5lZWQg
dG8gZW5zdXJlIHRoYXQgdGhlcmUncyBhIGNvbm5lY3Rpb24gaW4gdGhlIEFUSwotICAgIC8vIHdv
cmxkIGJldHdlZW4gdGhpcyBhY2Nlc3NpYmlsaXR5IG9iamVjdCBhbmQgdGhlIEF0a09iamVjdCBv
ZgotICAgIC8vIHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdCBmb3IgdGhlIHJvb3Qgb2YgdGhlIERP
TSB0cmVlLgotICAgIEF0a09iamVjdCogcm9vdE9iamVjdCA9IGFjY2Vzc2liaWxpdHlSb290T2Jq
ZWN0V3JhcHBlcihBVEtfT0JKRUNUKGFjY2Vzc2libGUpKTsKLSAgICBpZiAoIXJvb3RPYmplY3Qp
Ci0gICAgICAgIHJldHVybjsKLSAgICBhdGtfb2JqZWN0X3NldF9wYXJlbnQocm9vdE9iamVjdCwg
QVRLX09CSkVDVChhY2Nlc3NpYmxlKSk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiNzlkOWIuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJp
bGl0eU9iamVjdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlBhZ2VBY2Nl
c3NpYmlsaXR5T2JqZWN0X2gKLSNkZWZpbmUgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RfaAot
Ci0jaW5jbHVkZSA8YXRrL2F0ay5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYlBh
Z2U7Ci19Ci0KLUdfQkVHSU5fREVDTFMKLQotI2RlZmluZSBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lC
SUxJVFlfT0JKRUNUICAgICAgICAgICAgICAod2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3Rf
Z2V0X3R5cGUoKSkKLSNkZWZpbmUgV0VCX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1Qob2JqZWN0
KSAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmplY3QpLCBXRUJfVFlQ
RV9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNULCBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCkp
Ci0jZGVmaW5lIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUX0NMQVNTKGtsYXNzKSAgICAg
IChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lC
SUxJVFlfT0JKRUNULCBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzKSkKLSNkZWZpbmUg
V0VCX0lTX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1Qob2JqZWN0KSAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9UWVBFKChvYmplY3QpLCBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lCSUxJVFlf
T0JKRUNUKSkKLSNkZWZpbmUgV0VCX0lTX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1RfQ0xBU1Mo
a2xhc3MpICAgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksIFdFQl9UWVBFX1BBR0Vf
QUNDRVNTSUJJTElUWV9PQkpFQ1QpKQotI2RlZmluZSBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09C
SkVDVF9HRVRfQ0xBU1Mob2JqZWN0KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqZWN0
KSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3RDbGFzcykpCi0KLXR5cGVkZWYgc3RydWN0IF9XZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdCBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdDsKLXR5cGVkZWYgc3RydWN0IF9XZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdENsYXNzIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3M7
Ci0KLXN0cnVjdCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QgewotICAgIEF0a1BsdWcgcGFy
ZW50OwotICAgIFdlYktpdDo6V2ViUGFnZSogbV9wYWdlOwotfTsKLQotc3RydWN0IF9XZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdENsYXNzIHsKLSAgICBBdGtQbHVnQ2xhc3MgcGFyZW50Q2xhc3M7
Ci19OwotCi1HVHlwZSB3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9nZXRfdHlwZSgpOwot
Ci1XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RO
ZXcoV2ViS2l0OjpXZWJQYWdlKik7Ci0KLXZvaWQgd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RS
ZWZyZXNoKFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNl
bmRpZiAvLyBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAppbmRleCA4YjBkYjZl
Li43MTdhMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL1dlYlBhZ2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvV2ViUGFnZUd0ay5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKLSNpbmNsdWRlICJXZWJQYWdlQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIgorI2luY2x1ZGUgIldlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0
QXRrLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXaW5k
b3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173889</attachid>
            <date>2012-11-13 07:25:56 -0800</date>
            <delta_ts>2012-11-14 08:29:56 -0800</delta_ts>
            <desc>[WK2] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.</desc>
            <filename>wk2-share-a11y.patch</filename>
            <type>text/plain</type>
            <size>22003</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0MjUzY2FhLi5lMGM3MTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTItMTEtMDkgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW1dLMl0gU2hhcmUgV2ViS2l0Mi1HVEsncyBBY2Nlc3NpYmlsaXR5IGltcGxlbWVu
dGF0aW9uIHdpdGggb3RoZXIgV2ViS2l0IHBvcnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGFuZCByZW5hbWUgZmlsZXMgcmVsYXRlZCB0
byBBY2Nlc3NpYmlsaXR5IGZyb20gV2ViUGFnZS9ndGsgdG8gV2ViUGFnZS9hdGsuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcC4KKyAgICAgICAgKGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBl
cik6CisgICAgICAgICh3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEluaXRpYWxpemUpOgorICAg
ICAgICAod2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RHZXRJbmRleEluUGFyZW50KToKKyAgICAg
ICAgKHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0TkNoaWxkcmVuKToKKyAgICAgICAgKHdl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmQ2hpbGQpOgorICAgICAgICAod2ViX3BhZ2VfYWNj
ZXNzaWJpbGl0eV9vYmplY3RfaW5pdCk6CisgICAgICAgICh3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5
X29iamVjdF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0
TmV3KToKKyAgICAgICAgKHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmcmVzaCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0
ay5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9X
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KF9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgIChfV2ViUGFnZUFjY2Vzc2li
aWxpdHlPYmplY3RDbGFzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQ
YWdlR3RrLmNwcDoKKwogMjAxMi0xMS0wNyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUu
ZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIEFkZCByZXBsYWNlV2l0aExpdGVyYWwoKSBtZXRo
b2QgdG8gV1RGOjpTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggMGJiZmVhZS4uNjdlODcx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUuYW0KQEAgLTg3LDYgKzg3LDcgQEAgbGlid2Via2l0Mmd0a19A
V0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9O
QF9sYV9DUFAKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L2d0ayBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9zb3VwIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UgXAorICAgIC1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9hdGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsgXAogCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIgXAogCS1J
JCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvaW5jbHVkZSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5ZDQ3Yjc2Li42MGFhMzQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTExNDQsNiArMTE0NCw4IEBAIHdlYmtpdDJfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQ
b3B1cE1lbnUuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJWaWJyYXRpb25DbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5oIFwKKyAgICBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvYXRrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmggXAorICAg
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3RBdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRGVj
b2RlckFkYXB0ZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRGVj
b2RlckFkYXB0ZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmNwcCBcCkBAIC0xMTU5LDggKzExNjEsNiBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UYXBIaWdobGlnaHRDb250cm9sbGVy
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RhcEhpZ2hsaWdodENv
bnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJJ
bnNwZWN0b3JHdGsuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmggXAotCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcCBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlv
bkd0ay5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IGVhZmM4NzEuLmY5YjJmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaApAQCAtNzksNyArNzksNyBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2lu
Y2x1ZGUgIkFyZ3VtZW50Q29kZXJzR3RrLmgiCi0jaW5jbHVkZSAiV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5oIgog
I2luY2x1ZGUgIldlYlByaW50T3BlcmF0aW9uR3RrLmgiCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdEF0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zMDAxZjYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKQEAg
LTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0QXRrLmgiCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9BWE9iamVjdENhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK0dfREVGSU5FX1RZUEUoV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3Qs
IHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0LCBBVEtfVFlQRV9QTFVHKQorCitzdGF0aWMg
QXRrT2JqZWN0KiBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIoQXRrT2JqZWN0KiBhdGtP
YmplY3QpCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICBBWE9iamVjdENhY2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7CisKKyAgICBX
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJsZSA9IFdFQl9QQUdFX0FDQ0VTU0lC
SUxJVFlfT0JKRUNUKGF0a09iamVjdCk7CisgICAgaWYgKCFhY2Nlc3NpYmxlLT5tX3BhZ2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgUGFnZSogcGFnZSA9IGFjY2Vzc2libGUtPm1fcGFnZS0+
Y29yZVBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgRnJh
bWUqIGNvcmUgPSBwYWdlLT5tYWluRnJhbWUoKTsKKyAgICBpZiAoIWNvcmUgfHwgIWNvcmUtPmRv
Y3VtZW50KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
cm9vdCA9IGNvcmUtPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+cm9vdE9iamVjdCgpOwor
ICAgIGlmICghcm9vdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBBdGtPYmplY3QqIGF4Um9v
dCA9IHJvb3QtPndyYXBwZXIoKTsKKyAgICBpZiAoIWF4Um9vdCB8fCAhQVRLX0lTX09CSkVDVChh
eFJvb3QpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBheFJvb3Q7Cit9CisKK3N0
YXRpYyB2b2lkIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0SW5pdGlhbGl6ZShBdGtPYmplY3Qq
IGF0a09iamVjdCwgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBpZiAoQVRLX09CSkVDVF9DTEFTUyh3
ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9wYXJlbnRfY2xhc3MpLT5pbml0aWFsaXplKQor
ICAgICAgICBBVEtfT0JKRUNUX0NMQVNTKHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X3Bh
cmVudF9jbGFzcyktPmluaXRpYWxpemUoYXRrT2JqZWN0LCBkYXRhKTsKKworICAgIFdFQl9QQUdF
X0FDQ0VTU0lCSUxJVFlfT0JKRUNUKGF0a09iamVjdCktPm1fcGFnZSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViUGFnZSo+KGRhdGEpOworICAgIGF0a19vYmplY3Rfc2V0X3JvbGUoYXRrT2JqZWN0LCBB
VEtfUk9MRV9GSUxMRVIpOworfQorCitzdGF0aWMgZ2ludCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdEdldEluZGV4SW5QYXJlbnQoQXRrT2JqZWN0ICphdGtPYmplY3QpCit7CisgICAgLy8gQW4g
QXRrUGx1ZyBpcyB0aGUgb25seSBjaGlsZCBhbiBBdGtTb2NrZXQgY2FuIGhhdmUuCisgICAgcmV0
dXJuIDA7Cit9CisKK3N0YXRpYyBnaW50IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0TkNo
aWxkcmVuKEF0a09iamVjdCogYXRrT2JqZWN0KQoreworICAgIEF0a09iamVjdCogcm9vdE9iamVj
dCA9IGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcihhdGtPYmplY3QpOworICAgIGlmICgh
cm9vdE9iamVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gMTsKK30KKworc3Rh
dGljIEF0a09iamVjdCogd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZDaGlsZChBdGtPYmpl
Y3QqIGF0a09iamVjdCwgZ2ludCBpbmRleCkKK3sKKyAgICAvLyBJdCdzIHN1cHBvc2VkIHRvIGhh
dmUgZWl0aGVyIG9uZSBjaGlsZCBvciB6ZXJvLgorICAgIGlmIChpbmRleCAmJiBpbmRleCAhPSAx
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIEF0a09iamVjdCogcm9vdE9iamVjdCA9IGFjY2Vz
c2liaWxpdHlSb290T2JqZWN0V3JhcHBlcihhdGtPYmplY3QpOworICAgIGlmICghcm9vdE9iamVj
dCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBhdGtfb2JqZWN0X3NldF9wYXJlbnQocm9vdE9i
amVjdCwgYXRrT2JqZWN0KTsKKyAgICBnX29iamVjdF9yZWYocm9vdE9iamVjdCk7CisKKyAgICBy
ZXR1cm4gcm9vdE9iamVjdDsKK30KKworc3RhdGljIHZvaWQgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0
eV9vYmplY3RfaW5pdChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJsZSkKK3sK
K30KKworc3RhdGljIHZvaWQgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfY2xhc3NfaW5p
dChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzKiBrbGFzcykKK3sKKyAgICBBdGtPYmpl
Y3RDbGFzcyogYXRrT2JqZWN0Q2xhc3MgPSBBVEtfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKworICAg
IC8vIE5vIG5lZWQgdG8gaW1wbGVtZW50IGdldF9wYXJlbnQoKSBoZXJlIHNpbmNlIHRoaXMgaXMg
YSBzdWJjbGFzcworICAgIC8vIG9mIEF0a1BsdWcgYW5kIGFsbCB0aGUgbG9naWMgcmVsYXRlZCB0
byB0aGF0IGZ1bmN0aW9uIHdpbGwgYmUKKyAgICAvLyBpbXBsZW1lbnRlZCBieSB0aGUgQVRLIGJy
aWRnZS4KKyAgICBhdGtPYmplY3RDbGFzcy0+aW5pdGlhbGl6ZSA9IHdlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0SW5pdGlhbGl6ZTsKKyAgICBhdGtPYmplY3RDbGFzcy0+Z2V0X2luZGV4X2luX3Bh
cmVudCA9IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0SW5kZXhJblBhcmVudDsKKyAgICBh
dGtPYmplY3RDbGFzcy0+Z2V0X25fY2hpbGRyZW4gPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVj
dEdldE5DaGlsZHJlbjsKKyAgICBhdGtPYmplY3RDbGFzcy0+cmVmX2NoaWxkID0gd2ViUGFnZUFj
Y2Vzc2liaWxpdHlPYmplY3RSZWZDaGlsZDsKK30KKworV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0TmV3KFdlYlBhZ2UqIHBhZ2UpCit7CisgICAg
QXRrT2JqZWN0KiBvYmplY3QgPSBBVEtfT0JKRUNUKGdfb2JqZWN0X25ldyhXRUJfVFlQRV9QQUdF
X0FDQ0VTU0lCSUxJVFlfT0JKRUNULCBOVUxMKSk7CisgICAgYXRrX29iamVjdF9pbml0aWFsaXpl
KG9iamVjdCwgcGFnZSk7CisgICAgcmV0dXJuIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNU
KG9iamVjdCk7Cit9CisKK3ZvaWQgd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZyZXNoKFdl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmxlKQoreworICAgIC8vIFdlIGp1c3Qg
bmVlZCB0byBlbnN1cmUgdGhhdCB0aGVyZSdzIGEgY29ubmVjdGlvbiBpbiB0aGUgQVRLCisgICAg
Ly8gd29ybGQgYmV0d2VlbiB0aGlzIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGFuZCB0aGUgQXRrT2Jq
ZWN0IG9mCisgICAgLy8gdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGZvciB0aGUgcm9vdCBvZiB0
aGUgRE9NIHRyZWUuCisgICAgQXRrT2JqZWN0KiByb290T2JqZWN0ID0gYWNjZXNzaWJpbGl0eVJv
b3RPYmplY3RXcmFwcGVyKEFUS19PQkpFQ1QoYWNjZXNzaWJsZSkpOworICAgIGlmICghcm9vdE9i
amVjdCkKKyAgICAgICAgcmV0dXJuOworICAgIGF0a19vYmplY3Rfc2V0X3BhcmVudChyb290T2Jq
ZWN0LCBBVEtfT0JKRUNUKGFjY2Vzc2libGUpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RBdGsu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2li
aWxpdHlPYmplY3RBdGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjc5
ZDliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5oCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdF9oCisjZGVmaW5lIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5
T2JqZWN0X2gKKworI2luY2x1ZGUgPGF0ay9hdGsuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Citj
bGFzcyBXZWJQYWdlOworfQorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCX1RZUEVfUEFH
RV9BQ0NFU1NJQklMSVRZX09CSkVDVCAgICAgICAgICAgICAgKHdlYl9wYWdlX2FjY2Vzc2liaWxp
dHlfb2JqZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JK
RUNUKG9iamVjdCkgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqZWN0
KSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3QpKQorI2RlZmluZSBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVF9DTEFTUyhr
bGFzcykgICAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgV0VCX1RZUEVfUEFH
RV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcykp
CisjZGVmaW5lIFdFQl9JU19QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKG9iamVjdCkgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqZWN0KSwgV0VCX1RZUEVfUEFHRV9BQ0NF
U1NJQklMSVRZX09CSkVDVCkpCisjZGVmaW5lIFdFQl9JU19QQUdFX0FDQ0VTU0lCSUxJVFlfT0JK
RUNUX0NMQVNTKGtsYXNzKSAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCBXRUJf
VFlQRV9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKSkKKyNkZWZpbmUgV0VCX1BBR0VfQUNDRVNT
SUJJTElUWV9PQkpFQ1RfR0VUX0NMQVNTKG9iamVjdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xB
U1MoKG9iamVjdCksIFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QsIFdlYlBhZ2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViUGFnZUFjY2Vz
c2liaWxpdHlPYmplY3QgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3Q7Cit0eXBlZGVmIHN0cnVj
dCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyBXZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdENsYXNzOworCitzdHJ1Y3QgX1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0IHsKKyAgICBB
dGtQbHVnIHBhcmVudDsKKyAgICBXZWJLaXQ6OldlYlBhZ2UqIG1fcGFnZTsKK307CisKK3N0cnVj
dCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyB7CisgICAgQXRrUGx1Z0NsYXNzIHBh
cmVudENsYXNzOworfTsKKworR1R5cGUgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfZ2V0
X3R5cGUoKTsKKworV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0TmV3KFdlYktpdDo6V2ViUGFnZSopOworCit2b2lkIHdlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0UmVmcmVzaChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCopOworCitHX0VORF9E
RUNMUworCisjZW5kaWYgLy8gV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjIzNzAwMC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDE0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdC5oIgotCi0jaW5jbHVkZSAiV2ViUGFnZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQVhP
YmplY3RDYWNoZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2UuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1HX0RFRklORV9UWVBFKFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LCB3ZWJf
cGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdCwgQVRLX1RZUEVfUExVRykKLQotc3RhdGljIEF0a09i
amVjdCogYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyKEF0a09iamVjdCogYXRrT2JqZWN0
KQotewotICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAg
ICAgICAgQVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgpOwotCi0gICAgV2ViUGFn
ZUFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2libGUgPSBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZ
X09CSkVDVChhdGtPYmplY3QpOwotICAgIGlmICghYWNjZXNzaWJsZS0+bV9wYWdlKQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIFBhZ2UqIHBhZ2UgPSBhY2Nlc3NpYmxlLT5tX3BhZ2UtPmNvcmVQ
YWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEZyYW1lKiBj
b3JlID0gcGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFjb3JlIHx8ICFjb3JlLT5kb2N1bWVu
dCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3Qg
PSBjb3JlLT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnJvb3RPYmplY3QoKTsKLSAgICBp
ZiAoIXJvb3QpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQXRrT2JqZWN0KiBheFJvb3QgPSBy
b290LT53cmFwcGVyKCk7Ci0gICAgaWYgKCFheFJvb3QgfHwgIUFUS19JU19PQkpFQ1QoYXhSb290
KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gYXhSb290OwotfQotCi1zdGF0aWMg
dm9pZCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEluaXRpYWxpemUoQXRrT2JqZWN0KiBhdGtP
YmplY3QsIGdwb2ludGVyIGRhdGEpCi17Ci0gICAgaWYgKEFUS19PQkpFQ1RfQ0xBU1Mod2ViX3Bh
Z2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfcGFyZW50X2NsYXNzKS0+aW5pdGlhbGl6ZSkKLSAgICAg
ICAgQVRLX09CSkVDVF9DTEFTUyh3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9wYXJlbnRf
Y2xhc3MpLT5pbml0aWFsaXplKGF0a09iamVjdCwgZGF0YSk7Ci0KLSAgICBXRUJfUEFHRV9BQ0NF
U1NJQklMSVRZX09CSkVDVChhdGtPYmplY3QpLT5tX3BhZ2UgPSByZWludGVycHJldF9jYXN0PFdl
YlBhZ2UqPihkYXRhKTsKLSAgICBhdGtfb2JqZWN0X3NldF9yb2xlKGF0a09iamVjdCwgQVRLX1JP
TEVfRklMTEVSKTsKLX0KLQotc3RhdGljIGdpbnQgd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RH
ZXRJbmRleEluUGFyZW50KEF0a09iamVjdCAqYXRrT2JqZWN0KQotewotICAgIC8vIEFuIEF0a1Bs
dWcgaXMgdGhlIG9ubHkgY2hpbGQgYW4gQXRrU29ja2V0IGNhbiBoYXZlLgotICAgIHJldHVybiAw
OwotfQotCi1zdGF0aWMgZ2ludCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEdldE5DaGlsZHJl
bihBdGtPYmplY3QqIGF0a09iamVjdCkKLXsKLSAgICBBdGtPYmplY3QqIHJvb3RPYmplY3QgPSBh
Y2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIoYXRrT2JqZWN0KTsKLSAgICBpZiAoIXJvb3RP
YmplY3QpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyBB
dGtPYmplY3QqIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmQ2hpbGQoQXRrT2JqZWN0KiBh
dGtPYmplY3QsIGdpbnQgaW5kZXgpCi17Ci0gICAgLy8gSXQncyBzdXBwb3NlZCB0byBoYXZlIGVp
dGhlciBvbmUgY2hpbGQgb3IgemVyby4KLSAgICBpZiAoaW5kZXggJiYgaW5kZXggIT0gMSkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBdGtPYmplY3QqIHJvb3RPYmplY3QgPSBhY2Nlc3NpYmls
aXR5Um9vdE9iamVjdFdyYXBwZXIoYXRrT2JqZWN0KTsKLSAgICBpZiAoIXJvb3RPYmplY3QpCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgYXRrX29iamVjdF9zZXRfcGFyZW50KHJvb3RPYmplY3Qs
IGF0a09iamVjdCk7Ci0gICAgZ19vYmplY3RfcmVmKHJvb3RPYmplY3QpOwotCi0gICAgcmV0dXJu
IHJvb3RPYmplY3Q7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2Jq
ZWN0X2luaXQoV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2libGUpCi17Ci19Ci0K
LXN0YXRpYyB2b2lkIHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X2NsYXNzX2luaXQoV2Vi
UGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyoga2xhc3MpCi17Ci0gICAgQXRrT2JqZWN0Q2xh
c3MqIGF0a09iamVjdENsYXNzID0gQVRLX09CSkVDVF9DTEFTUyhrbGFzcyk7Ci0KLSAgICAvLyBO
byBuZWVkIHRvIGltcGxlbWVudCBnZXRfcGFyZW50KCkgaGVyZSBzaW5jZSB0aGlzIGlzIGEgc3Vi
Y2xhc3MKLSAgICAvLyBvZiBBdGtQbHVnIGFuZCBhbGwgdGhlIGxvZ2ljIHJlbGF0ZWQgdG8gdGhh
dCBmdW5jdGlvbiB3aWxsIGJlCi0gICAgLy8gaW1wbGVtZW50ZWQgYnkgdGhlIEFUSyBicmlkZ2Uu
Ci0gICAgYXRrT2JqZWN0Q2xhc3MtPmluaXRpYWxpemUgPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdEluaXRpYWxpemU7Ci0gICAgYXRrT2JqZWN0Q2xhc3MtPmdldF9pbmRleF9pbl9wYXJlbnQg
PSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEdldEluZGV4SW5QYXJlbnQ7Ci0gICAgYXRrT2Jq
ZWN0Q2xhc3MtPmdldF9uX2NoaWxkcmVuID0gd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RHZXRO
Q2hpbGRyZW47Ci0gICAgYXRrT2JqZWN0Q2xhc3MtPnJlZl9jaGlsZCA9IHdlYlBhZ2VBY2Nlc3Np
YmlsaXR5T2JqZWN0UmVmQ2hpbGQ7Ci19Ci0KLVdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdE5ldyhXZWJQYWdlKiBwYWdlKQotewotICAgIEF0a09i
amVjdCogb2JqZWN0ID0gQVRLX09CSkVDVChnX29iamVjdF9uZXcoV0VCX1RZUEVfUEFHRV9BQ0NF
U1NJQklMSVRZX09CSkVDVCwgTlVMTCkpOwotICAgIGF0a19vYmplY3RfaW5pdGlhbGl6ZShvYmpl
Y3QsIHBhZ2UpOwotICAgIHJldHVybiBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVChvYmpl
Y3QpOwotfQotCi12b2lkIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmcmVzaChXZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJsZSkKLXsKLSAgICAvLyBXZSBqdXN0IG5lZWQg
dG8gZW5zdXJlIHRoYXQgdGhlcmUncyBhIGNvbm5lY3Rpb24gaW4gdGhlIEFUSwotICAgIC8vIHdv
cmxkIGJldHdlZW4gdGhpcyBhY2Nlc3NpYmlsaXR5IG9iamVjdCBhbmQgdGhlIEF0a09iamVjdCBv
ZgotICAgIC8vIHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdCBmb3IgdGhlIHJvb3Qgb2YgdGhlIERP
TSB0cmVlLgotICAgIEF0a09iamVjdCogcm9vdE9iamVjdCA9IGFjY2Vzc2liaWxpdHlSb290T2Jq
ZWN0V3JhcHBlcihBVEtfT0JKRUNUKGFjY2Vzc2libGUpKTsKLSAgICBpZiAoIXJvb3RPYmplY3Qp
Ci0gICAgICAgIHJldHVybjsKLSAgICBhdGtfb2JqZWN0X3NldF9wYXJlbnQocm9vdE9iamVjdCwg
QVRLX09CSkVDVChhY2Nlc3NpYmxlKSk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiNzlkOWIuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJp
bGl0eU9iamVjdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlBhZ2VBY2Nl
c3NpYmlsaXR5T2JqZWN0X2gKLSNkZWZpbmUgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RfaAot
Ci0jaW5jbHVkZSA8YXRrL2F0ay5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYlBh
Z2U7Ci19Ci0KLUdfQkVHSU5fREVDTFMKLQotI2RlZmluZSBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lC
SUxJVFlfT0JKRUNUICAgICAgICAgICAgICAod2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3Rf
Z2V0X3R5cGUoKSkKLSNkZWZpbmUgV0VCX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1Qob2JqZWN0
KSAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmplY3QpLCBXRUJfVFlQ
RV9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNULCBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCkp
Ci0jZGVmaW5lIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUX0NMQVNTKGtsYXNzKSAgICAg
IChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lC
SUxJVFlfT0JKRUNULCBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzKSkKLSNkZWZpbmUg
V0VCX0lTX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1Qob2JqZWN0KSAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9UWVBFKChvYmplY3QpLCBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lCSUxJVFlf
T0JKRUNUKSkKLSNkZWZpbmUgV0VCX0lTX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1RfQ0xBU1Mo
a2xhc3MpICAgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksIFdFQl9UWVBFX1BBR0Vf
QUNDRVNTSUJJTElUWV9PQkpFQ1QpKQotI2RlZmluZSBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09C
SkVDVF9HRVRfQ0xBU1Mob2JqZWN0KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqZWN0
KSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3RDbGFzcykpCi0KLXR5cGVkZWYgc3RydWN0IF9XZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdCBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdDsKLXR5cGVkZWYgc3RydWN0IF9XZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdENsYXNzIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3M7
Ci0KLXN0cnVjdCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QgewotICAgIEF0a1BsdWcgcGFy
ZW50OwotICAgIFdlYktpdDo6V2ViUGFnZSogbV9wYWdlOwotfTsKLQotc3RydWN0IF9XZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdENsYXNzIHsKLSAgICBBdGtQbHVnQ2xhc3MgcGFyZW50Q2xhc3M7
Ci19OwotCi1HVHlwZSB3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9nZXRfdHlwZSgpOwot
Ci1XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RO
ZXcoV2ViS2l0OjpXZWJQYWdlKik7Ci0KLXZvaWQgd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RS
ZWZyZXNoKFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNl
bmRpZiAvLyBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAppbmRleCA4YjBkYjZl
Li43MTdhMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL1dlYlBhZ2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvV2ViUGFnZUd0ay5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKLSNpbmNsdWRlICJXZWJQYWdlQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIgorI2luY2x1ZGUgIldlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0
QXRrLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXaW5k
b3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174168</attachid>
            <date>2012-11-14 08:29:56 -0800</date>
            <delta_ts>2012-11-16 03:35:12 -0800</delta_ts>
            <desc>[WK2][GTK][EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.</desc>
            <filename>wk2-share-a11y.patch</filename>
            <type>text/plain</type>
            <size>22022</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0MjUzY2FhLi4xMThhNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTItMTEtMDkgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW1dLMl1bR1RLXVtFRkxdIFNoYXJlIFdlYktpdDItR1RLJ3MgQWNjZXNzaWJpbGl0
eSBpbXBsZW1lbnRhdGlvbiB3aXRoIG90aGVyIFdlYktpdCBwb3J0cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBhbmQgcmVuYW1lIGZpbGVz
IHJlbGF0ZWQgdG8gQWNjZXNzaWJpbGl0eSBmcm9tIFdlYlBhZ2UvZ3RrIHRvIFdlYlBhZ2UvYXRr
LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQ
YWdlQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAuCisgICAgICAgIChhY2Nlc3NpYmlsaXR5Um9vdE9i
amVjdFdyYXBwZXIpOgorICAgICAgICAod2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RJbml0aWFs
aXplKToKKyAgICAgICAgKHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0SW5kZXhJblBhcmVu
dCk6CisgICAgICAgICh3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEdldE5DaGlsZHJlbik6Cisg
ICAgICAgICh3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdFJlZkNoaWxkKToKKyAgICAgICAgKHdl
Yl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X2luaXQpOgorICAgICAgICAod2ViX3BhZ2VfYWNj
ZXNzaWJpbGl0eV9vYmplY3RfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJQYWdlQWNjZXNzaWJp
bGl0eU9iamVjdE5ldyk6CisgICAgICAgICh3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdFJlZnJl
c2gpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3RBdGsuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaC4KKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QpOgorICAgICAgICAoX1dlYlBh
Z2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvV2ViUGFnZUd0ay5jcHA6CisKIDIwMTItMTEtMDcgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBBZGQgcmVwbGFjZVdpdGhMaXRl
cmFsKCkgbWV0aG9kIHRvIFdURjo6U3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9H
TlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCmluZGV4IDBiYmZl
YWUuLjY3ZTg3MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC04Nyw2ICs4Nyw3IEBAIGxpYndl
YmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlO
T1JfVkVSU0lPTkBfbGFfQ1BQCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cCBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlIFwKKyAgICAtSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvYXRrIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyIFwKIAktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2luY2x1ZGUg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOWQ0N2I3Ni4uNjBhYTM0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMTQ0LDYgKzExNDQsOCBAQCB3ZWJraXQy
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2VhcmNoUG9wdXBNZW51LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuaCBcCisgICAgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0
ay5oIFwKKyAgICBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYlBhZ2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RlY29kZXJBZGFwdGVyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RlY29kZXJBZGFwdGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5jcHAgXApAQCAtMTE1OSw4ICsxMTYxLDYgQEAgd2Via2l0Ml9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGlnaGxpZ2h0
Q29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UYXBI
aWdobGlnaHRDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvV2ViSW5zcGVjdG9yR3RrLmNwcCBcCi0JU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oIFwKLQlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcCBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlv
bkd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJp
bnRPcGVyYXRpb25HdGsuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCBlYWZjODcxLi5mOWIyZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc5LDcgKzc5LDcgQEAKIAogI2lmIFBMQVRGT1JN
KEdUSykKICNpbmNsdWRlICJBcmd1bWVudENvZGVyc0d0ay5oIgotI2luY2x1ZGUgIldlYlBhZ2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3RBdGsuaCIKICNpbmNsdWRlICJXZWJQcmludE9wZXJhdGlvbkd0ay5oIgogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFj
Y2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMzAwMWY2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RB
dGsuY3BwCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdEF0ay5oIgorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitHX0RFRklORV9UWVBFKFdlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0LCB3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdCwgQVRLX1RZUEVfUExVRykK
Kworc3RhdGljIEF0a09iamVjdCogYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyKEF0a09i
amVjdCogYXRrT2JqZWN0KQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKKyAgICAgICAgQVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgp
OworCisgICAgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2libGUgPSBXRUJfUEFH
RV9BQ0NFU1NJQklMSVRZX09CSkVDVChhdGtPYmplY3QpOworICAgIGlmICghYWNjZXNzaWJsZS0+
bV9wYWdlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFBhZ2UqIHBhZ2UgPSBhY2Nlc3NpYmxl
LT5tX3BhZ2UtPmNvcmVQYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIEZyYW1lKiBjb3JlID0gcGFnZS0+bWFpbkZyYW1lKCk7CisgICAgaWYgKCFjb3JlIHx8
ICFjb3JlLT5kb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIHJvb3QgPSBjb3JlLT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnJvb3RP
YmplY3QoKTsKKyAgICBpZiAoIXJvb3QpCisgICAgICAgIHJldHVybiAwOworCisgICAgQXRrT2Jq
ZWN0KiBheFJvb3QgPSByb290LT53cmFwcGVyKCk7CisgICAgaWYgKCFheFJvb3QgfHwgIUFUS19J
U19PQkpFQ1QoYXhSb290KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gYXhSb290
OworfQorCitzdGF0aWMgdm9pZCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEluaXRpYWxpemUo
QXRrT2JqZWN0KiBhdGtPYmplY3QsIGdwb2ludGVyIGRhdGEpCit7CisgICAgaWYgKEFUS19PQkpF
Q1RfQ0xBU1Mod2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfcGFyZW50X2NsYXNzKS0+aW5p
dGlhbGl6ZSkKKyAgICAgICAgQVRLX09CSkVDVF9DTEFTUyh3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5
X29iamVjdF9wYXJlbnRfY2xhc3MpLT5pbml0aWFsaXplKGF0a09iamVjdCwgZGF0YSk7CisKKyAg
ICBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVChhdGtPYmplY3QpLT5tX3BhZ2UgPSByZWlu
dGVycHJldF9jYXN0PFdlYlBhZ2UqPihkYXRhKTsKKyAgICBhdGtfb2JqZWN0X3NldF9yb2xlKGF0
a09iamVjdCwgQVRLX1JPTEVfRklMTEVSKTsKK30KKworc3RhdGljIGdpbnQgd2ViUGFnZUFjY2Vz
c2liaWxpdHlPYmplY3RHZXRJbmRleEluUGFyZW50KEF0a09iamVjdCAqYXRrT2JqZWN0KQorewor
ICAgIC8vIEFuIEF0a1BsdWcgaXMgdGhlIG9ubHkgY2hpbGQgYW4gQXRrU29ja2V0IGNhbiBoYXZl
LgorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgZ2ludCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdEdldE5DaGlsZHJlbihBdGtPYmplY3QqIGF0a09iamVjdCkKK3sKKyAgICBBdGtPYmplY3Qq
IHJvb3RPYmplY3QgPSBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIoYXRrT2JqZWN0KTsK
KyAgICBpZiAoIXJvb3RPYmplY3QpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIDE7
Cit9CisKK3N0YXRpYyBBdGtPYmplY3QqIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmQ2hp
bGQoQXRrT2JqZWN0KiBhdGtPYmplY3QsIGdpbnQgaW5kZXgpCit7CisgICAgLy8gSXQncyBzdXBw
b3NlZCB0byBoYXZlIGVpdGhlciBvbmUgY2hpbGQgb3IgemVyby4KKyAgICBpZiAoaW5kZXggJiYg
aW5kZXggIT0gMSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBBdGtPYmplY3QqIHJvb3RPYmpl
Y3QgPSBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIoYXRrT2JqZWN0KTsKKyAgICBpZiAo
IXJvb3RPYmplY3QpCisgICAgICAgIHJldHVybiAwOworCisgICAgYXRrX29iamVjdF9zZXRfcGFy
ZW50KHJvb3RPYmplY3QsIGF0a09iamVjdCk7CisgICAgZ19vYmplY3RfcmVmKHJvb3RPYmplY3Qp
OworCisgICAgcmV0dXJuIHJvb3RPYmplY3Q7Cit9CisKK3N0YXRpYyB2b2lkIHdlYl9wYWdlX2Fj
Y2Vzc2liaWxpdHlfb2JqZWN0X2luaXQoV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vz
c2libGUpCit7Cit9CisKK3N0YXRpYyB2b2lkIHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0
X2NsYXNzX2luaXQoV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyoga2xhc3MpCit7Cisg
ICAgQXRrT2JqZWN0Q2xhc3MqIGF0a09iamVjdENsYXNzID0gQVRLX09CSkVDVF9DTEFTUyhrbGFz
cyk7CisKKyAgICAvLyBObyBuZWVkIHRvIGltcGxlbWVudCBnZXRfcGFyZW50KCkgaGVyZSBzaW5j
ZSB0aGlzIGlzIGEgc3ViY2xhc3MKKyAgICAvLyBvZiBBdGtQbHVnIGFuZCBhbGwgdGhlIGxvZ2lj
IHJlbGF0ZWQgdG8gdGhhdCBmdW5jdGlvbiB3aWxsIGJlCisgICAgLy8gaW1wbGVtZW50ZWQgYnkg
dGhlIEFUSyBicmlkZ2UuCisgICAgYXRrT2JqZWN0Q2xhc3MtPmluaXRpYWxpemUgPSB3ZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdEluaXRpYWxpemU7CisgICAgYXRrT2JqZWN0Q2xhc3MtPmdldF9p
bmRleF9pbl9wYXJlbnQgPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEdldEluZGV4SW5QYXJl
bnQ7CisgICAgYXRrT2JqZWN0Q2xhc3MtPmdldF9uX2NoaWxkcmVuID0gd2ViUGFnZUFjY2Vzc2li
aWxpdHlPYmplY3RHZXROQ2hpbGRyZW47CisgICAgYXRrT2JqZWN0Q2xhc3MtPnJlZl9jaGlsZCA9
IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmQ2hpbGQ7Cit9CisKK1dlYlBhZ2VBY2Nlc3Np
YmlsaXR5T2JqZWN0KiB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdE5ldyhXZWJQYWdlKiBwYWdl
KQoreworICAgIEF0a09iamVjdCogb2JqZWN0ID0gQVRLX09CSkVDVChnX29iamVjdF9uZXcoV0VC
X1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgTlVMTCkpOworICAgIGF0a19vYmplY3Rf
aW5pdGlhbGl6ZShvYmplY3QsIHBhZ2UpOworICAgIHJldHVybiBXRUJfUEFHRV9BQ0NFU1NJQklM
SVRZX09CSkVDVChvYmplY3QpOworfQorCit2b2lkIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0
UmVmcmVzaChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJsZSkKK3sKKyAgICAv
LyBXZSBqdXN0IG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlcmUncyBhIGNvbm5lY3Rpb24gaW4gdGhl
IEFUSworICAgIC8vIHdvcmxkIGJldHdlZW4gdGhpcyBhY2Nlc3NpYmlsaXR5IG9iamVjdCBhbmQg
dGhlIEF0a09iamVjdCBvZgorICAgIC8vIHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdCBmb3IgdGhl
IHJvb3Qgb2YgdGhlIERPTSB0cmVlLgorICAgIEF0a09iamVjdCogcm9vdE9iamVjdCA9IGFjY2Vz
c2liaWxpdHlSb290T2JqZWN0V3JhcHBlcihBVEtfT0JKRUNUKGFjY2Vzc2libGUpKTsKKyAgICBp
ZiAoIXJvb3RPYmplY3QpCisgICAgICAgIHJldHVybjsKKyAgICBhdGtfb2JqZWN0X3NldF9wYXJl
bnQocm9vdE9iamVjdCwgQVRLX09CSkVDVChhY2Nlc3NpYmxlKSk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5
T2JqZWN0QXRrLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYlBh
Z2VBY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYWYzN2Q0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RBdGsuaApAQCAtMCwwICsx
LDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RBdGtfaAorI2RlZmluZSBXZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdEF0a19oCisKKyNpbmNsdWRlIDxhdGsvYXRrLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZTsKK30KKworR19CRUdJTl9ERUNMUworCisjZGVm
aW5lIFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QgICAgICAgICAgICAgICh3ZWJf
cGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJfUEFHRV9B
Q0NFU1NJQklMSVRZX09CSkVDVChvYmplY3QpICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RB
TkNFX0NBU1QoKG9iamVjdCksIFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QsIFdl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KSkKKyNkZWZpbmUgV0VCX1BBR0VfQUNDRVNTSUJJTElU
WV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFz
cyksIFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QsIFdlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0Q2xhc3MpKQorI2RlZmluZSBXRUJfSVNfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVD
VChvYmplY3QpICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iamVjdCksIFdF
Ql9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QpKQorI2RlZmluZSBXRUJfSVNfUEFHRV9B
Q0NFU1NJQklMSVRZX09CSkVDVF9DTEFTUyhrbGFzcykgICAoR19UWVBFX0NIRUNLX0NMQVNTX1RZ
UEUoKGtsYXNzKSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCkpCisjZGVmaW5l
IFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUX0dFVF9DTEFTUyhvYmplY3QpIChHX1RZUEVf
SU5TVEFOQ0VfR0VUX0NMQVNTKChvYmplY3QpLCBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lCSUxJVFlf
T0JKRUNULCBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1
Y3QgX1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0IFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0
OwordHlwZWRlZiBzdHJ1Y3QgX1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MgV2ViUGFn
ZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzczsKKworc3RydWN0IF9XZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdCB7CisgICAgQXRrUGx1ZyBwYXJlbnQ7CisgICAgV2ViS2l0OjpXZWJQYWdlKiBtX3Bh
Z2U7Cit9OworCitzdHJ1Y3QgX1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MgeworICAg
IEF0a1BsdWdDbGFzcyBwYXJlbnRDbGFzczsKK307CisKK0dUeXBlIHdlYl9wYWdlX2FjY2Vzc2li
aWxpdHlfb2JqZWN0X2dldF90eXBlKCk7CisKK1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdE5ldyhXZWJLaXQ6OldlYlBhZ2UqKTsKKwordm9pZCB3
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdFJlZnJlc2goV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3QqKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8vIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2Jq
ZWN0QXRrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9n
dGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyMzcwMDAuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaCIKLQotI2luY2x1ZGUgIldlYlBhZ2UuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotR19ERUZJTkVfVFlQRShXZWJQYWdlQWNjZXNz
aWJpbGl0eU9iamVjdCwgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3QsIEFUS19UWVBFX1BM
VUcpCi0KLXN0YXRpYyBBdGtPYmplY3QqIGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcihB
dGtPYmplY3QqIGF0a09iamVjdCkKLXsKLSAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCi0gICAgICAgIEFYT2JqZWN0Q2FjaGU6OmVuYWJsZUFjY2Vzc2liaWxp
dHkoKTsKLQotICAgIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmxlID0gV0VC
X1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QoYXRrT2JqZWN0KTsKLSAgICBpZiAoIWFjY2Vzc2li
bGUtPm1fcGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBQYWdlKiBwYWdlID0gYWNjZXNz
aWJsZS0+bV9wYWdlLT5jb3JlUGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICBGcmFtZSogY29yZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwotICAgIGlmICghY29y
ZSB8fCAhY29yZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiByb290ID0gY29yZS0+ZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgpLT5y
b290T2JqZWN0KCk7Ci0gICAgaWYgKCFyb290KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEF0
a09iamVjdCogYXhSb290ID0gcm9vdC0+d3JhcHBlcigpOwotICAgIGlmICghYXhSb290IHx8ICFB
VEtfSVNfT0JKRUNUKGF4Um9vdCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIGF4
Um9vdDsKLX0KLQotc3RhdGljIHZvaWQgd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RJbml0aWFs
aXplKEF0a09iamVjdCogYXRrT2JqZWN0LCBncG9pbnRlciBkYXRhKQotewotICAgIGlmIChBVEtf
T0JKRUNUX0NMQVNTKHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X3BhcmVudF9jbGFzcykt
PmluaXRpYWxpemUpCi0gICAgICAgIEFUS19PQkpFQ1RfQ0xBU1Mod2ViX3BhZ2VfYWNjZXNzaWJp
bGl0eV9vYmplY3RfcGFyZW50X2NsYXNzKS0+aW5pdGlhbGl6ZShhdGtPYmplY3QsIGRhdGEpOwot
Ci0gICAgV0VCX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QoYXRrT2JqZWN0KS0+bV9wYWdlID0g
cmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlKj4oZGF0YSk7Ci0gICAgYXRrX29iamVjdF9zZXRfcm9s
ZShhdGtPYmplY3QsIEFUS19ST0xFX0ZJTExFUik7Ci19Ci0KLXN0YXRpYyBnaW50IHdlYlBhZ2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0R2V0SW5kZXhJblBhcmVudChBdGtPYmplY3QgKmF0a09iamVjdCkK
LXsKLSAgICAvLyBBbiBBdGtQbHVnIGlzIHRoZSBvbmx5IGNoaWxkIGFuIEF0a1NvY2tldCBjYW4g
aGF2ZS4KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGdpbnQgd2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3RHZXROQ2hpbGRyZW4oQXRrT2JqZWN0KiBhdGtPYmplY3QpCi17Ci0gICAgQXRrT2Jq
ZWN0KiByb290T2JqZWN0ID0gYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyKGF0a09iamVj
dCk7Ci0gICAgaWYgKCFyb290T2JqZWN0KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVy
biAxOwotfQotCi1zdGF0aWMgQXRrT2JqZWN0KiB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdFJl
ZkNoaWxkKEF0a09iamVjdCogYXRrT2JqZWN0LCBnaW50IGluZGV4KQotewotICAgIC8vIEl0J3Mg
c3VwcG9zZWQgdG8gaGF2ZSBlaXRoZXIgb25lIGNoaWxkIG9yIHplcm8uCi0gICAgaWYgKGluZGV4
ICYmIGluZGV4ICE9IDEpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQXRrT2JqZWN0KiByb290
T2JqZWN0ID0gYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyKGF0a09iamVjdCk7Ci0gICAg
aWYgKCFyb290T2JqZWN0KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGF0a19vYmplY3Rfc2V0
X3BhcmVudChyb290T2JqZWN0LCBhdGtPYmplY3QpOwotICAgIGdfb2JqZWN0X3JlZihyb290T2Jq
ZWN0KTsKLQotICAgIHJldHVybiByb290T2JqZWN0OwotfQotCi1zdGF0aWMgdm9pZCB3ZWJfcGFn
ZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9pbml0KFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiBh
Y2Nlc3NpYmxlKQotewotfQotCi1zdGF0aWMgdm9pZCB3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29i
amVjdF9jbGFzc19pbml0KFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MqIGtsYXNzKQot
ewotICAgIEF0a09iamVjdENsYXNzKiBhdGtPYmplY3RDbGFzcyA9IEFUS19PQkpFQ1RfQ0xBU1Mo
a2xhc3MpOwotCi0gICAgLy8gTm8gbmVlZCB0byBpbXBsZW1lbnQgZ2V0X3BhcmVudCgpIGhlcmUg
c2luY2UgdGhpcyBpcyBhIHN1YmNsYXNzCi0gICAgLy8gb2YgQXRrUGx1ZyBhbmQgYWxsIHRoZSBs
b2dpYyByZWxhdGVkIHRvIHRoYXQgZnVuY3Rpb24gd2lsbCBiZQotICAgIC8vIGltcGxlbWVudGVk
IGJ5IHRoZSBBVEsgYnJpZGdlLgotICAgIGF0a09iamVjdENsYXNzLT5pbml0aWFsaXplID0gd2Vi
UGFnZUFjY2Vzc2liaWxpdHlPYmplY3RJbml0aWFsaXplOwotICAgIGF0a09iamVjdENsYXNzLT5n
ZXRfaW5kZXhfaW5fcGFyZW50ID0gd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RHZXRJbmRleElu
UGFyZW50OwotICAgIGF0a09iamVjdENsYXNzLT5nZXRfbl9jaGlsZHJlbiA9IHdlYlBhZ2VBY2Nl
c3NpYmlsaXR5T2JqZWN0R2V0TkNoaWxkcmVuOwotICAgIGF0a09iamVjdENsYXNzLT5yZWZfY2hp
bGQgPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdFJlZkNoaWxkOwotfQotCi1XZWJQYWdlQWNj
ZXNzaWJpbGl0eU9iamVjdCogd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3ROZXcoV2ViUGFnZSog
cGFnZSkKLXsKLSAgICBBdGtPYmplY3QqIG9iamVjdCA9IEFUS19PQkpFQ1QoZ19vYmplY3RfbmV3
KFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QsIE5VTEwpKTsKLSAgICBhdGtfb2Jq
ZWN0X2luaXRpYWxpemUob2JqZWN0LCBwYWdlKTsKLSAgICByZXR1cm4gV0VCX1BBR0VfQUNDRVNT
SUJJTElUWV9PQkpFQ1Qob2JqZWN0KTsKLX0KLQotdm9pZCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdFJlZnJlc2goV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2libGUpCi17Ci0g
ICAgLy8gV2UganVzdCBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZXJlJ3MgYSBjb25uZWN0aW9uIGlu
IHRoZSBBVEsKLSAgICAvLyB3b3JsZCBiZXR3ZWVuIHRoaXMgYWNjZXNzaWJpbGl0eSBvYmplY3Qg
YW5kIHRoZSBBdGtPYmplY3Qgb2YKLSAgICAvLyB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QgZm9y
IHRoZSByb290IG9mIHRoZSBET00gdHJlZS4KLSAgICBBdGtPYmplY3QqIHJvb3RPYmplY3QgPSBh
Y2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIoQVRLX09CSkVDVChhY2Nlc3NpYmxlKSk7Ci0g
ICAgaWYgKCFyb290T2JqZWN0KQotICAgICAgICByZXR1cm47Ci0gICAgYXRrX29iamVjdF9zZXRf
cGFyZW50KHJvb3RPYmplY3QsIEFUS19PQkpFQ1QoYWNjZXNzaWJsZSkpOwotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJp
bGl0eU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQ
YWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
Yjc5ZDliLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9n
dGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdF9oCi0jZGVmaW5lIFdlYlBhZ2VBY2Nl
c3NpYmlsaXR5T2JqZWN0X2gKLQotI2luY2x1ZGUgPGF0ay9hdGsuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci1jbGFzcyBXZWJQYWdlOwotfQotCi1HX0JFR0lOX0RFQ0xTCi0KLSNkZWZpbmUgV0VC
X1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCAgICAgICAgICAgICAgKHdlYl9wYWdlX2Fj
Y2Vzc2liaWxpdHlfb2JqZWN0X2dldF90eXBlKCkpCi0jZGVmaW5lIFdFQl9QQUdFX0FDQ0VTU0lC
SUxJVFlfT0JKRUNUKG9iamVjdCkgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FT
VCgob2JqZWN0KSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgV2ViUGFnZUFj
Y2Vzc2liaWxpdHlPYmplY3QpKQotI2RlZmluZSBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVD
VF9DTEFTUyhrbGFzcykgICAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgV0VC
X1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3RDbGFzcykpCi0jZGVmaW5lIFdFQl9JU19QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKG9iamVj
dCkgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqZWN0KSwgV0VCX1RZUEVf
UEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCkpCi0jZGVmaW5lIFdFQl9JU19QQUdFX0FDQ0VTU0lC
SUxJVFlfT0JKRUNUX0NMQVNTKGtsYXNzKSAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKSkKLSNkZWZpbmUgV0VCX1BB
R0VfQUNDRVNTSUJJTElUWV9PQkpFQ1RfR0VUX0NMQVNTKG9iamVjdCkgKEdfVFlQRV9JTlNUQU5D
RV9HRVRfQ0xBU1MoKG9iamVjdCksIFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1Qs
IFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MpKQotCi10eXBlZGVmIHN0cnVjdCBfV2Vi
UGFnZUFjY2Vzc2liaWxpdHlPYmplY3QgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3Q7Ci10eXBl
ZGVmIHN0cnVjdCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyBXZWJQYWdlQWNjZXNz
aWJpbGl0eU9iamVjdENsYXNzOwotCi1zdHJ1Y3QgX1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0
IHsKLSAgICBBdGtQbHVnIHBhcmVudDsKLSAgICBXZWJLaXQ6OldlYlBhZ2UqIG1fcGFnZTsKLX07
Ci0KLXN0cnVjdCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyB7Ci0gICAgQXRrUGx1
Z0NsYXNzIHBhcmVudENsYXNzOwotfTsKLQotR1R5cGUgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9v
YmplY3RfZ2V0X3R5cGUoKTsKLQotV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYlBhZ2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0TmV3KFdlYktpdDo6V2ViUGFnZSopOwotCi12b2lkIHdlYlBhZ2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0UmVmcmVzaChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCopOwot
Ci1HX0VORF9ERUNMUwotCi0jZW5kaWYgLy8gV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdl
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0
ay5jcHAKaW5kZXggOGIwZGI2ZS4uNzE3YTJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCkBAIC0zMCw3ICszMCw3IEBA
CiAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCi0j
aW5jbHVkZSAiV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdEF0ay5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZvY3VzQ29udHJvbGxlci5oPgo=
</data>
<flag name="review"
          id="189118"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
    <flag name="commit-queue"
          id="189532"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>174637</attachid>
            <date>2012-11-16 03:33:33 -0800</date>
            <delta_ts>2012-11-16 03:39:31 -0800</delta_ts>
            <desc>[WK2][GTK][EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.</desc>
            <filename>bug-101748-20121116123129.txt</filename>
            <type>text/plain</type>
            <size>74</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">L2hvbWUvYnVrZXJrYy93b3Jrc3BhY2Uvd2Via2l0L3dlYmtpdC1vcmctYTExeS93ZWJraXQtYTEx
eS1ndGsvcGF0Y2gucGF0Y2g=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174638</attachid>
            <date>2012-11-16 03:37:48 -0800</date>
            <delta_ts>2012-11-16 07:10:31 -0800</delta_ts>
            <desc>[WK2][GTK][EFL] Share WebKit2-GTK&apos;s Accessibility implementation with other WebKit ports.</desc>
            <filename>wk2-share-a11y.patch</filename>
            <type>text/plain</type>
            <size>20565</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNTIwNDYxLi4xZmEzNDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTItMTEtMTYgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW1dLMl1bR1RLXVtFRkxdIFNoYXJlIFdlYktpdDItR1RLJ3MgQWNjZXNzaWJpbGl0
eSBpbXBsZW1lbnRhdGlvbiB3aXRoIG90aGVyIFdlYktpdCBwb3J0cy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KKworICAgICAgICBSZW1vdmUgYW5kIHJlbmFtZSBmaWxl
cyByZWxhdGVkIHRvIEFjY2Vzc2liaWxpdHkgZnJvbSBXZWJQYWdlL2d0ayB0byBXZWJQYWdlL2F0
ay4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJp
bGl0eU9iamVjdC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oLgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKF9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgIChfV2ViUGFn
ZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcC4KKyAgICAgICAgKGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcik6CisgICAg
ICAgICh3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEluaXRpYWxpemUpOgorICAgICAgICAod2Vi
UGFnZUFjY2Vzc2liaWxpdHlPYmplY3RHZXRJbmRleEluUGFyZW50KToKKyAgICAgICAgKHdlYlBh
Z2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0TkNoaWxkcmVuKToKKyAgICAgICAgKHdlYlBhZ2VBY2Nl
c3NpYmlsaXR5T2JqZWN0UmVmQ2hpbGQpOgorICAgICAgICAod2ViX3BhZ2VfYWNjZXNzaWJpbGl0
eV9vYmplY3RfaW5pdCk6CisgICAgICAgICh3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9j
bGFzc19pbml0KToKKyAgICAgICAgKHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0TmV3KToKKyAg
ICAgICAgKHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmcmVzaCk6CisKIDIwMTItMTEtMTYg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzQ5MDguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCmluZGV4IGQ1
OTVkOTQuLmFlZmViZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC04OCw2ICs4OCw3IEBAIGxp
YndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElf
TUlOT1JfVkVSU0lPTkBfbGFfQ1BQCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cCBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlIFwKKyAgICAtSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvYXRrIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyIFwKIAktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2luY2x1
ZGUgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzU1OGZjYS4uY2RmOGQ1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMTY3LDkgKzExNjcsOSBAQCB3ZWJr
aXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5k
Q29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGFwSGln
aGxpZ2h0Q29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9UYXBIaWdobGlnaHRDb250cm9sbGVyLmggXAorICAgIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaCBcCisgICAgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVj
dEF0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViSW5z
cGVjdG9yR3RrLmNwcCBcCi0JU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9X
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25H
dGsuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRr
L1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvYXRrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMWI3OWQ5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3Qu
aApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RfaAorI2RlZmlu
ZSBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdF9oCisKKyNpbmNsdWRlIDxhdGsvYXRrLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZTsKK30KKworR19CRUdJTl9ERUNMUwor
CisjZGVmaW5lIFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QgICAgICAgICAgICAg
ICh3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJf
UEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVChvYmplY3QpICAgICAgICAgICAoR19UWVBFX0NIRUNL
X0lOU1RBTkNFX0NBU1QoKG9iamVjdCksIFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpF
Q1QsIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KSkKKyNkZWZpbmUgV0VCX1BBR0VfQUNDRVNT
SUJJTElUWV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNU
KChrbGFzcyksIFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QsIFdlYlBhZ2VBY2Nl
c3NpYmlsaXR5T2JqZWN0Q2xhc3MpKQorI2RlZmluZSBXRUJfSVNfUEFHRV9BQ0NFU1NJQklMSVRZ
X09CSkVDVChvYmplY3QpICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iamVj
dCksIFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QpKQorI2RlZmluZSBXRUJfSVNf
UEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVF9DTEFTUyhrbGFzcykgICAoR19UWVBFX0NIRUNLX0NM
QVNTX1RZUEUoKGtsYXNzKSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCkpCisj
ZGVmaW5lIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUX0dFVF9DTEFTUyhvYmplY3QpIChH
X1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmplY3QpLCBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lC
SUxJVFlfT0JKRUNULCBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzKSkKKwordHlwZWRl
ZiBzdHJ1Y3QgX1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0IFdlYlBhZ2VBY2Nlc3NpYmlsaXR5
T2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3Mg
V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzczsKKworc3RydWN0IF9XZWJQYWdlQWNjZXNz
aWJpbGl0eU9iamVjdCB7CisgICAgQXRrUGx1ZyBwYXJlbnQ7CisgICAgV2ViS2l0OjpXZWJQYWdl
KiBtX3BhZ2U7Cit9OworCitzdHJ1Y3QgX1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3Mg
eworICAgIEF0a1BsdWdDbGFzcyBwYXJlbnRDbGFzczsKK307CisKK0dUeXBlIHdlYl9wYWdlX2Fj
Y2Vzc2liaWxpdHlfb2JqZWN0X2dldF90eXBlKCk7CisKK1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdE5ldyhXZWJLaXQ6OldlYlBhZ2UqKTsKKwor
dm9pZCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdFJlZnJlc2goV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3QqKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8vIFdlYlBhZ2VBY2Nlc3NpYmls
aXR5T2JqZWN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIzNzAwMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vz
c2liaWxpdHlPYmplY3RBdGsuY3BwCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oIgorCisjaW5jbHVkZSAiV2ViUGFn
ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitHX0RFRklORV9UWVBFKFdlYlBh
Z2VBY2Nlc3NpYmlsaXR5T2JqZWN0LCB3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdCwgQVRL
X1RZUEVfUExVRykKKworc3RhdGljIEF0a09iamVjdCogYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RX
cmFwcGVyKEF0a09iamVjdCogYXRrT2JqZWN0KQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgQVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNj
ZXNzaWJpbGl0eSgpOworCisgICAgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2li
bGUgPSBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVChhdGtPYmplY3QpOworICAgIGlmICgh
YWNjZXNzaWJsZS0+bV9wYWdlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFBhZ2UqIHBhZ2Ug
PSBhY2Nlc3NpYmxlLT5tX3BhZ2UtPmNvcmVQYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIEZyYW1lKiBjb3JlID0gcGFnZS0+bWFpbkZyYW1lKCk7CisgICAg
aWYgKCFjb3JlIHx8ICFjb3JlLT5kb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3QgPSBjb3JlLT5kb2N1bWVudCgpLT5heE9iamVjdENh
Y2hlKCktPnJvb3RPYmplY3QoKTsKKyAgICBpZiAoIXJvb3QpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgQXRrT2JqZWN0KiBheFJvb3QgPSByb290LT53cmFwcGVyKCk7CisgICAgaWYgKCFheFJv
b3QgfHwgIUFUS19JU19PQkpFQ1QoYXhSb290KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBy
ZXR1cm4gYXhSb290OworfQorCitzdGF0aWMgdm9pZCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVj
dEluaXRpYWxpemUoQXRrT2JqZWN0KiBhdGtPYmplY3QsIGdwb2ludGVyIGRhdGEpCit7CisgICAg
aWYgKEFUS19PQkpFQ1RfQ0xBU1Mod2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfcGFyZW50
X2NsYXNzKS0+aW5pdGlhbGl6ZSkKKyAgICAgICAgQVRLX09CSkVDVF9DTEFTUyh3ZWJfcGFnZV9h
Y2Nlc3NpYmlsaXR5X29iamVjdF9wYXJlbnRfY2xhc3MpLT5pbml0aWFsaXplKGF0a09iamVjdCwg
ZGF0YSk7CisKKyAgICBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVChhdGtPYmplY3QpLT5t
X3BhZ2UgPSByZWludGVycHJldF9jYXN0PFdlYlBhZ2UqPihkYXRhKTsKKyAgICBhdGtfb2JqZWN0
X3NldF9yb2xlKGF0a09iamVjdCwgQVRLX1JPTEVfRklMTEVSKTsKK30KKworc3RhdGljIGdpbnQg
d2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RHZXRJbmRleEluUGFyZW50KEF0a09iamVjdCAqYXRr
T2JqZWN0KQoreworICAgIC8vIEFuIEF0a1BsdWcgaXMgdGhlIG9ubHkgY2hpbGQgYW4gQXRrU29j
a2V0IGNhbiBoYXZlLgorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgZ2ludCB3ZWJQYWdlQWNj
ZXNzaWJpbGl0eU9iamVjdEdldE5DaGlsZHJlbihBdGtPYmplY3QqIGF0a09iamVjdCkKK3sKKyAg
ICBBdGtPYmplY3QqIHJvb3RPYmplY3QgPSBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIo
YXRrT2JqZWN0KTsKKyAgICBpZiAoIXJvb3RPYmplY3QpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBBdGtPYmplY3QqIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5
T2JqZWN0UmVmQ2hpbGQoQXRrT2JqZWN0KiBhdGtPYmplY3QsIGdpbnQgaW5kZXgpCit7CisgICAg
Ly8gSXQncyBzdXBwb3NlZCB0byBoYXZlIGVpdGhlciBvbmUgY2hpbGQgb3IgemVyby4KKyAgICBp
ZiAoaW5kZXggJiYgaW5kZXggIT0gMSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBBdGtPYmpl
Y3QqIHJvb3RPYmplY3QgPSBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIoYXRrT2JqZWN0
KTsKKyAgICBpZiAoIXJvb3RPYmplY3QpCisgICAgICAgIHJldHVybiAwOworCisgICAgYXRrX29i
amVjdF9zZXRfcGFyZW50KHJvb3RPYmplY3QsIGF0a09iamVjdCk7CisgICAgZ19vYmplY3RfcmVm
KHJvb3RPYmplY3QpOworCisgICAgcmV0dXJuIHJvb3RPYmplY3Q7Cit9CisKK3N0YXRpYyB2b2lk
IHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X2luaXQoV2ViUGFnZUFjY2Vzc2liaWxpdHlP
YmplY3QqIGFjY2Vzc2libGUpCit7Cit9CisKK3N0YXRpYyB2b2lkIHdlYl9wYWdlX2FjY2Vzc2li
aWxpdHlfb2JqZWN0X2NsYXNzX2luaXQoV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyog
a2xhc3MpCit7CisgICAgQXRrT2JqZWN0Q2xhc3MqIGF0a09iamVjdENsYXNzID0gQVRLX09CSkVD
VF9DTEFTUyhrbGFzcyk7CisKKyAgICAvLyBObyBuZWVkIHRvIGltcGxlbWVudCBnZXRfcGFyZW50
KCkgaGVyZSBzaW5jZSB0aGlzIGlzIGEgc3ViY2xhc3MKKyAgICAvLyBvZiBBdGtQbHVnIGFuZCBh
bGwgdGhlIGxvZ2ljIHJlbGF0ZWQgdG8gdGhhdCBmdW5jdGlvbiB3aWxsIGJlCisgICAgLy8gaW1w
bGVtZW50ZWQgYnkgdGhlIEFUSyBicmlkZ2UuCisgICAgYXRrT2JqZWN0Q2xhc3MtPmluaXRpYWxp
emUgPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEluaXRpYWxpemU7CisgICAgYXRrT2JqZWN0
Q2xhc3MtPmdldF9pbmRleF9pbl9wYXJlbnQgPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEdl
dEluZGV4SW5QYXJlbnQ7CisgICAgYXRrT2JqZWN0Q2xhc3MtPmdldF9uX2NoaWxkcmVuID0gd2Vi
UGFnZUFjY2Vzc2liaWxpdHlPYmplY3RHZXROQ2hpbGRyZW47CisgICAgYXRrT2JqZWN0Q2xhc3Mt
PnJlZl9jaGlsZCA9IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmQ2hpbGQ7Cit9CisKK1dl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdE5ldyhX
ZWJQYWdlKiBwYWdlKQoreworICAgIEF0a09iamVjdCogb2JqZWN0ID0gQVRLX09CSkVDVChnX29i
amVjdF9uZXcoV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgTlVMTCkpOworICAg
IGF0a19vYmplY3RfaW5pdGlhbGl6ZShvYmplY3QsIHBhZ2UpOworICAgIHJldHVybiBXRUJfUEFH
RV9BQ0NFU1NJQklMSVRZX09CSkVDVChvYmplY3QpOworfQorCit2b2lkIHdlYlBhZ2VBY2Nlc3Np
YmlsaXR5T2JqZWN0UmVmcmVzaChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJs
ZSkKK3sKKyAgICAvLyBXZSBqdXN0IG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlcmUncyBhIGNvbm5l
Y3Rpb24gaW4gdGhlIEFUSworICAgIC8vIHdvcmxkIGJldHdlZW4gdGhpcyBhY2Nlc3NpYmlsaXR5
IG9iamVjdCBhbmQgdGhlIEF0a09iamVjdCBvZgorICAgIC8vIHRoZSBhY2Nlc3NpYmlsaXR5IG9i
amVjdCBmb3IgdGhlIHJvb3Qgb2YgdGhlIERPTSB0cmVlLgorICAgIEF0a09iamVjdCogcm9vdE9i
amVjdCA9IGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcihBVEtfT0JKRUNUKGFjY2Vzc2li
bGUpKTsKKyAgICBpZiAoIXJvb3RPYmplY3QpCisgICAgICAgIHJldHVybjsKKyAgICBhdGtfb2Jq
ZWN0X3NldF9wYXJlbnQocm9vdE9iamVjdCwgQVRLX09CSkVDVChhY2Nlc3NpYmxlKSk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyMjM3MDAwLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMTQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMu
TC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlBhZ2VBY2Nl
c3NpYmlsaXR5T2JqZWN0LmgiCi0KLSNpbmNsdWRlICJXZWJQYWdlLmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9BWE9iamVjdENhY2hlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZS5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLUdfREVGSU5FX1RZUEUoV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3QsIHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0LCBBVEtfVFlQRV9QTFVHKQotCi1zdGF0
aWMgQXRrT2JqZWN0KiBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIoQXRrT2JqZWN0KiBh
dGtPYmplY3QpCi17Ci0gICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQotICAgICAgICBBWE9iamVjdENhY2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7Ci0KLSAg
ICBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJsZSA9IFdFQl9QQUdFX0FDQ0VT
U0lCSUxJVFlfT0JKRUNUKGF0a09iamVjdCk7Ci0gICAgaWYgKCFhY2Nlc3NpYmxlLT5tX3BhZ2Up
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgUGFnZSogcGFnZSA9IGFjY2Vzc2libGUtPm1fcGFn
ZS0+Y29yZVBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAg
RnJhbWUqIGNvcmUgPSBwYWdlLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWNvcmUgfHwgIWNvcmUt
PmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogcm9vdCA9IGNvcmUtPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+cm9vdE9iamVjdCgp
OwotICAgIGlmICghcm9vdCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBdGtPYmplY3QqIGF4
Um9vdCA9IHJvb3QtPndyYXBwZXIoKTsKLSAgICBpZiAoIWF4Um9vdCB8fCAhQVRLX0lTX09CSkVD
VChheFJvb3QpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBheFJvb3Q7Ci19Ci0K
LXN0YXRpYyB2b2lkIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0SW5pdGlhbGl6ZShBdGtPYmpl
Y3QqIGF0a09iamVjdCwgZ3BvaW50ZXIgZGF0YSkKLXsKLSAgICBpZiAoQVRLX09CSkVDVF9DTEFT
Uyh3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9wYXJlbnRfY2xhc3MpLT5pbml0aWFsaXpl
KQotICAgICAgICBBVEtfT0JKRUNUX0NMQVNTKHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0
X3BhcmVudF9jbGFzcyktPmluaXRpYWxpemUoYXRrT2JqZWN0LCBkYXRhKTsKLQotICAgIFdFQl9Q
QUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKGF0a09iamVjdCktPm1fcGFnZSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8V2ViUGFnZSo+KGRhdGEpOwotICAgIGF0a19vYmplY3Rfc2V0X3JvbGUoYXRrT2JqZWN0
LCBBVEtfUk9MRV9GSUxMRVIpOwotfQotCi1zdGF0aWMgZ2ludCB3ZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdEdldEluZGV4SW5QYXJlbnQoQXRrT2JqZWN0ICphdGtPYmplY3QpCi17Ci0gICAgLy8g
QW4gQXRrUGx1ZyBpcyB0aGUgb25seSBjaGlsZCBhbiBBdGtTb2NrZXQgY2FuIGhhdmUuCi0gICAg
cmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBnaW50IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0
TkNoaWxkcmVuKEF0a09iamVjdCogYXRrT2JqZWN0KQotewotICAgIEF0a09iamVjdCogcm9vdE9i
amVjdCA9IGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcihhdGtPYmplY3QpOwotICAgIGlm
ICghcm9vdE9iamVjdCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gMTsKLX0KLQot
c3RhdGljIEF0a09iamVjdCogd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZDaGlsZChBdGtP
YmplY3QqIGF0a09iamVjdCwgZ2ludCBpbmRleCkKLXsKLSAgICAvLyBJdCdzIHN1cHBvc2VkIHRv
IGhhdmUgZWl0aGVyIG9uZSBjaGlsZCBvciB6ZXJvLgotICAgIGlmIChpbmRleCAmJiBpbmRleCAh
PSAxKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEF0a09iamVjdCogcm9vdE9iamVjdCA9IGFj
Y2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcihhdGtPYmplY3QpOwotICAgIGlmICghcm9vdE9i
amVjdCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBhdGtfb2JqZWN0X3NldF9wYXJlbnQocm9v
dE9iamVjdCwgYXRrT2JqZWN0KTsKLSAgICBnX29iamVjdF9yZWYocm9vdE9iamVjdCk7Ci0KLSAg
ICByZXR1cm4gcm9vdE9iamVjdDsKLX0KLQotc3RhdGljIHZvaWQgd2ViX3BhZ2VfYWNjZXNzaWJp
bGl0eV9vYmplY3RfaW5pdChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJsZSkK
LXsKLX0KLQotc3RhdGljIHZvaWQgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfY2xhc3Nf
aW5pdChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzKiBrbGFzcykKLXsKLSAgICBBdGtP
YmplY3RDbGFzcyogYXRrT2JqZWN0Q2xhc3MgPSBBVEtfT0JKRUNUX0NMQVNTKGtsYXNzKTsKLQot
ICAgIC8vIE5vIG5lZWQgdG8gaW1wbGVtZW50IGdldF9wYXJlbnQoKSBoZXJlIHNpbmNlIHRoaXMg
aXMgYSBzdWJjbGFzcwotICAgIC8vIG9mIEF0a1BsdWcgYW5kIGFsbCB0aGUgbG9naWMgcmVsYXRl
ZCB0byB0aGF0IGZ1bmN0aW9uIHdpbGwgYmUKLSAgICAvLyBpbXBsZW1lbnRlZCBieSB0aGUgQVRL
IGJyaWRnZS4KLSAgICBhdGtPYmplY3RDbGFzcy0+aW5pdGlhbGl6ZSA9IHdlYlBhZ2VBY2Nlc3Np
YmlsaXR5T2JqZWN0SW5pdGlhbGl6ZTsKLSAgICBhdGtPYmplY3RDbGFzcy0+Z2V0X2luZGV4X2lu
X3BhcmVudCA9IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0SW5kZXhJblBhcmVudDsKLSAg
ICBhdGtPYmplY3RDbGFzcy0+Z2V0X25fY2hpbGRyZW4gPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdEdldE5DaGlsZHJlbjsKLSAgICBhdGtPYmplY3RDbGFzcy0+cmVmX2NoaWxkID0gd2ViUGFn
ZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZDaGlsZDsKLX0KLQotV2ViUGFnZUFjY2Vzc2liaWxpdHlP
YmplY3QqIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0TmV3KFdlYlBhZ2UqIHBhZ2UpCi17Ci0g
ICAgQXRrT2JqZWN0KiBvYmplY3QgPSBBVEtfT0JKRUNUKGdfb2JqZWN0X25ldyhXRUJfVFlQRV9Q
QUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNULCBOVUxMKSk7Ci0gICAgYXRrX29iamVjdF9pbml0aWFs
aXplKG9iamVjdCwgcGFnZSk7Ci0gICAgcmV0dXJuIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JK
RUNUKG9iamVjdCk7Ci19Ci0KLXZvaWQgd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZyZXNo
KFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmxlKQotewotICAgIC8vIFdlIGp1
c3QgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGVyZSdzIGEgY29ubmVjdGlvbiBpbiB0aGUgQVRLCi0g
ICAgLy8gd29ybGQgYmV0d2VlbiB0aGlzIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGFuZCB0aGUgQXRr
T2JqZWN0IG9mCi0gICAgLy8gdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGZvciB0aGUgcm9vdCBv
ZiB0aGUgRE9NIHRyZWUuCi0gICAgQXRrT2JqZWN0KiByb290T2JqZWN0ID0gYWNjZXNzaWJpbGl0
eVJvb3RPYmplY3RXcmFwcGVyKEFUS19PQkpFQ1QoYWNjZXNzaWJsZSkpOwotICAgIGlmICghcm9v
dE9iamVjdCkKLSAgICAgICAgcmV0dXJuOwotICAgIGF0a19vYmplY3Rfc2V0X3BhcmVudChyb290
T2JqZWN0LCBBVEtfT0JKRUNUKGFjY2Vzc2libGUpKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUFjY2Vzc2li
aWxpdHlPYmplY3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI3OWQ5Yi4uMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2Vi
UGFnZUFjY2Vzc2liaWxpdHlPYmplY3RfaAotI2RlZmluZSBXZWJQYWdlQWNjZXNzaWJpbGl0eU9i
amVjdF9oCi0KLSNpbmNsdWRlIDxhdGsvYXRrLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotY2xh
c3MgV2ViUGFnZTsKLX0KLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQl9UWVBFX1BBR0Vf
QUNDRVNTSUJJTElUWV9PQkpFQ1QgICAgICAgICAgICAgICh3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5
X29iamVjdF9nZXRfdHlwZSgpKQotI2RlZmluZSBXRUJfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVD
VChvYmplY3QpICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iamVjdCks
IFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QsIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5
T2JqZWN0KSkKLSNkZWZpbmUgV0VCX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1RfQ0xBU1Moa2xh
c3MpICAgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksIFdFQl9UWVBFX1BBR0Vf
QUNDRVNTSUJJTElUWV9PQkpFQ1QsIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MpKQot
I2RlZmluZSBXRUJfSVNfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVChvYmplY3QpICAgICAgICAo
R19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iamVjdCksIFdFQl9UWVBFX1BBR0VfQUNDRVNT
SUJJTElUWV9PQkpFQ1QpKQotI2RlZmluZSBXRUJfSVNfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVD
VF9DTEFTUyhrbGFzcykgICAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgV0VCX1RZ
UEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCkpCi0jZGVmaW5lIFdFQl9QQUdFX0FDQ0VTU0lC
SUxJVFlfT0JKRUNUX0dFVF9DTEFTUyhvYmplY3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNT
KChvYmplY3QpLCBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNULCBXZWJQYWdlQWNj
ZXNzaWJpbGl0eU9iamVjdENsYXNzKSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYlBhZ2VBY2Nlc3Np
YmlsaXR5T2JqZWN0IFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0OwotdHlwZWRlZiBzdHJ1Y3Qg
X1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3RDbGFzczsKLQotc3RydWN0IF9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCB7Ci0gICAgQXRr
UGx1ZyBwYXJlbnQ7Ci0gICAgV2ViS2l0OjpXZWJQYWdlKiBtX3BhZ2U7Ci19OwotCi1zdHJ1Y3Qg
X1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MgewotICAgIEF0a1BsdWdDbGFzcyBwYXJl
bnRDbGFzczsKLX07Ci0KLUdUeXBlIHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X2dldF90
eXBlKCk7Ci0KLVdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdE5ldyhXZWJLaXQ6OldlYlBhZ2UqKTsKLQotdm9pZCB3ZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdFJlZnJlc2goV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QqKTsKLQotR19FTkRfREVD
TFMKLQotI2VuZGlmIC8vIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0X2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174677</attachid>
            <date>2012-11-16 07:10:31 -0800</date>
            <delta_ts>2012-11-16 08:02:23 -0800</delta_ts>
            <desc>[WK2][GTK][EFL] Share WebKit2-GTK&apos;s WebProcess Accessibility implementation with other WebKit ports.</desc>
            <filename>wk2-share-a11y.patch</filename>
            <type>text/plain</type>
            <size>20654</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNTIwNDYxLi4wYTY5ZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTItMTEtMTYgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW1dLMl1bR1RLXVtFRkxdIFNoYXJlIFdlYktpdDItR1RLJ3MgV2ViUHJvY2VzcyBB
Y2Nlc3NpYmlsaXR5IGltcGxlbWVudGF0aW9uIHdpdGggb3RoZXIgV2ViS2l0IHBvcnRzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNzQ4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgorCisgICAgICAgIFJlbW92ZSBhbmQg
cmVuYW1lIGZpbGVzIHJlbGF0ZWQgdG8gQWNjZXNzaWJpbGl0eSBmcm9tIFdlYlBhZ2UvZ3RrIHRv
IFdlYlBhZ2UvYXRrLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYlBh
Z2VBY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmguCisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoX1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0KToKKyAgICAg
ICAgKF9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvYXRrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUFjY2Vz
c2liaWxpdHlPYmplY3QuY3BwLgorICAgICAgICAoYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFw
cGVyKToKKyAgICAgICAgKHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0SW5pdGlhbGl6ZSk6Cisg
ICAgICAgICh3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEdldEluZGV4SW5QYXJlbnQpOgorICAg
ICAgICAod2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RHZXROQ2hpbGRyZW4pOgorICAgICAgICAo
d2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZDaGlsZCk6CisgICAgICAgICh3ZWJfcGFnZV9h
Y2Nlc3NpYmlsaXR5X29iamVjdF9pbml0KToKKyAgICAgICAgKHdlYl9wYWdlX2FjY2Vzc2liaWxp
dHlfb2JqZWN0X2NsYXNzX2luaXQpOgorICAgICAgICAod2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3ROZXcpOgorICAgICAgICAod2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZyZXNoKToKKwog
MjAxMi0xMS0xNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNDkwOC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUu
YW0KaW5kZXggZDU5NWQ5NC4uYWVmZWJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KQEAgLTg4LDYg
Kzg4LDcgQEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VC
S0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9DUFAKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ayBcCiAJLUkkKHNyY2RpcikvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwIFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UgXAorICAgIC1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsgXAogCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIgXAogCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvaW5jbHVkZSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNTU4ZmNh
Li5jZGY4ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTExNjcsOSArMTE2
Nyw5IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0ZpbmRDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9UYXBIaWdobGlnaHRDb250cm9sbGVyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1RhcEhpZ2hsaWdodENvbnRyb2xsZXIuaCBcCisgICAgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oIFwK
KyAgICBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYlBhZ2VBY2Nlc3Np
YmlsaXR5T2JqZWN0QXRrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmggXAotCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9u
R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmlu
dE9wZXJhdGlvbkd0ay5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjc5ZDliCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJp
bGl0eU9iamVjdC5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVj
dF9oCisjZGVmaW5lIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0X2gKKworI2luY2x1ZGUgPGF0
ay9hdGsuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJQYWdlOworfQorCitHX0JF
R0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCAg
ICAgICAgICAgICAgKHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X2dldF90eXBlKCkpCisj
ZGVmaW5lIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKG9iamVjdCkgICAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqZWN0KSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJ
QklMSVRZX09CSkVDVCwgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QpKQorI2RlZmluZSBXRUJf
UEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVF9DTEFTUyhrbGFzcykgICAgICAoR19UWVBFX0NIRUNL
X0NMQVNTX0NBU1QoKGtsYXNzKSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCwg
V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcykpCisjZGVmaW5lIFdFQl9JU19QQUdFX0FD
Q0VTU0lCSUxJVFlfT0JKRUNUKG9iamVjdCkgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
VFlQRSgob2JqZWN0KSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCkpCisjZGVm
aW5lIFdFQl9JU19QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUX0NMQVNTKGtsYXNzKSAgIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lCSUxJVFlf
T0JKRUNUKSkKKyNkZWZpbmUgV0VCX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1RfR0VUX0NMQVNT
KG9iamVjdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iamVjdCksIFdFQl9UWVBFX1BB
R0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QsIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3Mp
KQorCit0eXBlZGVmIHN0cnVjdCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QgV2ViUGFnZUFj
Y2Vzc2liaWxpdHlPYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlP
YmplY3RDbGFzcyBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzOworCitzdHJ1Y3QgX1dl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0IHsKKyAgICBBdGtQbHVnIHBhcmVudDsKKyAgICBXZWJL
aXQ6OldlYlBhZ2UqIG1fcGFnZTsKK307CisKK3N0cnVjdCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlP
YmplY3RDbGFzcyB7CisgICAgQXRrUGx1Z0NsYXNzIHBhcmVudENsYXNzOworfTsKKworR1R5cGUg
d2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfZ2V0X3R5cGUoKTsKKworV2ViUGFnZUFjY2Vz
c2liaWxpdHlPYmplY3QqIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0TmV3KFdlYktpdDo6V2Vi
UGFnZSopOworCit2b2lkIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmcmVzaChXZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdCopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLy8gV2ViUGFn
ZUFjY2Vzc2liaWxpdHlPYmplY3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYlBhZ2VBY2Nlc3NpYmlsaXR5T2Jq
ZWN0QXRrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZWEyMjhiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9X
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0dfREVGSU5F
X1RZUEUoV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QsIHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlf
b2JqZWN0LCBBVEtfVFlQRV9QTFVHKQorCitzdGF0aWMgQXRrT2JqZWN0KiBhY2Nlc3NpYmlsaXR5
Um9vdE9iamVjdFdyYXBwZXIoQXRrT2JqZWN0KiBhdGtPYmplY3QpCit7CisgICAgaWYgKCFBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBBWE9iamVjdENhY2hl
OjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7CisKKyAgICBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVj
dCogYWNjZXNzaWJsZSA9IFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKGF0a09iamVjdCk7
CisgICAgaWYgKCFhY2Nlc3NpYmxlLT5tX3BhZ2UpCisgICAgICAgIHJldHVybiAwOworCisgICAg
UGFnZSogY29yZVBhZ2UgPSBhY2Nlc3NpYmxlLT5tX3BhZ2UtPmNvcmVQYWdlKCk7CisgICAgaWYg
KCFjb3JlUGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0g
Y29yZVBhZ2UtPm1haW5GcmFtZSgpOworICAgIGlmICghY29yZUZyYW1lIHx8ICFjb3JlRnJhbWUt
PmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogY29yZVJvb3RPYmplY3QgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUo
KS0+cm9vdE9iamVjdCgpOworICAgIGlmICghY29yZVJvb3RPYmplY3QpCisgICAgICAgIHJldHVy
biAwOworCisgICAgQXRrT2JqZWN0KiByb290T2JqZWN0ID0gY29yZVJvb3RPYmplY3QtPndyYXBw
ZXIoKTsKKyAgICBpZiAoIXJvb3RPYmplY3QgfHwgIUFUS19JU19PQkpFQ1Qocm9vdE9iamVjdCkp
CisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHJvb3RPYmplY3Q7Cit9CisKK3N0YXRp
YyB2b2lkIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0SW5pdGlhbGl6ZShBdGtPYmplY3QqIGF0
a09iamVjdCwgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBpZiAoQVRLX09CSkVDVF9DTEFTUyh3ZWJf
cGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9wYXJlbnRfY2xhc3MpLT5pbml0aWFsaXplKQorICAg
ICAgICBBVEtfT0JKRUNUX0NMQVNTKHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X3BhcmVu
dF9jbGFzcyktPmluaXRpYWxpemUoYXRrT2JqZWN0LCBkYXRhKTsKKworICAgIFdFQl9QQUdFX0FD
Q0VTU0lCSUxJVFlfT0JKRUNUKGF0a09iamVjdCktPm1fcGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViUGFnZSo+KGRhdGEpOworICAgIGF0a19vYmplY3Rfc2V0X3JvbGUoYXRrT2JqZWN0LCBBVEtf
Uk9MRV9GSUxMRVIpOworfQorCitzdGF0aWMgZ2ludCB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVj
dEdldEluZGV4SW5QYXJlbnQoQXRrT2JqZWN0ICphdGtPYmplY3QpCit7CisgICAgLy8gQW4gQXRr
UGx1ZyBpcyB0aGUgb25seSBjaGlsZCBhbiBBdGtTb2NrZXQgY2FuIGhhdmUuCisgICAgcmV0dXJu
IDA7Cit9CisKK3N0YXRpYyBnaW50IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0TkNoaWxk
cmVuKEF0a09iamVjdCogYXRrT2JqZWN0KQoreworICAgIEF0a09iamVjdCogcm9vdE9iamVjdCA9
IGFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcihhdGtPYmplY3QpOworICAgIGlmICghcm9v
dE9iamVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gMTsKK30KKworc3RhdGlj
IEF0a09iamVjdCogd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZDaGlsZChBdGtPYmplY3Qq
IGF0a09iamVjdCwgZ2ludCBpbmRleCkKK3sKKyAgICAvLyBJdCdzIHN1cHBvc2VkIHRvIGhhdmUg
ZWl0aGVyIG9uZSBjaGlsZCBvciB6ZXJvLgorICAgIGlmIChpbmRleCAmJiBpbmRleCAhPSAxKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIEF0a09iamVjdCogcm9vdE9iamVjdCA9IGFjY2Vzc2li
aWxpdHlSb290T2JqZWN0V3JhcHBlcihhdGtPYmplY3QpOworICAgIGlmICghcm9vdE9iamVjdCkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBhdGtfb2JqZWN0X3NldF9wYXJlbnQocm9vdE9iamVj
dCwgYXRrT2JqZWN0KTsKKyAgICBnX29iamVjdF9yZWYocm9vdE9iamVjdCk7CisKKyAgICByZXR1
cm4gcm9vdE9iamVjdDsKK30KKworc3RhdGljIHZvaWQgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9v
YmplY3RfaW5pdChXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogYWNjZXNzaWJsZSkKK3sKK30K
Kworc3RhdGljIHZvaWQgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfY2xhc3NfaW5pdChX
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzKiBrbGFzcykKK3sKKyAgICBBdGtPYmplY3RD
bGFzcyogYXRrT2JqZWN0Q2xhc3MgPSBBVEtfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKworICAgIC8v
IE5vIG5lZWQgdG8gaW1wbGVtZW50IGdldF9wYXJlbnQoKSBoZXJlIHNpbmNlIHRoaXMgaXMgYSBz
dWJjbGFzcworICAgIC8vIG9mIEF0a1BsdWcgYW5kIGFsbCB0aGUgbG9naWMgcmVsYXRlZCB0byB0
aGF0IGZ1bmN0aW9uIHdpbGwgYmUKKyAgICAvLyBpbXBsZW1lbnRlZCBieSB0aGUgQVRLIGJyaWRn
ZS4KKyAgICBhdGtPYmplY3RDbGFzcy0+aW5pdGlhbGl6ZSA9IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5
T2JqZWN0SW5pdGlhbGl6ZTsKKyAgICBhdGtPYmplY3RDbGFzcy0+Z2V0X2luZGV4X2luX3BhcmVu
dCA9IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0SW5kZXhJblBhcmVudDsKKyAgICBhdGtP
YmplY3RDbGFzcy0+Z2V0X25fY2hpbGRyZW4gPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEdl
dE5DaGlsZHJlbjsKKyAgICBhdGtPYmplY3RDbGFzcy0+cmVmX2NoaWxkID0gd2ViUGFnZUFjY2Vz
c2liaWxpdHlPYmplY3RSZWZDaGlsZDsKK30KKworV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3Qq
IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0TmV3KFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgQXRr
T2JqZWN0KiBvYmplY3QgPSBBVEtfT0JKRUNUKGdfb2JqZWN0X25ldyhXRUJfVFlQRV9QQUdFX0FD
Q0VTU0lCSUxJVFlfT0JKRUNULCBOVUxMKSk7CisgICAgYXRrX29iamVjdF9pbml0aWFsaXplKG9i
amVjdCwgcGFnZSk7CisgICAgcmV0dXJuIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKG9i
amVjdCk7Cit9CisKK3ZvaWQgd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZyZXNoKFdlYlBh
Z2VBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmxlKQoreworICAgIC8vIFdlIGp1c3QgbmVl
ZCB0byBlbnN1cmUgdGhhdCB0aGVyZSdzIGEgY29ubmVjdGlvbiBpbiB0aGUgQVRLCisgICAgLy8g
d29ybGQgYmV0d2VlbiB0aGlzIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGFuZCB0aGUgQXRrT2JqZWN0
IG9mCisgICAgLy8gdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGZvciB0aGUgcm9vdCBvZiB0aGUg
RE9NIHRyZWUuCisgICAgQXRrT2JqZWN0KiByb290T2JqZWN0ID0gYWNjZXNzaWJpbGl0eVJvb3RP
YmplY3RXcmFwcGVyKEFUS19PQkpFQ1QoYWNjZXNzaWJsZSkpOworICAgIGlmICghcm9vdE9iamVj
dCkKKyAgICAgICAgcmV0dXJuOworICAgIGF0a19vYmplY3Rfc2V0X3BhcmVudChyb290T2JqZWN0
LCBBVEtfT0JKRUNUKGFjY2Vzc2libGUpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyMzcwMDAuLjAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaCIKLQotI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+Ci0KLXVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotR19ERUZJ
TkVfVFlQRShXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCwgd2ViX3BhZ2VfYWNjZXNzaWJpbGl0
eV9vYmplY3QsIEFUS19UWVBFX1BMVUcpCi0KLXN0YXRpYyBBdGtPYmplY3QqIGFjY2Vzc2liaWxp
dHlSb290T2JqZWN0V3JhcHBlcihBdGtPYmplY3QqIGF0a09iamVjdCkKLXsKLSAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIEFYT2JqZWN0Q2Fj
aGU6OmVuYWJsZUFjY2Vzc2liaWxpdHkoKTsKLQotICAgIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBhY2Nlc3NpYmxlID0gV0VCX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QoYXRrT2JqZWN0
KTsKLSAgICBpZiAoIWFjY2Vzc2libGUtPm1fcGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAg
ICBQYWdlKiBwYWdlID0gYWNjZXNzaWJsZS0+bV9wYWdlLT5jb3JlUGFnZSgpOwotICAgIGlmICgh
cGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBGcmFtZSogY29yZSA9IHBhZ2UtPm1haW5G
cmFtZSgpOwotICAgIGlmICghY29yZSB8fCAhY29yZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0
dXJuIDA7Ci0KLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290ID0gY29yZS0+ZG9jdW1lbnQo
KS0+YXhPYmplY3RDYWNoZSgpLT5yb290T2JqZWN0KCk7Ci0gICAgaWYgKCFyb290KQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIEF0a09iamVjdCogYXhSb290ID0gcm9vdC0+d3JhcHBlcigpOwot
ICAgIGlmICghYXhSb290IHx8ICFBVEtfSVNfT0JKRUNUKGF4Um9vdCkpCi0gICAgICAgIHJldHVy
biAwOwotCi0gICAgcmV0dXJuIGF4Um9vdDsKLX0KLQotc3RhdGljIHZvaWQgd2ViUGFnZUFjY2Vz
c2liaWxpdHlPYmplY3RJbml0aWFsaXplKEF0a09iamVjdCogYXRrT2JqZWN0LCBncG9pbnRlciBk
YXRhKQotewotICAgIGlmIChBVEtfT0JKRUNUX0NMQVNTKHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlf
b2JqZWN0X3BhcmVudF9jbGFzcyktPmluaXRpYWxpemUpCi0gICAgICAgIEFUS19PQkpFQ1RfQ0xB
U1Mod2ViX3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfcGFyZW50X2NsYXNzKS0+aW5pdGlhbGl6
ZShhdGtPYmplY3QsIGRhdGEpOwotCi0gICAgV0VCX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1Qo
YXRrT2JqZWN0KS0+bV9wYWdlID0gcmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlKj4oZGF0YSk7Ci0g
ICAgYXRrX29iamVjdF9zZXRfcm9sZShhdGtPYmplY3QsIEFUS19ST0xFX0ZJTExFUik7Ci19Ci0K
LXN0YXRpYyBnaW50IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0SW5kZXhJblBhcmVudChB
dGtPYmplY3QgKmF0a09iamVjdCkKLXsKLSAgICAvLyBBbiBBdGtQbHVnIGlzIHRoZSBvbmx5IGNo
aWxkIGFuIEF0a1NvY2tldCBjYW4gaGF2ZS4KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGdp
bnQgd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RHZXROQ2hpbGRyZW4oQXRrT2JqZWN0KiBhdGtP
YmplY3QpCi17Ci0gICAgQXRrT2JqZWN0KiByb290T2JqZWN0ID0gYWNjZXNzaWJpbGl0eVJvb3RP
YmplY3RXcmFwcGVyKGF0a09iamVjdCk7Ci0gICAgaWYgKCFyb290T2JqZWN0KQotICAgICAgICBy
ZXR1cm4gMDsKLQotICAgIHJldHVybiAxOwotfQotCi1zdGF0aWMgQXRrT2JqZWN0KiB3ZWJQYWdl
QWNjZXNzaWJpbGl0eU9iamVjdFJlZkNoaWxkKEF0a09iamVjdCogYXRrT2JqZWN0LCBnaW50IGlu
ZGV4KQotewotICAgIC8vIEl0J3Mgc3VwcG9zZWQgdG8gaGF2ZSBlaXRoZXIgb25lIGNoaWxkIG9y
IHplcm8uCi0gICAgaWYgKGluZGV4ICYmIGluZGV4ICE9IDEpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgQXRrT2JqZWN0KiByb290T2JqZWN0ID0gYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFw
cGVyKGF0a09iamVjdCk7Ci0gICAgaWYgKCFyb290T2JqZWN0KQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIGF0a19vYmplY3Rfc2V0X3BhcmVudChyb290T2JqZWN0LCBhdGtPYmplY3QpOwotICAg
IGdfb2JqZWN0X3JlZihyb290T2JqZWN0KTsKLQotICAgIHJldHVybiByb290T2JqZWN0OwotfQot
Ci1zdGF0aWMgdm9pZCB3ZWJfcGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9pbml0KFdlYlBhZ2VB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmxlKQotewotfQotCi1zdGF0aWMgdm9pZCB3ZWJf
cGFnZV9hY2Nlc3NpYmlsaXR5X29iamVjdF9jbGFzc19pbml0KFdlYlBhZ2VBY2Nlc3NpYmlsaXR5
T2JqZWN0Q2xhc3MqIGtsYXNzKQotewotICAgIEF0a09iamVjdENsYXNzKiBhdGtPYmplY3RDbGFz
cyA9IEFUS19PQkpFQ1RfQ0xBU1Moa2xhc3MpOwotCi0gICAgLy8gTm8gbmVlZCB0byBpbXBsZW1l
bnQgZ2V0X3BhcmVudCgpIGhlcmUgc2luY2UgdGhpcyBpcyBhIHN1YmNsYXNzCi0gICAgLy8gb2Yg
QXRrUGx1ZyBhbmQgYWxsIHRoZSBsb2dpYyByZWxhdGVkIHRvIHRoYXQgZnVuY3Rpb24gd2lsbCBi
ZQotICAgIC8vIGltcGxlbWVudGVkIGJ5IHRoZSBBVEsgYnJpZGdlLgotICAgIGF0a09iamVjdENs
YXNzLT5pbml0aWFsaXplID0gd2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RJbml0aWFsaXplOwot
ICAgIGF0a09iamVjdENsYXNzLT5nZXRfaW5kZXhfaW5fcGFyZW50ID0gd2ViUGFnZUFjY2Vzc2li
aWxpdHlPYmplY3RHZXRJbmRleEluUGFyZW50OwotICAgIGF0a09iamVjdENsYXNzLT5nZXRfbl9j
aGlsZHJlbiA9IHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0R2V0TkNoaWxkcmVuOwotICAgIGF0
a09iamVjdENsYXNzLT5yZWZfY2hpbGQgPSB3ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdFJlZkNo
aWxkOwotfQotCi1XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3ROZXcoV2ViUGFnZSogcGFnZSkKLXsKLSAgICBBdGtPYmplY3QqIG9iamVjdCA9IEFU
S19PQkpFQ1QoZ19vYmplY3RfbmV3KFdFQl9UWVBFX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1Qs
IE5VTEwpKTsKLSAgICBhdGtfb2JqZWN0X2luaXRpYWxpemUob2JqZWN0LCBwYWdlKTsKLSAgICBy
ZXR1cm4gV0VCX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1Qob2JqZWN0KTsKLX0KLQotdm9pZCB3
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdFJlZnJlc2goV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3QqIGFjY2Vzc2libGUpCi17Ci0gICAgLy8gV2UganVzdCBuZWVkIHRvIGVuc3VyZSB0aGF0IHRo
ZXJlJ3MgYSBjb25uZWN0aW9uIGluIHRoZSBBVEsKLSAgICAvLyB3b3JsZCBiZXR3ZWVuIHRoaXMg
YWNjZXNzaWJpbGl0eSBvYmplY3QgYW5kIHRoZSBBdGtPYmplY3Qgb2YKLSAgICAvLyB0aGUgYWNj
ZXNzaWJpbGl0eSBvYmplY3QgZm9yIHRoZSByb290IG9mIHRoZSBET00gdHJlZS4KLSAgICBBdGtP
YmplY3QqIHJvb3RPYmplY3QgPSBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIoQVRLX09C
SkVDVChhY2Nlc3NpYmxlKSk7Ci0gICAgaWYgKCFyb290T2JqZWN0KQotICAgICAgICByZXR1cm47
Ci0gICAgYXRrX29iamVjdF9zZXRfcGFyZW50KHJvb3RPYmplY3QsIEFUS19PQkpFQ1QoYWNjZXNz
aWJsZSkpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxYjc5ZDliLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaAorKysg
L2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdh
bGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdF9o
Ci0jZGVmaW5lIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0X2gKLQotI2luY2x1ZGUgPGF0ay9h
dGsuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJQYWdlOwotfQotCi1HX0JFR0lO
X0RFQ0xTCi0KLSNkZWZpbmUgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCAgICAg
ICAgICAgICAgKHdlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X2dldF90eXBlKCkpCi0jZGVm
aW5lIFdFQl9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUKG9iamVjdCkgICAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqZWN0KSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklM
SVRZX09CSkVDVCwgV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QpKQotI2RlZmluZSBXRUJfUEFH
RV9BQ0NFU1NJQklMSVRZX09CSkVDVF9DTEFTUyhrbGFzcykgICAgICAoR19UWVBFX0NIRUNLX0NM
QVNTX0NBU1QoKGtsYXNzKSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCwgV2Vi
UGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcykpCi0jZGVmaW5lIFdFQl9JU19QQUdFX0FDQ0VT
U0lCSUxJVFlfT0JKRUNUKG9iamVjdCkgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSgob2JqZWN0KSwgV0VCX1RZUEVfUEFHRV9BQ0NFU1NJQklMSVRZX09CSkVDVCkpCi0jZGVmaW5l
IFdFQl9JU19QQUdFX0FDQ0VTU0lCSUxJVFlfT0JKRUNUX0NMQVNTKGtsYXNzKSAgIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCBXRUJfVFlQRV9QQUdFX0FDQ0VTU0lCSUxJVFlfT0JK
RUNUKSkKLSNkZWZpbmUgV0VCX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1RfR0VUX0NMQVNTKG9i
amVjdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iamVjdCksIFdFQl9UWVBFX1BBR0Vf
QUNDRVNTSUJJTElUWV9PQkpFQ1QsIFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0Q2xhc3MpKQot
Ci10eXBlZGVmIHN0cnVjdCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QgV2ViUGFnZUFjY2Vz
c2liaWxpdHlPYmplY3Q7Ci10eXBlZGVmIHN0cnVjdCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3RDbGFzcyBXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdENsYXNzOwotCi1zdHJ1Y3QgX1dlYlBh
Z2VBY2Nlc3NpYmlsaXR5T2JqZWN0IHsKLSAgICBBdGtQbHVnIHBhcmVudDsKLSAgICBXZWJLaXQ6
OldlYlBhZ2UqIG1fcGFnZTsKLX07Ci0KLXN0cnVjdCBfV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3RDbGFzcyB7Ci0gICAgQXRrUGx1Z0NsYXNzIHBhcmVudENsYXNzOwotfTsKLQotR1R5cGUgd2Vi
X3BhZ2VfYWNjZXNzaWJpbGl0eV9vYmplY3RfZ2V0X3R5cGUoKTsKLQotV2ViUGFnZUFjY2Vzc2li
aWxpdHlPYmplY3QqIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0TmV3KFdlYktpdDo6V2ViUGFn
ZSopOwotCi12b2lkIHdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmcmVzaChXZWJQYWdlQWNj
ZXNzaWJpbGl0eU9iamVjdCopOwotCi1HX0VORF9ERUNMUwotCi0jZW5kaWYgLy8gV2ViUGFnZUFj
Y2Vzc2liaWxpdHlPYmplY3RfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>