<?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>19785</bug_id>
          
          <creation_ts>2008-06-26 19:18:43 -0700</creation_ts>
          <short_desc>&lt;select&gt; can&apos;t display right-to-left (rtl) languages</short_desc>
          <delta_ts>2011-01-28 13:37:25 -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>CSS</component>
          <version>525.x (Safari 3.1)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://shelleyandjosh.com/test/rtl_select.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>38780</dependson>
          <blocked>50969</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua J Estelle">jestelle</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aharon</cc>
    
    <cc>ap</cc>
    
    <cc>evan</cc>
    
    <cc>jestelle</cc>
    
    <cc>jshin</cc>
    
    <cc>mitz</cc>
    
    <cc>playmobil</cc>
    
    <cc>progame+wk</cc>
    
    <cc>xji</cc>
    
    <cc>xlyuan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>84536</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua J Estelle">jestelle</who>
    <bug_when>2008-06-26 19:18:43 -0700</bug_when>
    <thetext>It seems impossible to get Safari to render a &lt;select&gt; with the text right justified.

This makes webpages that are localized for RTL languages (like Arabic) not look correct, as their &lt;select&gt; boxes can&apos;t correctly show text RTL.

Perhaps there is some tricky CSS to make this happen, but from everything I&apos;ve been able to look at it does seem like anything makes Safari do the right thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84539</commentid>
    <comment_count>1</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-06-26 19:56:41 -0700</bug_when>
    <thetext>Isn&apos;t this how dropdown controls on Mac behave with RTL text?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84540</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-06-26 19:57:52 -0700</bug_when>
    <thetext>(I didn&apos;t think popup menus did right justified text for RTL on OS X.)  Since OS X doesn&apos;t flip scrollbars either in its controls, I don&apos;t think text is right justified for list boxes either, but I could be wrong.  I&apos;ll let Mitz comment.



</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84611</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2008-06-27 16:28:52 -0700</bug_when>
    <thetext>Right-to-left pop-ups are not available in Mac OS X. It is possible to right-align menu items but indentation and markers would still be on the left. For list boxes, I think it would be okay to support text-align:right if other browsers do it, and leave the scroll bar on the right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86707</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-23 01:16:36 -0700</bug_when>
    <thetext>Does this make this a windows-only bug then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86791</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua J Estelle">jestelle</who>
    <bug_when>2008-07-23 16:00:09 -0700</bug_when>
    <thetext>This is *not* a windows only bug.  The bug impacts Safari in OS X as well.

From the sounds of it, it may be infeasible to fix in OS X?

Also, I should point out that Firefox right-aligns the text, even while leaving the scroll bar on the right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104804</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-01-07 16:17:09 -0800</bug_when>
    <thetext>Related Chrome bug: http://code.google.com/p/chromium/issues/detail?id=6113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108066</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-02-02 17:30:51 -0800</bug_when>
    <thetext>Correct, FF3 shows these pop-ups with the text left-justified, even on the Mac.  It seems since we paint the text ourselves, this should be &quot;easy&quot; to fix, if we can get a comprehensive test case which makes clear what edge cases we need to support.  Mitz is the only WebKit committer able to read an RTL language (that I know of), so a test case from an RTL speaker which demonstrates what should be done when the text is too long to fit in the popup, what should be done for multi-selects, etc. could be very useful. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117672</commentid>
    <comment_count>8</comment_count>
    <who name="Yair Yogev">progame+wk</who>
    <bug_when>2009-04-15 14:46:58 -0700</bug_when>
    <thetext>the related chrome bug is now
http://code.google.com/p/chromium/issues/detail?id=6244</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149509</commentid>
    <comment_count>9</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-09-23 14:31:41 -0700</bug_when>
    <thetext>Hi Mitz,

I have some thought on the problem and would like to know what do you think.

For &lt;select&gt;&lt;optioin&gt;:

IE in windows ignore directionality in &lt;option&gt; and it sets the item&apos;s writing direction and alignment (both the selected item in menu and the items in drop-down) based on the directionality of the &lt;select&gt;.

FF in windows and Mac render item in menu (for both alignment and text writing direction) based on the directionality of the &lt;select&gt;, but it render the items in drop-down (for both alignment and text writing direction) based on the directionality of &lt;option&gt;. So, there is inconsistency for both alignment and writing directionality between the items in selected menu and in drop-down list. (See attachment).

Looks like currently, webkit uses natrual-writing-direction to display both the selected item in menu and the items in drop-down list.

But the text-alignment of selected item in menu is always set as LEFT.

I asked Aharon&apos;s opinion on the alignemnt and writing direction of &lt;select&gt;.
He thinks &quot;the directionality be estimated for each option
separately, with each option displayed in its own directionality both in the
drop-down and when chosen. The select&apos;s directionality should only affect the
position of the arrow button (and possibly the alignment of the items, in both
the dropdown and the select, which is the real issue at hand). This way, there
is no inconsistency between what the user sees in the dropdown and the chosen
item.&quot; (please refer to comment #5 in https://bugs.webkit.org/show_bug.cgi?id=29612 for detail).

In another word, he thinks the writing direction in webkit is desired, but not the alignment.

The text-alignment of selected item in menu is always set as LEFT in RenderMenuList::adjustInnerStyle().

    if (PopupMenu::itemWritingDirectionIsNatural()) {
        // Items in the popup will not respect the CSS text-align and direction properties,
        // so we must adjust our own style to match.
        m_innerBlock-&gt;style()-&gt;setTextAlign(LEFT);
        ...
    }

From your comment #3, should we remove the above text-alignment resetting? So that the selected item in menu is aligned based on select element&apos;s alignment, while its directionality is still based on natural writing direction.
Or we can introduce PopupMenu::itemNatrualWritingDirectionDomElementAlignment().

As to the items in drop-down list, looks like it is taken care by each client. In order for each client to handle alignment and writing direction separately for items in drop-down, I think we need to add textAlignment to PopupMenuStyle.

For example, given the following structure:
&lt;select dir=&quot;rtl&quot;&gt;
&lt;option&gt;abc CBA&lt;/option&gt;   (where &apos;CBA&apos; represents Hebrew word)
&lt;option&gt;CBA abc&lt;/option&gt;
&lt;/select&gt;

The writing direction of &quot;abc CBA&quot; is LTR, while writing direction of &quot;CBA abc&quot; is RTL.
But both &quot;abc&quot; and &quot;CBA&quot; should be right-aligned in drop-down box (and in selected menu). Without passing the text alignment to PopupMenuStyle, there is no way for each client to display them as right-aligned.

In summary, we need to 
1. remove the alignment resetting in RenderMenuList::adjustInnerStyle() for rendering selected item in the menu.
2. add textAlignment to PopupMenuStyle, so that each client could control how to render (in writing direction and in alignment) items in drop-down.


Looking forward for your input!

Thanks,
Xiaomei</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149510</commentid>
    <comment_count>10</comment_count>
      <attachid>40019</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-09-23 14:35:17 -0700</bug_when>
    <thetext>Created attachment 40019
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149512</commentid>
    <comment_count>11</comment_count>
      <attachid>40020</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-09-23 14:36:29 -0700</bug_when>
    <thetext>Created attachment 40020
FF&apos;s handling on the above test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341570</commentid>
    <comment_count>12</comment_count>
      <attachid>80470</attachid>
    <who name="">mitz</who>
    <bug_when>2011-01-28 11:33:15 -0800</bug_when>
    <thetext>Created attachment 80470
On Mac OS X, align pop-up menu items according to the &lt;select&gt;’s writing direction and use &lt;option&gt;’s writing direction for each</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341597</commentid>
    <comment_count>13</comment_count>
      <attachid>80470</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-28 11:58:36 -0800</bug_when>
    <thetext>Comment on attachment 80470
On Mac OS X, align pop-up menu items according to the &lt;select&gt;’s writing direction and use &lt;option&gt;’s writing direction for each

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

&gt; Source/WebCore/rendering/RenderMenuList.cpp:213
&gt; +            m_buttonText-&gt;setText(s.impl(), true);

What&apos;s the true?

&gt; Source/WebKit/chromium/src/ChromeClientImpl.h:176
&gt;      virtual bool selectItemWritingDirectionIsNatural();
&gt; +    virtual bool selectItemAlignmentFollowsMenuWritingDirection();

I&apos;m surprised this interface doesn&apos;t just return a writing direction.  But maybe I&apos;m misunderstanding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341610</commentid>
    <comment_count>14</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-01-28 12:07:05 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 80470 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80470&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderMenuList.cpp:213
&gt; &gt; +            m_buttonText-&gt;setText(s.impl(), true);
&gt; 
&gt; What&apos;s the true?

Force, but this was not meant to be part of this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341628</commentid>
    <comment_count>15</comment_count>
      <attachid>80480</attachid>
    <who name="">mitz</who>
    <bug_when>2011-01-28 12:19:38 -0800</bug_when>
    <thetext>Created attachment 80480
On Mac OS X, align pop-up menu items according to the &lt;select&gt;’s writing direction and use &lt;option&gt;’s writing direction for each</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341672</commentid>
    <comment_count>16</comment_count>
      <attachid>80487</attachid>
    <who name="">mitz</who>
    <bug_when>2011-01-28 12:57:53 -0800</bug_when>
    <thetext>Created attachment 80487
On Mac OS X, align pop-up menu items according to the &lt;select&gt;’s writing direction and use &lt;option&gt;’s writing direction for each</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341693</commentid>
    <comment_count>17</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-01-28 13:35:55 -0800</bug_when>
    <thetext>Fixed in r76983 &lt;http://trac.webkit.org/changeset/76983&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341694</commentid>
    <comment_count>18</comment_count>
      <attachid>80487</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2011-01-28 13:36:17 -0800</bug_when>
    <thetext>Comment on attachment 80487
On Mac OS X, align pop-up menu items according to the &lt;select&gt;’s writing direction and use &lt;option&gt;’s writing direction for each

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

&gt; Source/WebCore/rendering/RenderMenuList.cpp:101
&gt; +        innerStyle-&gt;setTextAlign(style()-&gt;isLeftToRightDirection() ? LEFT : RIGHT);

what if the menu&apos;s writing direction is LTR, but it is alignment is right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341696</commentid>
    <comment_count>19</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-01-28 13:37:25 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 80487 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80487&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderMenuList.cpp:101
&gt; &gt; +        innerStyle-&gt;setTextAlign(style()-&gt;isLeftToRightDirection() ? LEFT : RIGHT);
&gt; 
&gt; what if the menu&apos;s writing direction is LTR, but it is alignment is right?

The button and the menu items will disregard the text-align value. We are not going to center or justify menu items on Mac OS X.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>40019</attachid>
            <date>2009-09-23 14:35:17 -0700</date>
            <delta_ts>2009-09-23 14:35:17 -0700</delta_ts>
            <desc>test case</desc>
            <filename>select_alignment.html</filename>
            <type>text/html</type>
            <size>1108</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">77u/PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlv
bmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRp
b25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiID4N
CjxoZWFkPg0KPHRpdGxlPlRlc3QgZHJvcC1kb3duIGl0ZW0ncyBhbGlnbm1lbnQgaW4gPHNlbGVj
dD4vPG9wdGlvbj48L3RpdGxlPg0KPE1FVEEgSFRUUC1FUVVJVj0iQ09OVEVOVC1UWVBFIiBDT05U
RU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPg0KPC9oZWFkPg0KPGJvZHk+DQo8cD4NCnNl
bGVjdCBkcm9wLWRvd24gaXRlbXMnIGFsaWdubWVudCBzaG91bGQgYmUgZGV0ZXJtaW5lZCBieSB0
aGUgZGlyZWN0aW9uYWxpdHkgb2YNCiZsdDtzZWxlY3QmZ3Q7IHRhZy4NCjxwPg0KVGhlIGRyb3At
ZG93biBpdGVtcyBpbiB0aGUgZm9sbG93aW5nICZsdDtzZWxlY3QmZ3Q7IHNob3VsZCBiZSBsZWZ0
LWFsaWduZWQuDQo8YnI+DQo8c2VsZWN0Pg0KPG9wdGlvbj5hYmMgZGVmPC9vcHRpb24+DQo8b3B0
aW9uPtep16DXkSDXkten15s8L29wdGlvbj4NCjxvcHRpb24gZGlyPSJydGwiPmFiYyDXqdeg15Eg
ZGVmPC9vcHRpb24+DQo8b3B0aW9uIGRpcj0ibHRyIj7Xqdeg15EgYWJjINeS16fXmzwvb3B0aW9u
Pg0KPG9wdGlvbiBkaXI9InJ0bCI+aGkhPC9vcHRpb24+DQo8b3B0aW9uIGRpcj0ibHRyIj5oaSE8
L29wdGlvbj4NCjwvc2VsZWN0Pg0KPGJyPg0KVGhlIGRyb3AtZG93biBpdGVtcyBpbiB0aGUgc2Vj
b25kICZsdDtzZWxlY3QmZ3Q7IHNob3VsZCBiZSByaWdodC1hbGlnbmVkLg0KPHA+DQo8c2VsZWN0
IGRpcj0icnRsIj4NCjxvcHRpb24+YWJjIGRlZjwvb3B0aW9uPg0KPG9wdGlvbj7Xqdeg15Eg15LX
p9ebPC9vcHRpb24+DQo8b3B0aW9uIGRpcj0icnRsIj5hYmMg16nXoNeRIGRlZjwvb3B0aW9uPg0K
PG9wdGlvbiBkaXI9Imx0ciI+16nXoNeRIGFiYyDXkten15s8L29wdGlvbj4NCjxvcHRpb24gZGly
PSJydGwiPmhpITwvb3B0aW9uPg0KPG9wdGlvbiBkaXI9Imx0ciI+aGkhPC9vcHRpb24+DQo8L3Nl
bGVjdD4NCjwvYm9keT4NCjwvaHRtbD4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>40020</attachid>
            <date>2009-09-23 14:36:29 -0700</date>
            <delta_ts>2009-09-23 14:36:29 -0700</delta_ts>
            <desc>FF&apos;s handling on the above test case</desc>
            <filename>FF_select.jpg</filename>
            <type>image/jpeg</type>
            <size>14217</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAC/AhYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0eP8A
5DniT/sKj/0itK6zSv8AkGxf8C/ma5OP/kOeJP8AsKj/ANIrSus0r/kGxf8AAv5mtX/DRkv4jLlF
cP470tktDqa6lqkUsl5ZwKltqE8CJG0yIw2o4BJDNzjPPtVK/e68J+ONJgt7vW9Rsp7W7kXT/PM5
3L5X8cjZOMty74HQYJ5xT7+f4K5tbsei0VxWo/FPw3ptlZXMkrMLq1S88vzYY5I4m6ErI6ljwflT
c3HTkZ6W/wBastO0Y6rNIzW21WTy1LNIWICKo6ksSAB6mm9BGhRXlp8dSaJ451i41m18Qw2n2W0S
KxkiSby3kkZdyCEsu08clixPy8natdfceLvIJiXQtVmvI4ftFxaRCBpLePJCs373ad21iFUsxx0o
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
i/4F/M1q/wCGjJfxGXKKKKyNQooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOHj/5DniT/sKj/wBIrSus0r/kGxf8C/ma
5C3ljm1jxHJE6uh1UYZTkH/Q7TvXX6V/yDYv+BfzNav+GjJfxGXKKKKyNQooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
OHj/AOQ54k/7Co/9IrSus0r/AJBsX/Av5muTj/5DniT/ALCo/wDSK0rrNK/5BsX/AAL+ZrV/w0ZL
+Iy5RRRWRqFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQB//Z
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80470</attachid>
            <date>2011-01-28 11:33:15 -0800</date>
            <delta_ts>2011-01-28 12:19:38 -0800</delta_ts>
            <desc>On Mac OS X, align pop-up menu items according to the &lt;select&gt;’s writing direction and use &lt;option&gt;’s writing direction for each</desc>
            <filename>19785_r2.diff</filename>
            <type>text/plain</type>
            <size>59993</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2OTU3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDEtMjggIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2MTUxMj4gPHNlbGVjdD4gY2FuJ3Qg
ZGlzcGxheSByaWdodC10by1sZWZ0IChydGwpIGxhbmd1YWdlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODUKKworICAgICAgICBDaGFuZ2VkIDxz
ZWxlY3Q+IHBvcC11cCBtZW51cyBvbiBNYWMgT1MgWCBTbm93IExlb3BhcmQgYW5kIGxhdGVyIHRv
IGhhdmUgdGhlaXIgaXRlbXMgYWxpZ25lZCBpbiB0aGUKKyAgICAgICAgZGlyZWN0aW9uIGNvcnJl
c3BvbmRpbmcgdG8gdGhlIHdyaXRpbmcgZGlyZWN0aW9uIG9mIHRoZSA8c2VsZWN0PiBlbGVtZW50
LCB3aXRoIHRoZSBjaGVja21hcmtzCisgICAgICAgIG9uIHRoZSAic3RhcnQiIHNpZGUsIGFuZCB1
c2UgdGhlIDxvcHRpb24+J3Mgd3JpdGluZyBkaXJlY3Rpb24gcmF0aGVyIHRoYW4gIm5hdHVyYWwi
LiBNYWRlIHRoZQorICAgICAgICBwb3AtdXAgYnV0dG9uIG1hdGNoIHRoZSBtZW51IGJ5IGFkZGlu
ZyBhIENocm9tZSBib29sZWFuIGZ1bmN0aW9uLCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01l
bnVXcml0aW5nRGlyZWN0aW9uKCksCisgICAgICAgIHdoaWNoIHJldHVybnMgdHJ1ZSBmb3IgdGhp
cyBwb3AtdXAgYmVoYXZpb3IuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVudEZv
bGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbik6IEFkZGVkLgorICAgICAgICAqIG1hbnVhbC10ZXN0
cy9wb3AtdXAtYWxpZ25tZW50LWFuZC1kaXJlY3Rpb24uaHRtbDogQWRkZWQuCisgICAgICAgICog
cGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZWxlY3RJdGVtQWxp
Z25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKTogQWRkZWQuIENhbGxzIHRocm91Z2gg
dG8gdGhlCisgICAgICAgIGNsaWVudC4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vUG9wdXBNZW51U3R5
bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTdHlsZSk6
IEFkZGVkIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSBwYXJhbWV0ZXIgYW5kIG1lbWJlcgorICAg
ICAgICB2YXJpYWJsZSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dVN0eWxlOjpoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpOiBBZGRlZCB0aGlzIGFjY2Vzc29yLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKTogU2V0IHRoZSBwb3AtdXAncyBsYXlvdXQgZGlyZWN0
aW9uIGFuZCBpdGVtcycgdGV4dCBhbGlnbm1lbnQKKyAgICAgICAgdG8gbWF0Y2ggdGhlIG1lbnUn
cyB3cml0aW5nIGRpcmVjdGlvbi4gU2V0IGl0ZW1zJyB3cml0aW5nIGRpcmVjdGlvbiBhbmQgZGly
ZWN0aW9uIG92ZXJyaWRlCisgICAgICAgIGFjY29yZGluZyB0byB0aGVpciBzdHlsZXMuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdCk6IFJlbW92ZWQgdW5uY2VzYWFyeSBpbml0aWFs
aXphdGlvbiBvZiBhIHNtYXJ0IHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51
TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6IElmIHRoZSBhbGlnbm1lbnQgb2YgaXRlbXMgaW4gdGhl
IG1lbnUgZm9sbG93cyB0aGUKKyAgICAgICAgbWVudSdzIHdyaXRpbmcgZGlyZWN0aW9uLCB1c2Ug
dGhhdCBhbGlnbm1lbnQgZm9yIHRoZSBidXR0b24gYXMgd2VsbC4gQWxzbyBpbiB0aGlzIG1vZGUs
IHVzZSB0aGUKKyAgICAgICAgaXRlbSdzIHdyaXRpbmcgZGlyZWN0aW9uIGFuZCBvdmVycmlkZSBz
ZXR0aW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNldFRleHRGcm9tT3B0
aW9uKTogU3RvcmUgdGhlIG9wdGlvbiBlbGVtZW50J3Mgc3R5bGUuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNZW51TGlzdDo6aXRlbVN0eWxlKTogUGFzcyB0aGUgdGV4dCBkaXJlY3Rpb24gb3Zl
cnJpZGUgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6bWVudVN0eWxl
KTogRGl0dG8uIEFsc28gdXNlIHRoZSBidXR0b24ncyBkaXJlY3Rpb24sIG5vdCB0aGUgaW5uZXIg
dGV4dCdzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjptZW51U3R5bGUpOiBQYXNzIHRoZSB0
ZXh0IGRpcmVjdGlvbiBvdmVycmlkZSB2YWx1ZS4KKwogMjAxMS0wMS0yOCAgU2FtIFdlaW5pZyAg
PHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFr
LgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gNzY5NDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEzNyw2ICsxMzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQoKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBib29sIHNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVj
dGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBFbXB0eVBvcHVwTWVudSgpKTsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFy
Y2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25z
dCB7IHJldHVybiBhZG9wdFJlZihuZXcgRW1wdHlTZWFyY2hQb3B1cE1lbnUoKSk7IH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkocmV2aXNpb24gNzY5NDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwOCw2ICs1MDgsMTEgQEAgYm9v
bCBDaHJvbWU6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSQogICAgIHJldHVybiBtX2NsaWVu
dC0+c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKIH0KIAorYm9vbCBDaHJv
bWU6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQorewor
ICAgIHJldHVybiBtX2NsaWVudC0+c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGlu
Z0RpcmVjdGlvbigpOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
Y2xpZW50LT5jcmVhdGVQb3B1cE1lbnUoY2xpZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAko
cmV2aXNpb24gNzY5NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjMsNiArMTYzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAK
ICAgICAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAg
ICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24o
KTsKICAgICAgICAgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNy
ZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiA3Njk0NikKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5Miw2ICsyOTIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgc2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAw
OwogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kikg
Y29uc3QgPSAwOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHls
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxl
LmgJKHJldmlzaW9uIDc2OTQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51
U3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgUG9wdXBNZW51U3R5bGUgewogcHVibGljOgotICAgIFBvcHVwTWVudVN0eWxl
KGNvbnN0IENvbG9yJiBmb3JlZ3JvdW5kLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZCwgY29uc3Qg
Rm9udCYgZm9udCwgYm9vbCB2aXNpYmxlLCBib29sIGlzRGlzcGxheU5vbmUsIExlbmd0aCB0ZXh0
SW5kZW50LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24pCisgICAgUG9wdXBNZW51U3R5bGUo
Y29uc3QgQ29sb3ImIGZvcmVncm91bmQsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kLCBjb25zdCBG
b250JiBmb250LCBib29sIHZpc2libGUsIGJvb2wgaXNEaXNwbGF5Tm9uZSwgTGVuZ3RoIHRleHRJ
bmRlbnQsIFRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9u
T3ZlcnJpZGUpCiAgICAgICAgIDogbV9mb3JlZ3JvdW5kQ29sb3IoZm9yZWdyb3VuZCkKICAgICAg
ICAgLCBtX2JhY2tncm91bmRDb2xvcihiYWNrZ3JvdW5kKQogICAgICAgICAsIG1fZm9udChmb250
KQpAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9pc0Rpc3BsYXlOb25lKGlz
RGlzcGxheU5vbmUpCiAgICAgICAgICwgbV90ZXh0SW5kZW50KHRleHRJbmRlbnQpCiAgICAgICAg
ICwgbV90ZXh0RGlyZWN0aW9uKHRleHREaXJlY3Rpb24pCisgICAgICAgICwgbV9oYXNUZXh0RGly
ZWN0aW9uT3ZlcnJpZGUoaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKQogICAgIHsKICAgICB9CiAg
ICAgCkBAIC01Myw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzRGlzcGxheU5vbmUoKSBj
b25zdCB7IHJldHVybiBtX2lzRGlzcGxheU5vbmU7IH0KICAgICBMZW5ndGggdGV4dEluZGVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGV4dEluZGVudDsgfQogICAgIFRleHREaXJlY3Rpb24gdGV4dERp
cmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dERpcmVjdGlvbjsgfQorICAgIGJvb2wgaGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNUZXh0RGlyZWN0aW9u
T3ZlcnJpZGU7IH0KIAogcHJpdmF0ZToKICAgICBDb2xvciBtX2ZvcmVncm91bmRDb2xvcjsKQEAg
LTYyLDYgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNEaXNwbGF5Tm9uZTsKICAgICBM
ZW5ndGggbV90ZXh0SW5kZW50OwogICAgIFRleHREaXJlY3Rpb24gbV90ZXh0RGlyZWN0aW9uOwor
ICAgIGJvb2wgbV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9wdXBNZW51TWFj
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Qb3B1cE1lbnVN
YWMubW0JKHJldmlzaW9uIDc2OTQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bv
cHVwTWVudU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNzUsNiArNzUsMTEgQEAg
dm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkKICAgICBpZiAoIWNsaWVudCgpLT5zaG91bGRQ
b3BPdmVyKCkpCiAgICAgICAgIFttX3BvcHVwLmdldCgpIGFkZEl0ZW1XaXRoVGl0bGU6QCIiXTsK
IAorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKQorICAgIFRleHREaXJlY3Rpb24gbWVudVRleHREaXJlY3Rpb24gPSBjbGllbnQo
KS0+bWVudVN0eWxlKCkudGV4dERpcmVjdGlvbigpOworICAgIFttX3BvcHVwLmdldCgpIHNldFVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1VzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb25SaWdodFRvTGVmdF07CisjZW5kaWYgLy8gIWRlZmluZWQoQlVJTERJTkdf
T05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisKICAgICBBU1NFUlQo
Y2xpZW50KCkpOwogICAgIGludCBzaXplID0gY2xpZW50KCktPmxpc3RTaXplKCk7CiAKQEAgLTky
LDEzICs5NywyNyBAQCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmplY3Q6Zm9udCBmb3JLZXk6
TlNGb250QXR0cmlidXRlTmFtZV07CiAgICAgICAgICAgICB9CisKKyNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICAgICAg
ICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUoQWRv
cHROUywgW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNv
cHldKTsKKyAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZS5nZXQoKSBzZXRBbGlnbm1lbnQ6bWVu
dVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmlnaHRUZXh0
QWxpZ25tZW50XTsKKyAgICAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0
aW9uID0gc3R5bGUudGV4dERpcmVjdGlvbigpID09IExUUiA/IE5TV3JpdGluZ0RpcmVjdGlvbkxl
ZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CisgICAgICAgICAgICBb
cGFyYWdyYXBoU3R5bGUuZ2V0KCkgc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246d3JpdGluZ0RpcmVj
dGlvbl07CisgICAgICAgICAgICBpZiAoc3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCkp
IHsKKyAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25W
YWx1ZShBZG9wdE5TLCBbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0Rp
cmVjdGlvbiArIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOworICAgICAgICAgICAg
ICAgIFJldGFpblB0cjxOU0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkoQWRvcHROUywgW1tO
U0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgp
LCBuaWxdKTsKKyAgICAgICAgICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmplY3Q6d3JpdGluZ0Rp
cmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpOU1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1l
XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVjdDpwYXJh
Z3JhcGhTdHlsZS5nZXQoKSBmb3JLZXk6TlNQYXJhZ3JhcGhTdHlsZUF0dHJpYnV0ZU5hbWVdOwor
I2VuZGlmIC8vICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKQorCiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHN0
eWxpbmcgdGhlIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3JzLgogICAgICAgICAgICAg
Ly8gRklYTUU6IEZpbmQgYSB3YXkgdG8gY3VzdG9taXplIHRleHQgY29sb3Igd2hlbiBhbiBpdGVt
IGlzIGhpZ2hsaWdodGVkLgotICAgICAgICAgICAgTlNBdHRyaWJ1dGVkU3RyaW5nKiBzdHJpbmcg
PSBbW05TQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6Y2xpZW50KCktPml0
ZW1UZXh0KGkpIGF0dHJpYnV0ZXM6YXR0cmlidXRlc107CisgICAgICAgICAgICBOU0F0dHJpYnV0
ZWRTdHJpbmcgKnN0cmluZyA9IFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0
cmluZzpjbGllbnQoKS0+aXRlbVRleHQoaSkgYXR0cmlidXRlczphdHRyaWJ1dGVzXTsKICAgICAg
ICAgICAgIFthdHRyaWJ1dGVzIHJlbGVhc2VdOwogCiAgICAgICAgICAgICBbbV9wb3B1cC5nZXQo
KSBhZGRJdGVtV2l0aFRpdGxlOkAiIl07Ci0gICAgICAgICAgICBOU01lbnVJdGVtKiBtZW51SXRl
bSA9IFttX3BvcHVwLmdldCgpIGxhc3RJdGVtXTsKKyAgICAgICAgICAgIE5TTWVudUl0ZW0gKm1l
bnVJdGVtID0gW21fcG9wdXAuZ2V0KCkgbGFzdEl0ZW1dOwogICAgICAgICAgICAgW21lbnVJdGVt
IHNldEF0dHJpYnV0ZWRUaXRsZTpzdHJpbmddOwogICAgICAgICAgICAgW21lbnVJdGVtIHNldEVu
YWJsZWQ6Y2xpZW50KCktPml0ZW1Jc0VuYWJsZWQoaSldOwogICAgICAgICAgICAgW21lbnVJdGVt
IHNldFRvb2xUaXA6Y2xpZW50KCktPml0ZW1Ub29sVGlwKGkpXTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNpb24gNzY5NDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDcgKzIsNyBAQAogICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIHNlbGVjdCBlbGVt
ZW50IHJlbmRlcmVyIGluIFdlYkNvcmUuCiAgKgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgICAgICAyMDA5
IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNo
bW9iaWxlLmNvbS8pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTUsNyArNTUsNiBAQCBSZW5kZXJNZW51TGlz
dDo6UmVuZGVyTWVudUxpc3QoRWxlbWVudCogCiAgICAgLCBtX29wdGlvbnNDaGFuZ2VkKHRydWUp
CiAgICAgLCBtX29wdGlvbnNXaWR0aCgwKQogICAgICwgbV9sYXN0U2VsZWN0ZWRJbmRleCgtMSkK
LSAgICAsIG1fcG9wdXAoMCkKICAgICAsIG1fcG9wdXBJc1Zpc2libGUoZmFsc2UpCiB7CiB9CkBA
IC04NCwxOSArODMsMjQgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6Y3JlYXRlSW5uZXJCbG9jaygp
CiAKIHZvaWQgUmVuZGVyTWVudUxpc3Q6OmFkanVzdElubmVyU3R5bGUoKQogewotICAgIG1faW5u
ZXJCbG9jay0+c3R5bGUoKS0+c2V0Qm94RmxleCgxLjBmKTsKKyAgICBSZW5kZXJTdHlsZSogaW5u
ZXJTdHlsZSA9IG1faW5uZXJCbG9jay0+c3R5bGUoKTsKKyAgICBpbm5lclN0eWxlLT5zZXRCb3hG
bGV4KDEpOwogICAgIAotICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0UGFkZGluZ0xlZnQo
TGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChzdHlsZSgpKSwgRml4ZWQp
KTsKLSAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdSaWdodChMZW5ndGgodGhl
bWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChzdHlsZSgpKSwgRml4ZWQpKTsKLSAgICBt
X2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdUb3AoTGVuZ3RoKHRoZW1lKCktPnBvcHVw
SW50ZXJuYWxQYWRkaW5nVG9wKHN0eWxlKCkpLCBGaXhlZCkpOwotICAgIG1faW5uZXJCbG9jay0+
c3R5bGUoKS0+c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgodGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBh
ZGRpbmdCb3R0b20oc3R5bGUoKSksIEZpeGVkKSk7CisgICAgaW5uZXJTdHlsZS0+c2V0UGFkZGlu
Z0xlZnQoTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChzdHlsZSgpKSwg
Rml4ZWQpKTsKKyAgICBpbm5lclN0eWxlLT5zZXRQYWRkaW5nUmlnaHQoTGVuZ3RoKHRoZW1lKCkt
PnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSksIEZpeGVkKSk7CisgICAgaW5uZXJT
dHlsZS0+c2V0UGFkZGluZ1RvcChMZW5ndGgodGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdU
b3Aoc3R5bGUoKSksIEZpeGVkKSk7CisgICAgaW5uZXJTdHlsZS0+c2V0UGFkZGluZ0JvdHRvbShM
ZW5ndGgodGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3R0b20oc3R5bGUoKSksIEZpeGVk
KSk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+c2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSkgewogICAgICAgICAvLyBJdGVtcyBpbiB0aGUgcG9w
dXAgd2lsbCBub3QgcmVzcGVjdCB0aGUgQ1NTIHRleHQtYWxpZ24gYW5kIGRpcmVjdGlvbiBwcm9w
ZXJ0aWVzLAogICAgICAgICAvLyBzbyB3ZSBtdXN0IGFkanVzdCBvdXIgb3duIHN0eWxlIHRvIG1h
dGNoLgotICAgICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldFRleHRBbGlnbihMRUZUKTsK
KyAgICAgICAgaW5uZXJTdHlsZS0+c2V0VGV4dEFsaWduKExFRlQpOwogICAgICAgICBUZXh0RGly
ZWN0aW9uIGRpcmVjdGlvbiA9IChtX2J1dHRvblRleHQgJiYgbV9idXR0b25UZXh0LT50ZXh0KCkt
PmRlZmF1bHRXcml0aW5nRGlyZWN0aW9uKCkgPT0gV1RGOjpVbmljb2RlOjpSaWdodFRvTGVmdCkg
PyBSVEwgOiBMVFI7Ci0gICAgICAgIG1faW5uZXJCbG9jay0+c3R5bGUoKS0+c2V0RGlyZWN0aW9u
KGRpcmVjdGlvbik7CisgICAgICAgIGlubmVyU3R5bGUtPnNldERpcmVjdGlvbihkaXJlY3Rpb24p
OworICAgIH0gZWxzZSBpZiAobV9vcHRpb25TdHlsZSAmJiBkb2N1bWVudCgpLT5wYWdlKCktPmNo
cm9tZSgpLT5zZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkp
IHsKKyAgICAgICAgaW5uZXJTdHlsZS0+c2V0VGV4dEFsaWduKHN0eWxlKCktPmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKSA/IExFRlQgOiBSSUdIVCk7CisgICAgICAgIGlubmVyU3R5bGUtPnNldERp
cmVjdGlvbihtX29wdGlvblN0eWxlLT5kaXJlY3Rpb24oKSk7CisgICAgICAgIGlubmVyU3R5bGUt
PnNldFVuaWNvZGVCaWRpKG1fb3B0aW9uU3R5bGUtPnVuaWNvZGVCaWRpKCkpOwogICAgIH0KIH0K
IApAQCAtMTg0LDggKzE4OCwxMSBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzZXRUZXh0RnJvbU9w
dGlvbihpCiAgICAgaW50IGkgPSBzZWxlY3QtPm9wdGlvblRvTGlzdEluZGV4KG9wdGlvbkluZGV4
KTsKICAgICBTdHJpbmcgdGV4dCA9ICIiOwogICAgIGlmIChpID49IDAgJiYgaSA8IHNpemUpIHsK
LSAgICAgICAgaWYgKE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1l
bnQobGlzdEl0ZW1zW2ldKSkKKyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGxpc3RJdGVtc1tp
XTsKKyAgICAgICAgaWYgKE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVs
ZW1lbnQoZWxlbWVudCkpIHsKICAgICAgICAgICAgIHRleHQgPSBvcHRpb25FbGVtZW50LT50ZXh0
SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7CisgICAgICAgICAgICBtX29wdGlvblN0eWxl
ID0gZWxlbWVudC0+cmVuZGVyU3R5bGUoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHNldFRl
eHQodGV4dC5zdHJpcFdoaXRlU3BhY2UoKSk7CkBAIC0yMDMsNyArMjEwLDcgQEAgdm9pZCBSZW5k
ZXJNZW51TGlzdDo6c2V0VGV4dChjb25zdCBTdHJpbgogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgaWYgKG1fYnV0dG9uVGV4dCAmJiAhbV9idXR0b25UZXh0LT5pc0JSKCkpCi0gICAg
ICAgICAgICBtX2J1dHRvblRleHQtPnNldFRleHQocy5pbXBsKCkpOworICAgICAgICAgICAgbV9i
dXR0b25UZXh0LT5zZXRUZXh0KHMuaW1wbCgpLCB0cnVlKTsKICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICBpZiAobV9idXR0b25UZXh0KQogICAgICAgICAgICAgICAgIG1fYnV0dG9uVGV4dC0+
ZGVzdHJveSgpOwpAQCAtNDE4LDcgKzQyNSw3IEBAIFBvcHVwTWVudVN0eWxlIFJlbmRlck1lbnVM
aXN0OjppdGVtU3R5bGUKICAgICBFbGVtZW50KiBlbGVtZW50ID0gbGlzdEl0ZW1zW2xpc3RJbmRl
eF07CiAgICAgCiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gZWxlbWVudC0+cmVuZGVyU3R5bGUo
KSA/IGVsZW1lbnQtPnJlbmRlclN0eWxlKCkgOiBlbGVtZW50LT5jb21wdXRlZFN0eWxlKCk7Ci0g
ICAgcmV0dXJuIHN0eWxlID8gUG9wdXBNZW51U3R5bGUoc3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRD
b2xvcihDU1NQcm9wZXJ0eUNvbG9yKSwgaXRlbUJhY2tncm91bmRDb2xvcihsaXN0SW5kZXgpLCBz
dHlsZS0+Zm9udCgpLCBzdHlsZS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUsIHN0eWxlLT5kaXNw
bGF5KCkgPT0gTk9ORSwgc3R5bGUtPnRleHRJbmRlbnQoKSwgc3R5bGUtPmRpcmVjdGlvbigpKSA6
IG1lbnVTdHlsZSgpOworICAgIHJldHVybiBzdHlsZSA/IFBvcHVwTWVudVN0eWxlKHN0eWxlLT52
aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvciksIGl0ZW1CYWNrZ3JvdW5kQ29s
b3IobGlzdEluZGV4KSwgc3R5bGUtPmZvbnQoKSwgc3R5bGUtPnZpc2liaWxpdHkoKSA9PSBWSVNJ
QkxFLCBzdHlsZS0+ZGlzcGxheSgpID09IE5PTkUsIHN0eWxlLT50ZXh0SW5kZW50KCksIHN0eWxl
LT5kaXJlY3Rpb24oKSwgc3R5bGUtPnVuaWNvZGVCaWRpKCkgPT0gT3ZlcnJpZGUpIDogbWVudVN0
eWxlKCk7CiB9CiAKIENvbG9yIFJlbmRlck1lbnVMaXN0OjppdGVtQmFja2dyb3VuZENvbG9yKHVu
c2lnbmVkIGxpc3RJbmRleCkgY29uc3QKQEAgLTQ0OCw3ICs0NTUsNyBAQCBDb2xvciBSZW5kZXJN
ZW51TGlzdDo6aXRlbUJhY2tncm91bmRDb2xvCiBQb3B1cE1lbnVTdHlsZSBSZW5kZXJNZW51TGlz
dDo6bWVudVN0eWxlKCkgY29uc3QKIHsKICAgICBSZW5kZXJTdHlsZSogcyA9IG1faW5uZXJCbG9j
ayA/IG1faW5uZXJCbG9jay0+c3R5bGUoKSA6IHN0eWxlKCk7Ci0gICAgcmV0dXJuIFBvcHVwTWVu
dVN0eWxlKHMtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9yKSwgcy0+dmlz
aXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKSwgcy0+Zm9udCgp
LCBzLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSwgcy0+ZGlzcGxheSgpID09IE5PTkUsIHMtPnRl
eHRJbmRlbnQoKSwgcy0+ZGlyZWN0aW9uKCkpOworICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZShz
LT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvciksIHMtPnZpc2l0ZWREZXBl
bmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciksIHMtPmZvbnQoKSwgcy0+dmlz
aWJpbGl0eSgpID09IFZJU0lCTEUsIHMtPmRpc3BsYXkoKSA9PSBOT05FLCBzLT50ZXh0SW5kZW50
KCksIHN0eWxlKCktPmRpcmVjdGlvbigpLCBzdHlsZSgpLT51bmljb2RlQmlkaSgpID09IE92ZXJy
aWRlKTsKIH0KIAogSG9zdFdpbmRvdyogUmVuZGVyTWVudUxpc3Q6Omhvc3RXaW5kb3coKSBjb25z
dApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgJKHJldmlz
aW9uIDc2OTQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiAgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0
aGUgc2VsZWN0IGVsZW1lbnQgcmVuZGVyZXIgaW4gV2ViQ29yZS4KICAqCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTEzMiw2ICsxMzIsOCBAQCBwcml2YXRlOgogCiAgICAgaW50IG1fbGFz
dFNlbGVjdGVkSW5kZXg7CiAKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fb3B0aW9uU3R5bGU7
CisKICAgICBSZWZQdHI8UG9wdXBNZW51PiBtX3BvcHVwOwogICAgIGJvb2wgbV9wb3B1cElzVmlz
aWJsZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAkocmV2aXNpb24gNzY5NDYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTI0LDcgKzkyNCw3IEBAIFBvcHVwTWVudVN0eWxlIFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGkKIAogUG9wdXBNZW51U3R5bGUgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjptZW51U3R5bGUoKSBjb25zdAogewotICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZShzdHls
ZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvciksIHN0eWxlKCktPnZp
c2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciksIHN0eWxlKCkt
PmZvbnQoKSwgc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUsIHN0eWxlKCktPmRpc3Bs
YXkoKSA9PSBOT05FLCBzdHlsZSgpLT50ZXh0SW5kZW50KCksIHN0eWxlKCktPmRpcmVjdGlvbigp
KTsKKyAgICByZXR1cm4gUG9wdXBNZW51U3R5bGUoc3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENv
bG9yKENTU1Byb3BlcnR5Q29sb3IpLCBzdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NT
UHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBzdHlsZSgpLT5mb250KCksIHN0eWxlKCktPnZpc2li
aWxpdHkoKSA9PSBWSVNJQkxFLCBzdHlsZSgpLT5kaXNwbGF5KCkgPT0gTk9ORSwgc3R5bGUoKS0+
dGV4dEluZGVudCgpLCBzdHlsZSgpLT5kaXJlY3Rpb24oKSwgc3R5bGUoKS0+dW5pY29kZUJpZGko
KSA9PSBPdmVycmlkZSk7CiB9CiAKIGludCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNs
aWVudEluc2V0TGVmdCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Njk1NykKKysr
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDExLTAxLTI4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPHNlbGVjdD4gY2FuJ3QgZGlz
cGxheSByaWdodC10by1sZWZ0IChydGwpIGxhbmd1YWdlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODUKKworICAgICAgICAqIFNoYXJlZC9XZWJQ
b3B1cEl0ZW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRl
bSk6IEFkZGVkIGluaXRpYWxpemVycyBmb3IgbV90ZXh0RGlyZWN0aW9uIGFuZCBtX2hhc1RleHRE
aXJlY3Rpb25PdmVycmlkZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBJdGVtOjplbmNvZGUp
OiBFbmNvZGUgdGhlIGl0ZW0ncyB3cml0aW5nIGRpcmVjdGlvbiBhbmQgZGlyZWN0aW9uIG92ZXJy
aWRlIHZhbHVlcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBJdGVtOjpkZWNvZGUpOiBEZWNv
ZGUgdGhlIGl0ZW0ncyB3cml0aW5nIGRpcmVjdGlvbiBhbmQgZGlyZWN0aW9uIG92ZXJyaWRlIHZh
bHVlcy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUG9wdXBJdGVtLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hv
d1BvcHVwTWVudSk6IEFkZGVkIGEgcGFyYW1ldGVyIGZvciB0aGUgbWVudSdzIHRleHQgZGlyZWN0
aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUG9wdXBNZW51UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVw
TWVudVByb3h5TWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94
eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlNYWM6OnBvcHVsYXRl
KTogQWRkZWQgYSBwYXJhbWV0ZXIgZm9yIHRoZSBtZW51J3MgdGV4dCBkaXJlY3Rpb24uCisgICAg
ICAgIFNldCBpdGVtcycgdGV4dCBhbGlnbm1lbnQgdG8gbWF0Y2ggdGhlIG1lbnUncyB3cml0aW5n
IGRpcmVjdGlvbi4gU2V0IGl0ZW1zJyB3cml0aW5nIGRpcmVjdGlvbgorICAgICAgICBhbmQgZGly
ZWN0aW9uIG92ZXJyaWRlIGFjY29yZGluZyB0byB0aGVpciBzdHlsZXMuCisgICAgICAgIChXZWJL
aXQ6OldlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KTogU2V0IHRoZSBwb3AtdXAn
cyBsYXlvdXQgZGlyZWN0aW9uLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCk6IENoYW5nZWQgdG8gcmV0dXJuIGZh
bHNlLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1BbGlnbm1l
bnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51Ojpwb3B1bGF0ZUl0ZW1zKTogSW5pdGlhbGl6ZSBpdGVtcycgd3JpdGluZyBkaXJl
Y3Rpb24gYW5kIGRpcmVjdGlvbiBvdmVycmlkZQorICAgICAgICB2YWx1ZXMuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBvcHVwTWVudTo6c2hvdyk6IFBhc3MgdGhlIG1lbnUncyB3cml0aW5nIGRpcmVj
dGlvbi4KKwogMjAxMS0wMS0yOCAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUG9wdXBJdGVtLmNwcAkocmV2aXNpb24gNzY5NDYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMjQgKzMwLDMyIEBA
CiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKIAor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJQb3B1
cEl0ZW06OldlYlBvcHVwSXRlbSgpCiAgICAgOiBtX3R5cGUoSXRlbSkKKyAgICAsIG1fdGV4dERp
cmVjdGlvbihMVFIpCisgICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZShmYWxzZSkKICAg
ICAsIG1faXNFbmFibGVkKHRydWUpCiB7CiB9CiAKIFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVt
KFR5cGUgdHlwZSkKICAgICA6IG1fdHlwZSh0eXBlKQorICAgICwgbV90ZXh0RGlyZWN0aW9uKExU
UikKKyAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKGZhbHNlKQogICAgICwgbV9pc0Vu
YWJsZWQodHJ1ZSkKICAgICAsIG1faXNMYWJlbChmYWxzZSkKIHsKIH0KIAotV2ViUG9wdXBJdGVt
OjpXZWJQb3B1cEl0ZW0oVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJs
ZWQsIGJvb2wgaXNMYWJlbCkKK1dlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKFR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGJvb2wgaGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIGNvbnN0IFN0cmlu
ZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBib29sIGlzTGFiZWwpCiAgICAg
OiBtX3R5cGUodHlwZSkKICAgICAsIG1fdGV4dCh0ZXh0KQorICAgICwgbV90ZXh0RGlyZWN0aW9u
KHRleHREaXJlY3Rpb24pCisgICAgLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZShoYXNUZXh0
RGlyZWN0aW9uT3ZlcnJpZGUpCiAgICAgLCBtX3Rvb2xUaXAodG9vbFRpcCkKICAgICAsIG1fYWNj
ZXNzaWJpbGl0eVRleHQoYWNjZXNzaWJpbGl0eVRleHQpCiAgICAgLCBtX2lzRW5hYmxlZChpc0Vu
YWJsZWQpCkBAIC01NywyMSArNjUsMjMgQEAgV2ViUG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0oVHlw
ZSB0eXBlLCBjbwogCiB2b2lkIFdlYlBvcHVwSXRlbTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6
SW4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdHlwZSksIG1fdGV4dCwgbV90b29sVGlwLCBtX2Fj
Y2Vzc2liaWxpdHlUZXh0LCBtX2lzRW5hYmxlZCwgbV9pc0xhYmVsKSk7CisgICAgZW5jb2Rlci0+
ZW5jb2RlKENvcmVJUEM6OkluKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX3R5cGUpLCBtX3RleHQs
IHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX3RleHREaXJlY3Rpb24pLCBtX2hhc1RleHREaXJlY3Rp
b25PdmVycmlkZSwgbV90b29sVGlwLCBtX2FjY2Vzc2liaWxpdHlUZXh0LCBtX2lzRW5hYmxlZCwg
bV9pc0xhYmVsKSk7CiB9CiAKIGJvb2wgV2ViUG9wdXBJdGVtOjpkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJQb3B1cEl0ZW0mIGl0ZW0pCiB7CiAgICAgdWludDMy
X3QgdHlwZTsKICAgICBTdHJpbmcgdGV4dDsKKyAgICB1aW50NjRfdCB0ZXh0RGlyZWN0aW9uOwor
ICAgIGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOwogICAgIFN0cmluZyB0b29sVGlwOwog
ICAgIFN0cmluZyBhY2Nlc3NpYmlsaXR5VGV4dDsKICAgICBib29sIGlzRW5hYmxlZDsKICAgICBi
b29sIGlzTGFiZWw7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHR5cGUs
IHRleHQsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlUZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwpKSkK
KyAgICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQodHlwZSwgdGV4dCwgdGV4dERp
cmVjdGlvbiwgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCB0b29sVGlwLCBhY2Nlc3NpYmlsaXR5
VGV4dCwgaXNFbmFibGVkLCBpc0xhYmVsKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGl0ZW0gPSBXZWJQb3B1cEl0ZW0oc3RhdGljX2Nhc3Q8VHlwZT4odHlwZSksIHRleHQsIHRvb2xU
aXAsIGFjY2Vzc2liaWxpdHlUZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwpOworICAgIGl0ZW0gPSBX
ZWJQb3B1cEl0ZW0oc3RhdGljX2Nhc3Q8VHlwZT4odHlwZSksIHRleHQsIHN0YXRpY19jYXN0PFRl
eHREaXJlY3Rpb24+KHRleHREaXJlY3Rpb24pLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRv
b2xUaXAsIGFjY2Vzc2liaWxpdHlUZXh0LCBpc0VuYWJsZWQsIGlzTGFiZWwpOwogICAgIHJldHVy
biB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCShyZXZp
c2lvbiA3Njk0NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uaAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBXZWJQb3B1cEl0ZW1faAogI2Rl
ZmluZSBXZWJQb3B1cEl0ZW1faAogCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0RGlyZWN0aW9uLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsK
QEAgLTQzLDEzICs0NCwxNSBAQCBzdHJ1Y3QgV2ViUG9wdXBJdGVtIHsKIAogICAgIFdlYlBvcHVw
SXRlbSgpOwogICAgIFdlYlBvcHVwSXRlbShUeXBlKTsKLSAgICBXZWJQb3B1cEl0ZW0oVHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIGNvbnN0IFN0cmluZyYg
YWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVkLCBib29sIG1faXNMYWJlbCk7CisgICAg
V2ViUG9wdXBJdGVtKFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgV2ViQ29yZTo6VGV4dERpcmVj
dGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIGNvbnN0IFN0cmluZyYgdG9vbFRp
cCwgY29uc3QgU3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wg
bV9pc0xhYmVsKTsKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciop
IGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
LCBXZWJQb3B1cEl0ZW0mKTsKIAogICAgIFR5cGUgbV90eXBlOwogICAgIFN0cmluZyBtX3RleHQ7
CisgICAgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiBtX3RleHREaXJlY3Rpb247CisgICAgYm9vbCBt
X2hhc1RleHREaXJlY3Rpb25PdmVycmlkZTsKICAgICBTdHJpbmcgbV90b29sVGlwOwogICAgIFN0
cmluZyBtX2FjY2Vzc2liaWxpdHlUZXh0OwogICAgIGJvb2wgbV9pc0VuYWJsZWQ7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gNzY5NDYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTg2MCw3ICsxODYwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFRleHRGcm9t
SXRlbUZvclBvcAogICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VGV4
dEZvckFjdGl2ZVBvcHVwTWVudShpbmRleCksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgVmVjdG9yPFdl
YlBvcHVwSXRlbT4mIGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIGNvbnN0IFBsYXRmb3Jt
UG9wdXBNZW51RGF0YSYgZGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG93UG9wdXBNZW51KGNv
bnN0IEludFJlY3QmIHJlY3QsIHVpbnQ2NF90IHRleHREaXJlY3Rpb24sIGNvbnN0IFZlY3RvcjxX
ZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4LCBjb25zdCBQbGF0Zm9y
bVBvcHVwTWVudURhdGEmIGRhdGEpCiB7CiAgICAgaWYgKG1fYWN0aXZlUG9wdXBNZW51KQogICAg
ICAgICBtX2FjdGl2ZVBvcHVwTWVudS0+aGlkZVBvcHVwTWVudSgpOwpAQCAtMTg3Miw3ICsxODcy
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dQb3B1cE1lbnUoY29uc3QgSQogICAgIHByb2Nl
c3MoKS0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdG9wKCk7CiAjZW5kaWYKIAotICAgIG1fYWN0
aXZlUG9wdXBNZW51LT5zaG93UG9wdXBNZW51KHJlY3QsIGl0ZW1zLCBkYXRhLCBzZWxlY3RlZElu
ZGV4KTsKKyAgICBtX2FjdGl2ZVBvcHVwTWVudS0+c2hvd1BvcHVwTWVudShyZWN0LCBzdGF0aWNf
Y2FzdDxUZXh0RGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9uKSwgaXRlbXMsIGRhdGEsIHNlbGVjdGVk
SW5kZXgpOwogICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gMDsKIH0KIApJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gNzY5NDYpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5Myw3
ICs0OTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmFpbFRvRmluZFN0cmluZyhjb25zdCBT
dHJpbmcmKTsKIAogICAgIC8vIFBvcHVwIE1lbnUuCi0gICAgdm9pZCBzaG93UG9wdXBNZW51KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBp
dGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4LCBjb25zdCBQbGF0Zm9ybVBvcHVwTWVudURhdGEm
KTsKKyAgICB2b2lkIHNob3dQb3B1cE1lbnUoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwg
dWludDY0X3QgdGV4dERpcmVjdGlvbiwgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1z
LCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIGNvbnN0IFBsYXRmb3JtUG9wdXBNZW51RGF0YSYpOwog
ICAgIHZvaWQgaGlkZVBvcHVwTWVudSgpOwogCiAgICAgLy8gQ29udGV4dCBNZW51LgpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiA3Njk0NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE1Myw3ICsxNTMsNyBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZEZhaWxUb0ZpbmRTdHJpbmcoV1RGOjpTdHJpbmcg
c3RyaW5nKQogCiAgICAgIyBQb3B1cE1lbnUgbWVzc2FnZXMKLSAgICBTaG93UG9wdXBNZW51KFdl
YkNvcmU6OkludFJlY3QgcmVjdCwgVmVjdG9yPFdlYktpdDo6V2ViUG9wdXBJdGVtPiBpdGVtcywg
aW50MzJfdCBzZWxlY3RlZEluZGV4LCBXZWJLaXQ6OlBsYXRmb3JtUG9wdXBNZW51RGF0YSBkYXRh
KQorICAgIFNob3dQb3B1cE1lbnUoV2ViQ29yZTo6SW50UmVjdCByZWN0LCB1aW50NjRfdCB0ZXh0
RGlyZWN0aW9uLCBWZWN0b3I8V2ViS2l0OjpXZWJQb3B1cEl0ZW0+IGl0ZW1zLCBpbnQzMl90IHNl
bGVjdGVkSW5kZXgsIFdlYktpdDo6UGxhdGZvcm1Qb3B1cE1lbnVEYXRhIGRhdGEpCiAgICAgSGlk
ZVBvcHVwTWVudSgpCiAgICAgCiAgICAgIyBDb250ZXh0TWVudSBtZXNzYWdlcwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmgJKHJldmlzaW9uIDc2
OTQ2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV2ViUG9wdXBNZW51UHJveHlfaAog
I2RlZmluZSBXZWJQb3B1cE1lbnVQcm94eV9oCiAKKyNpbmNsdWRlIDxXZWJDb3JlL1RleHREaXJl
Y3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNTYsNyArNTcsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBzaG93UG9wdXBNZW51KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVt
cywgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNob3dQb3B1cE1lbnUoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcmVjdCwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRl
bT4mIGl0ZW1zLCBjb25zdCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmLCBpbnQzMl90IHNlbGVjdGVk
SW5kZXgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZVBvcHVwTWVudSgpID0gMDsKIAogcHJv
dGVjdGVkOgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQ
cm94eU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
UG9wdXBNZW51UHJveHlNYWMuaAkocmV2aXNpb24gNzY5NDYpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5
LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAgICAgfQogICAgIH5XZWJQb3B1cE1lbnVQcm94eU1hYygp
OwogCi0gICAgdmlydHVhbCB2b2lkIHNob3dQb3B1cE1lbnUoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiwgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVE
YXRhJiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1BvcHVw
TWVudShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgY29u
c3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mLCBjb25zdCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmLCBp
bnQzMl90IHNlbGVjdGVkSW5kZXgpOwogICAgIHZpcnR1YWwgdm9pZCBoaWRlUG9wdXBNZW51KCk7
CiAKIHByaXZhdGU6CiAgICAgV2ViUG9wdXBNZW51UHJveHlNYWMoV0tWaWV3KiwgV2ViUG9wdXBN
ZW51UHJveHk6OkNsaWVudCogY2xpZW50KTsKIAotICAgIHZvaWQgcG9wdWxhdGUoY29uc3QgVmVj
dG9yPFdlYlBvcHVwSXRlbT4mKTsKKyAgICB2b2lkIHBvcHVsYXRlKGNvbnN0IFZlY3RvcjxXZWJQ
b3B1cEl0ZW0+JiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbik7CiAKICAgICBSZXRhaW5QdHI8TlNQ
b3BVcEJ1dHRvbkNlbGw+IG1fcG9wdXA7CiAgICAgV0tWaWV3KiBtX3dlYlZpZXc7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlN
YWMubW0JKHJldmlzaW9uIDc2OTQ2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJQb3B1cE1lbnVQcm94eU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsNyArNDcsNyBAQCBXZWJQ
b3B1cE1lbnVQcm94eU1hYzo6fldlYlBvcHVwTWVudVByb3h5CiAgICAgICAgIFttX3BvcHVwLmdl
dCgpIHNldENvbnRyb2xWaWV3Om5pbF07CiB9CiAKLXZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6
OnBvcHVsYXRlKGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcykKK3ZvaWQgV2ViUG9w
dXBNZW51UHJveHlNYWM6OnBvcHVsYXRlKGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVt
cywgVGV4dERpcmVjdGlvbiBtZW51VGV4dERpcmVjdGlvbikKIHsKICAgICBpZiAobV9wb3B1cCkK
ICAgICAgICAgW21fcG9wdXAuZ2V0KCkgcmVtb3ZlQWxsSXRlbXNdOwpAQCAtNjQsMjAgKzY0LDM3
IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnBvcHVsYXRlKGNvbnMKICAgICAgICAgICAg
IFtbbV9wb3B1cC5nZXQoKSBtZW51XSBhZGRJdGVtOltOU01lbnVJdGVtIHNlcGFyYXRvckl0ZW1d
XTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBbbV9wb3B1cC5nZXQoKSBhZGRJdGVtV2l0
aFRpdGxlOkAiIl07Ci0gICAgICAgICAgICBOU01lbnVJdGVtKiBtZW51SXRlbSA9IFttX3BvcHVw
LmdldCgpIGxhc3RJdGVtXTsKLSAgICAgICAgICAgIFttZW51SXRlbSBzZXRUaXRsZTpuc1N0cmlu
Z0Zyb21XZWJDb3JlU3RyaW5nKGl0ZW1zW2ldLm1fdGV4dCldOworICAgICAgICAgICAgTlNNZW51
SXRlbSAqbWVudUl0ZW0gPSBbbV9wb3B1cC5nZXQoKSBsYXN0SXRlbV07CisKKyAgICAgICAgICAg
IFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUoQWRvcHRO
UywgW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNvcHld
KTsKKyAgICAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uID0gaXRl
bXNbaV0ubV90ZXh0RGlyZWN0aW9uID09IExUUiA/IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1Jp
Z2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CisgICAgICAgICAgICBbcGFyYWdy
YXBoU3R5bGUuZ2V0KCkgc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246d3JpdGluZ0RpcmVjdGlvbl07
CisgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUuZ2V0KCkgc2V0QWxpZ25tZW50Om1lbnVUZXh0
RGlyZWN0aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdu
bWVudF07CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gYXR0cmli
dXRlcyhBZG9wdE5TLCBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoT2JqZWN0
c0FuZEtleXM6CisgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGUuZ2V0KCksIE5TUGFyYWdy
YXBoU3R5bGVBdHRyaWJ1dGVOYW1lLAorICAgICAgICAgICAgICAgIFttX3BvcHVwLmdldCgpIGZv
bnRdLCBOU0ZvbnRBdHRyaWJ1dGVOYW1lLAorICAgICAgICAgICAgbmlsXSk7CisgICAgICAgICAg
ICBpZiAoaXRlbXNbaV0ubV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpIHsKKyAgICAgICAgICAg
ICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZShBZG9wdE5TLCBb
W05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOworICAgICAgICAgICAgICAgIFJldGFpblB0cjxO
U0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkoQWRvcHROUywgW1tOU0FycmF5IGFsbG9jXSBp
bml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxdKTsKKyAgICAg
ICAgICAgICAgICBbYXR0cmlidXRlcy5nZXQoKSBzZXRPYmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFy
cmF5LmdldCgpIGZvcktleTpOU1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1lXTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIFJldGFpblB0cjxOU0F0dHJpYnV0ZWRTdHJpbmc+IHN0cmlu
ZyhBZG9wdE5TLCBbW05TQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6bnNT
dHJpbmdGcm9tV2ViQ29yZVN0cmluZyhpdGVtc1tpXS5tX3RleHQpIGF0dHJpYnV0ZXM6YXR0cmli
dXRlcy5nZXQoKV0pOworCisgICAgICAgICAgICBbbWVudUl0ZW0gc2V0QXR0cmlidXRlZFRpdGxl
OnN0cmluZy5nZXQoKV07CiAgICAgICAgICAgICBbbWVudUl0ZW0gc2V0RW5hYmxlZDppdGVtc1tp
XS5tX2lzRW5hYmxlZF07CiAgICAgICAgICAgICBbbWVudUl0ZW0gc2V0VG9vbFRpcDpuc1N0cmlu
Z0Zyb21XZWJDb3JlU3RyaW5nKGl0ZW1zW2ldLm1fdG9vbFRpcCldOwogICAgICAgICB9CiAgICAg
fQogfQogCi12b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IElu
dFJlY3QmIHJlY3QsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgY29uc3QgUGxh
dGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KQordm9pZCBXZWJQb3B1
cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGly
ZWN0aW9uIHRleHREaXJlY3Rpb24sIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywg
Y29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KQogewot
ICAgIHBvcHVsYXRlKGl0ZW1zKTsKKyAgICBwb3B1bGF0ZShpdGVtcywgdGV4dERpcmVjdGlvbik7
CiAKICAgICBbbV9wb3B1cC5nZXQoKSBhdHRhY2hQb3BVcFdpdGhGcmFtZTpyZWN0IGluVmlldzpt
X3dlYlZpZXddOwogICAgIFttX3BvcHVwLmdldCgpIHNlbGVjdEl0ZW1BdEluZGV4OnNlbGVjdGVk
SW5kZXhdOworICAgIFttX3BvcHVwLmdldCgpIHNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rp
b246dGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25M
ZWZ0VG9SaWdodCA6IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9MZWZ0XTsK
IAogICAgIE5TTWVudSogbWVudSA9IFttX3BvcHVwLmdldCgpIG1lbnVdOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiA3Njk0NikKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjEyLDYgKzYxMiwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9ybURpZEJsdXIo
Y29uc3QgCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCgpCiB7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFdlYkNocm9tZUNs
aWVudDo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpCit7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNp
b24gNzY5NDYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNiArMTc1LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6SFRNTFBhcnNlclF1aXJrcz4gY3Jl
YXRlSFRNTFBhcnNlclF1aXJrcygpOwogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGln
bm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCop
IGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBvcHVwTWVudS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCShyZXZpc2lvbiA3Njk0NikKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsOCBAQCBWZWN0b3I8V2ViUG9wdXBJdGVtPiBXZWJQ
b3B1cE1lbnU6OnBvcHVsCiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHN0
eWxpbmcgdGhlIGZvbnQuCiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHN0
eWxpbmcgdGhlIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3JzLgogICAgICAgICAgICAg
Ly8gRklYTUU6IEZpbmQgYSB3YXkgdG8gY3VzdG9taXplIHRleHQgY29sb3Igd2hlbiBhbiBpdGVt
IGlzIGhpZ2hsaWdodGVkLgotICAgICAgICAgICAgaXRlbXMuYXBwZW5kKFdlYlBvcHVwSXRlbShX
ZWJQb3B1cEl0ZW06Okl0ZW0sIG1fcG9wdXBDbGllbnQtPml0ZW1UZXh0KGkpLCBtX3BvcHVwQ2xp
ZW50LT5pdGVtVG9vbFRpcChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUFjY2Vzc2liaWxpdHlUZXh0
KGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtSXNFbmFibGVkKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVt
SXNMYWJlbChpKSkpOworICAgICAgICAgICAgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlID0gbV9w
b3B1cENsaWVudC0+aXRlbVN0eWxlKGkpOworICAgICAgICAgICAgaXRlbXMuYXBwZW5kKFdlYlBv
cHVwSXRlbShXZWJQb3B1cEl0ZW06Okl0ZW0sIG1fcG9wdXBDbGllbnQtPml0ZW1UZXh0KGkpLCBp
dGVtU3R5bGUudGV4dERpcmVjdGlvbigpLCBpdGVtU3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJy
aWRlKCksIG1fcG9wdXBDbGllbnQtPml0ZW1Ub29sVGlwKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVt
QWNjZXNzaWJpbGl0eVRleHQoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc0VuYWJsZWQoaSksIG1f
cG9wdXBDbGllbnQtPml0ZW1Jc0xhYmVsKGkpKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEx
MSw3ICsxMTIsNyBAQCB2b2lkIFdlYlBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0JiByCiAg
ICAgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhIHBsYXRmb3JtRGF0YTsKICAgICBzZXRVcFBsYXRmb3Jt
RGF0YShwYWdlQ29vcmRpbmF0ZXMsIHBsYXRmb3JtRGF0YSk7CiAKLSAgICBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd1Bv
cHVwTWVudShwYWdlQ29vcmRpbmF0ZXMsIGl0ZW1zLCBpbmRleCwgcGxhdGZvcm1EYXRhKSwgbV9w
YWdlLT5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dQb3B1cE1lbnUocGFnZUNvb3JkaW5hdGVz
LCBtX3BvcHVwQ2xpZW50LT5tZW51U3R5bGUoKS50ZXh0RGlyZWN0aW9uKCksIGl0ZW1zLCBpbmRl
eCwgcGxhdGZvcm1EYXRhKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2ViUG9wdXBN
ZW51OjpoaWRlKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3Njk1
NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTEtMDEtMjggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8c2Vs
ZWN0PiBjYW4ndCBkaXNwbGF5IHJpZ2h0LXRvLWxlZnQgKHJ0bCkgbGFuZ3VhZ2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc4NQorCisgICAgICAg
ICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnRJbXBsOjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKTog
QWRkZWQuCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKwogMjAxMS0wMS0yOCAg
SWx5YSBTaGVybWFuICA8aXNoZXJtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFuZHJlYXMgS2xpbmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gNzY5NDYpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUz
LDYgKzg1MywxMSBAQCBib29sIENocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1Xcml0aW5nCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENocm9tZUNsaWVudEltcGw6OnNlbGVjdEl0ZW1B
bGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICBpZiAoV2ViVmll
d0ltcGw6OnVzZUV4dGVybmFsUG9wdXBNZW51cygpKQpJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAkocmV2aXNpb24gNzY5NDYpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE3Myw2ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXJzb3JGb3JQbHVnaW4o
Y29uc3QgV2ViQ3Vyc29ySW5mbyYpOwogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGln
bm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCop
IGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Njk1NykKKysrIFNvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDExLTAxLTI4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPHNlbGVjdD4gY2FuJ3QgZGlzcGxh
eSByaWdodC10by1sZWZ0IChydGwpIGxhbmd1YWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODUKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6
OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24pOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKwogMjAxMS0wMS0y
NyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAJKHJldmlzaW9uIDc2OTQ2KQorKysgU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTMyLDYgKzUzMiwxMSBAQCBib29sIENocm9tZUNsaWVudEVmbDo6c2VsZWN0SXRl
bVdyaXRpbmdECiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50RWZsOjpz
ZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRFZmw6
OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUVmbChjbGllbnQpKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCShyZXZp
c2lvbiA3Njk0NikKKysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDksNiArMTQ5LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZShjb25zdCBWaWV3cG9y
dEFyZ3VtZW50cyYpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1l
bnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lv
biA3Njk1NykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDExLTAxLTI4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPHNl
bGVjdD4gY2FuJ3QgZGlzcGxheSByaWdodC10by1sZWZ0IChydGwpIGxhbmd1YWdlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODUKKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVj
dGlvbik6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
OgorCiAyMDExLTAxLTI4ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkocmV2aXNpb24g
NzY5NDYpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NzQsNiArNjc0LDExIEBAIGJvb2wgQ2hyb21lQ2xp
ZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBD
aHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rp
b24oKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1
cE1lbnU+IENocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51
R3RrKGNsaWVudCkpOwpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgJKHJldmlzaW9uIDc2OTQ2KQorKysgU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEzNyw2ICsxMzcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lk
IGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CiAgICAgICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShX
ZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogI2lmIEVOQUJMRShWSURFTykKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
aGFpa3UvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Njk1NykKKysrIFNvdXJjZS9XZWJLaXQvaGFpa3Uv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDEtMjggIERh
biBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICA8c2VsZWN0PiBjYW4ndCBkaXNwbGF5IHJpZ2h0LXRvLWxl
ZnQgKHJ0bCkgbGFuZ3VhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTc4NQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OnNlbGVjdEl0
ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24pOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgorCiAyMDExLTAxLTI3ICBOYXRl
IENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50SGFpa3UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCShyZXZpc2lvbiA3Njk0NikKKysrIFNvdXJj
ZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOTksNiArMzk5LDExIEBAIGJvb2wgQ2hyb21lQ2xpZW50SGFpa3U6OnNl
bGVjdEl0ZW1Xcml0aW4KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50
SGFpa3U6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQor
eworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNs
aWVudEhhaWt1OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVIYWlrdShjbGllbnQpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEhhaWt1LmgJKHJldmlzaW9uIDc2OTQ2KQorKysgU291cmNlL1dlYktpdC9oYWlrdS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMs
NiArMTMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICAgICAgICAgdmlydHVh
bCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KCk7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNl
YXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNv
bnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Njk1NykKKysrIFNvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEx
LTAxLTI4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPHNlbGVjdD4gY2FuJ3QgZGlzcGxheSBy
aWdodC10by1sZWZ0IChydGwpIGxhbmd1YWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODUKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwpOiBDaGFuZ2VkIHRvIHJldHVybiBmYWxzZS4KKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbik6
IEFkZGVkLiBSZXR1cm5zIHRydWUuCisKIDIwMTEtMDEtMjcgIFNoZXJpZmYgQm90ICA8d2Via2l0
LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHI3Njg5MS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiA3Njk0NikKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzks
NiArMTc5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2Nh
dGlvbiopIHsgfQogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dz
TWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29u
c3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3Jl
YXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCShyZXZpc2lvbiA3Njk0NikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNzQ5LDcgKzc0OSwy
MCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9ybURpZEJsdXIoY29uc3QgCiAKIGJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7Cisj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpCisgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRp
ZgorfQorCitib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NN
ZW51V3JpdGluZ0RpcmVjdGlvbigpCit7CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisgICAgcmV0dXJuIHRydWU7CisjZWxz
ZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQogCiBQYXNzUmVmUHRyPFdlYkNvcmU6OlBv
cHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzY5
NTcpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDExLTAxLTI4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPHNlbGVjdD4g
Y2FuJ3QgZGlzcGxheSByaWdodC10by1sZWZ0IChydGwpIGxhbmd1YWdlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODUKKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFF0OjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KTogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKwog
MjAxMS0wMS0yNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkocmV2aXNpb24gNzY5NDYpCisrKyBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzM2LDYgKzczNiwxMSBAQCBib29sIENocm9tZUNsaWVudFF0OjpzZWxlY3RJ
dGVtV3JpdGluZ0RpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENocm9tZUNsaWVudFF0
OjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRR
dDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51UXQoY2xpZW50LCB0aGlzKSk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCShy
ZXZpc2lvbiA3Njk0NikKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTg5LDYgKzE4OSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAKICAgICAgICAgdmlydHVh
bCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KCk7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNl
YXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNv
bnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVWaXNpdGVkTGlua3MoKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2OTU3KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDEtMjggIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICA8c2VsZWN0PiBjYW4ndCBkaXNwbGF5IHJpZ2h0LXRvLWxlZnQg
KHJ0bCkgbGFuZ3VhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTc4NQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxv
d3NNZW51V3JpdGluZ0RpcmVjdGlvbik6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDExLTAxLTI3ICBOYXRlIENoYXBpbiAgPGphcGhldEBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAkocmV2aXNpb24gNzY5NDYpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NjIsNiArODYyLDExIEBA
IGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0QKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dz
TWVudVdyaXRpbmdEaXJlY3Rpb24oKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1Jl
ZlB0cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBN
ZW51V2luKGNsaWVudCkpOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDc2OTQ2KQorKysgU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTE3NSw2ICsxNzUsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDc2OTU3KQorKysgU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNCBAQAorMjAxMS0wMS0yOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxz
ZWxlY3Q+IGNhbid0IGRpc3BsYXkgcmlnaHQtdG8tbGVmdCAocnRsKSBsYW5ndWFnZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Nzg1CisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudFdpbkNFOjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0
aW5nRGlyZWN0aW9uKTogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50V2luQ0UuaDoKKwogMjAxMS0wMS0yNSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpJbmRleDogU291cmNl
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRX
aW5DRS5jcHAJKHJldmlzaW9uIDc2OTQ2KQorKysgU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5MCw2ICsz
OTAsMTEgQEAgYm9vbCBDaHJvbWVDbGllbnRXaW5DRTo6c2VsZWN0SXRlbVdyaXRpbgogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRXaW5DRTo6c2VsZWN0SXRlbUFsaWdu
bWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50V2luQ0U6OmNyZWF0ZVBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFBvcHVwTWVudVdpbihjbGllbnQpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgJKHJldmlzaW9u
IDc2OTQ2KQorKysgU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRXaW5DRS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzQsNiArMTc0LDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3Jp
dGluZ0RpcmVjdGlvbigpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gv
Q2hhbmdlTG9nCShyZXZpc2lvbiA3Njk1NykKKysrIFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDEtMjggIERhbiBCZXJuc3Rl
aW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICA8c2VsZWN0PiBjYW4ndCBkaXNwbGF5IHJpZ2h0LXRvLWxlZnQgKHJ0bCkg
bGFuZ3VhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTc4NQorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxv
d3NNZW51V3JpdGluZ0RpcmVjdGlvbik6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guaDoKKwogMjAxMS0wMS0yNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAJKHJl
dmlzaW9uIDc2OTQ2KQorKysgU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNs
aWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc2LDYgKzQ3NiwxMSBAQCBib29sIENocm9t
ZUNsaWVudFd4OjpzZWxlY3RJdGVtV3JpdGluZ0RpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiti
b29sIENocm9tZUNsaWVudFd4OjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5n
RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8UG9wdXBN
ZW51PiBDaHJvbWVDbGllbnRXeDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xp
ZW50KSBjb25zdAogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51V3goY2xpZW50
KSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3gu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xp
ZW50V3guaAkocmV2aXNpb24gNzY5NDYpCisrKyBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDYgKzE0OSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSB7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOworICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0
ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvbWFudWFsLXRlc3RzL3BvcC11cC1hbGlnbm1lbnQtYW5kLWRpcmVjdGlvbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUu
CnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5n
ZXMgb246IFNvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9wb3AtdXAtYWxpZ25tZW50LWFuZC1k
aXJlY3Rpb24uaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGlj
YXRpb24vb2N0ZXQtc3RyZWFtCgoKL3Y4QVBBQnpBSFFBZVFCc0FHVUFQZ0FLQUNBQUlBQWdBQ0FB
Y3dCbEFHd0FaUUJqQUhRQUlBQjdBQ0FBWkFCcEFITUFjQUJzQUdFQQplUUE2QUNBQVlnQnNBRzhB
WXdCckFEc0FJQUJtQUc4QWJnQjBBQzBBY3dCcEFIb0FaUUE2QUNBQU1RQTJBSEFBZUFBN0FDQUFm
UUFLCkFDQUFJQUFnQUNBQWJBQmhBR0lBWlFCc0FDQUFld0FnQUdRQWFRQnpBSEFBYkFCaEFIa0FP
Z0FnQUdJQWJBQnZBR01BYXdBN0FDQUEKWmdCdkFHNEFkQUE2QUNBQU1RQXpBSEFBZUFBZ0FDSUFU
QUIxQUdNQWFRQmtBR0VBSUFCSEFISUFZUUJ1QUdRQVpRQWlBRHNBSUFCOQpBQW9BSUFBZ0FDQUFJ
QUFqQUhJQVpRQm1BR3dBWlFCakFIUUFhUUJ2QUc0QUlBQjdBQ0FBWmdCdkFHNEFkQUE2QUNBQU1R
QXpBSEFBCmVBQWdBQ0lBVEFCMUFHTUFhUUJrQUdFQUlBQkhBSElBWVFCdUFHUUFaUUFpQURzQUlB
QndBR0VBWkFCa0FHa0FiZ0JuQURvQUlBQXgKQURBQWNBQjRBRHNBSUFCM0FHa0FaQUIwQUdnQU9n
QWdBRElBTkFBMUFIQUFlQUE3QUNBQWZRQUtBRHdBTHdCekFIUUFlUUJzQUdVQQpQZ0FLQUFvQVBB
QndBRDRBQ2dBZ0FDQUFJQUFnQUVZQWJ3QnlBQ0FBWlFCaEFHTUFhQUFnQUc4QVpnQWdBSFFBYUFC
bEFDQUFaQUJwCkFISUFaUUJqQUhRQWFRQnZBRzRBSUFCekFHVUFkQUIwQUdrQWJnQm5BSE1BSUFC
aUFHVUFiQUJ2QUhjQUxBQWdBR0VBYmdCa0FDQUEKWmdCdkFISUFJQUJsQUdFQVl3Qm9BQ0FBYVFC
MEFHVUFiUUFnQUdrQWJnQWdBSFFBYUFCbEFDQUFjQUJ2QUhBQUxRQjFBSEFBSUFCdApBR1VBYmdC
MUFDQUFZZ0JsQUd3QWJ3QjNBQ3dBSUFCMkFHVUFjZ0JwQUdZQWVRQWdBSFFBYUFCaEFIUUFDZ0Fn
QUNBQUlBQWdBSFFBCmFBQmxBQ0FBWVFCc0FHa0Fad0J1QUcwQVpRQnVBSFFBSUFCaEFHNEFaQUFn
QUdNQWJ3QnVBSFFBWlFCdUFIUUFJQUJ0QUdFQWRBQmoKQUdnQUlBQmlBR1VBZEFCM0FHVUFaUUJ1
QUNBQWRBQm9BR1VBSUFCd0FHOEFjQUF0QUhVQWNBQWdBR0lBZFFCMEFIUUFid0J1QUN3QQpJQUIw
QUdnQVpRQWdBRzBBWlFCdUFIVUFJQUJwQUhRQVpRQnRBQ3dBSUFCaEFHNEFaQUFnQUhRQWFBQmxB
Q0FBZGdCaEFHd0FkUUJsCkFDQUFZUUJ6QUNBQWFRQjBBQ0FBYVFCekFBb0FJQUFnQUNBQUlBQnlB
R1VBWmdCc0FHVUFZd0IwQUdVQVpBQWdBR0lBWlFCc0FHOEEKZHdBZ0FIUUFhQUJsQUNBQWNBQnZB
SEFBTFFCMUFIQUFJQUJpQUhVQWRBQjBBRzhBYmdBc0FDQUFZUUJ1QUdRQUlBQjBBR2dBWVFCMApB
Q0FBZEFCb0FHVUFJQUJqQUdnQVpRQmpBR3NBYlFCaEFISUFhd0J6QUNBQVlRQndBSEFBWlFCaEFI
SUFJQUJ2QUc0QUlBQjBBR2dBClpRQWdBSE1BZEFCaEFISUFkQUFnQUhNQWFRQmtBR1VBSUFCdkFH
WUFJQUIwQUdnQVpRQWdBR2tBZEFCbEFHMEFMZ0FLQUR3QUx3QncKQUQ0QUNnQUtBRHdBYkFCaEFH
SUFaUUJzQUQ0QVBBQnBBRzRBY0FCMUFIUUFJQUIwQUhrQWNBQmxBRDBBSWdCeUFHRUFaQUJwQUc4
QQpJZ0FnQUc0QVlRQnRBR1VBUFFBaUFHUUFhUUJ5QUdVQVl3QjBBR2tBYndCdUFDSUFJQUIyQUdF
QWJBQjFBR1VBUFFBaUFHd0FkQUJ5CkFDSUFJQUJqQUdnQVpRQmpBR3NBWlFCa0FDQUFid0J1QUdN
QWFBQmhBRzRBWndCbEFEMEFJZ0JrQUdrQWNnQmxBR01BZEFCcEFHOEEKYmdCREFHZ0FZUUJ1QUdj
QVpRQmtBQ2dBWlFCMkFHVUFiZ0IwQUNrQUlnQStBQ0FBVEFCbEFHWUFkQUFnQUhRQWJ3QWdBSElB
YVFCbgpBR2dBZEFBOEFDOEFiQUJoQUdJQVpRQnNBRDRBQ2dBOEFHd0FZUUJpQUdVQWJBQStBRHdB
YVFCdUFIQUFkUUIwQUNBQWRBQjVBSEFBClpRQTlBQ0lBY2dCaEFHUUFhUUJ2QUNJQUlBQnVBR0VB
YlFCbEFEMEFJZ0JrQUdrQWNnQmxBR01BZEFCcEFHOEFiZ0FpQUNBQWRnQmgKQUd3QWRRQmxBRDBB
SWdCeUFIUUFiQUFpQUNBQWJ3QnVBR01BYUFCaEFHNEFad0JsQUQwQUlnQmtBR2tBY2dCbEFHTUFk
QUJwQUc4QQpiZ0JEQUdnQVlRQnVBR2NBWlFCa0FDZ0FaUUIyQUdVQWJnQjBBQ2tBSWdBK0FDQUFV
Z0JwQUdjQWFBQjBBQ0FBZEFCdkFDQUFiQUJsCkFHWUFkQUE4QUM4QWJBQmhBR0lBWlFCc0FENEFD
Z0FLQUR3QWN3QmxBR3dBWlFCakFIUUFJQUJwQUdRQVBRQWlBRzBBWlFCdUFIVUEKSWdBK0FBb0FJ
QUFnQUNBQUlBQThBRzhBY0FCMEFHa0Fid0J1QUNBQWN3QjBBSGtBYkFCbEFEMEFJZ0JrQUdrQWNn
QmxBR01BZEFCcApBRzhBYmdBNkFDQUFiQUIwQUhJQU93QWlBRDRBQ2dBZ0FDQUFJQUFnQUNBQUlB
QWdBQ0FBUmdCcEFISUFjd0IwQUNBRjZRWGdCZGtGCjFBQWdBQ2dBTUFBekFDa0FJQVhvQmRFRjJR
WGlCZGtGNmdBZ0FHWUFhUUJtQUhRQWFBQUtBQ0FBSUFBZ0FDQUFQQUF2QUc4QWNBQjAKQUdrQWJ3
QnVBRDRBQ2dBZ0FDQUFJQUFnQUR3QWJ3QndBSFFBYVFCdkFHNEFJQUJ6QUhRQWVRQnNBR1VBUFFB
aUFHUUFhUUJ5QUdVQQpZd0IwQUdrQWJ3QnVBRG9BSUFCeUFIUUFiQUE3QUNJQVBnQUtBQ0FBSUFB
Z0FDQUFJQUFnQUNBQUlBQkdBR2tBY2dCekFIUUFJQVhwCkJlQUYyUVhVQUNBQUtBQXdBRE1BS1FB
Z0JlZ0YwUVhaQmVJRjJRWHFBQ0FBWmdCcEFHWUFkQUJvQUFvQUlBQWdBQ0FBSUFBOEFDOEEKYndC
d0FIUUFhUUJ2QUc0QVBnQUtBQ0FBSUFBZ0FDQUFQQUJ2QUhBQWRBQnBBRzhBYmdBZ0FITUFkQUI1
QUd3QVpRQTlBQ0lBWkFCcApBSElBWlFCakFIUUFhUUJ2QUc0QU9nQWdBR3dBZEFCeUFEc0FJQUIx
QUc0QWFRQmpBRzhBWkFCbEFDMEFZZ0JwQUdRQWFRQTZBQ0FBCllnQnBBR1FBYVFBdEFHOEFkZ0Js
QUhJQWNnQnBBR1FBWlFBN0FDSUFQZ0FLQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUJHQUdrQWNnQnoK
QUhRQUlBWHBCZUFGMlFYVUFDQUFLQUF3QURNQUtRQWdCZWdGMFFYWkJlSUYyUVhxQUNBQVpnQnBB
R1lBZEFCb0FBb0FJQUFnQUNBQQpJQUE4QUM4QWJ3QndBSFFBYVFCdkFHNEFQZ0FLQUNBQUlBQWdB
Q0FBUEFCdkFIQUFkQUJwQUc4QWJnQWdBSE1BZEFCNUFHd0FaUUE5CkFDSUFaQUJwQUhJQVpRQmpB
SFFBYVFCdkFHNEFPZ0FnQUhJQWRBQnNBRHNBSUFCMUFHNEFhUUJqQUc4QVpBQmxBQzBBWWdCcEFH
UUEKYVFBNkFDQUFZZ0JwQUdRQWFRQXRBRzhBZGdCbEFISUFjZ0JwQUdRQVpRQTdBQ0lBUGdBS0FD
QUFJQUFnQUNBQUlBQWdBQ0FBSUFCRwpBR2tBY2dCekFIUUFJQVhwQmVBRjJRWFVBQ0FBS0FBd0FE
TUFLUUFnQmVnRjBRWFpCZUlGMlFYcUFDQUFaZ0JwQUdZQWRBQm9BQW9BCklBQWdBQ0FBSUFBOEFD
OEFid0J3QUhRQWFRQnZBRzRBUGdBS0FDQUFJQUFnQUNBQVBBQnZBSEFBZEFCcEFHOEFiZ0ErQUFv
QUlBQWcKQUNBQUlBQWdBQ0FBSUFBZ0JkNEY2UVhVQmRVQUlBWGlCZDBBSUFYZ0JiUUY1d1c4QmRV
RnZBWFRBQW9BSUFBZ0FDQUFJQUE4QUM4QQpid0J3QUhRQWFRQnZBRzRBUGdBS0FDQUFJQUFnQUNB
QVBBQnZBSEFBZEFCcEFHOEFiZ0ErQUFvQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnCkJpY0dSQVpFQmpv
R0tRQWdCaWNHUkFZNUJqRUdLQVpLQmlrQUNnQWdBQ0FBSUFBZ0FEd0FMd0J2QUhBQWRBQnBBRzhB
YmdBK0FBb0EKSUFBZ0FDQUFJQUE4QUc4QWNBQjBBR2tBYndCdUFENEFDZ0FnQUNBQUlBQWdBQ0FB
SUFBZ0FDQUFSUUIwQUNBQWRnQnZBR3dBYVFCaApBQ1lBSXdCNEFEQUFNd0F3QURBQU9nQWdBRUVB
VkFCVEFGVUFTUUFoQUFvQUlBQWdBQ0FBSUFBOEFDOEFid0J3QUhRQWFRQnZBRzRBClBnQUtBQ0FB
SUFBZ0FDQUFQQUJ2QUhBQWRBQnBBRzhBYmdBK0FBb0FJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FFUUFh
UUJ5QUdVQVl3QjAKQUdrQWJ3QnVBR0VBYkFBZ0FDWUFJd0I0QURJQU1BQXlBR1VBT3dCdkFIWUFa
UUJ5QUhJQWFRQmtBR1VBY3dBbUFDTUFlQUF5QURBQQpNZ0JqQURzQUlBQmhBSElBWlFBZ0FHTUFi
d0J1QUdZQWRRQnpBR2tBYmdCbkFDNEFDZ0FnQUNBQUlBQWdBRHdBTHdCdkFIQUFkQUJwCkFHOEFi
Z0ErQUFvQUlBQWdBQ0FBSUFBOEFHOEFjQUIwQUdrQWJ3QnVBRDRBQ2dBZ0FDQUFJQUFnQUNBQUlB
QWdBQ0FBVXdCb0FHVUEKSUFCekFHRUFhUUJrQUNBQUpnQnNBR1FBY1FCMUFHOEFPd0FtQUNNQWVB
QXlBREFBTWdCaUFEc0YyUVhwQUNBQVZBQk9BRlFBSUFYUgpCZDRGMWdYVkJkVUYwd1hVQUNFQUpn
QWpBSGdBTWdBd0FESUFZd0E3QUNZQWNnQmtBSEVBZFFCdkFEc0FJQUJoQUc0QVpBQWdBSElBCllR
QnVBQ0FBYndCbUFHWUFDZ0FnQUNBQUlBQWdBRHdBTHdCdkFIQUFkQUJwQUc4QWJnQStBQW9BUEFB
dkFITUFaUUJzQUdVQVl3QjAKQUQ0QUNnQThBR1FBYVFCMkFDQUFhUUJrQUQwQUlnQnlBR1VBWmdC
c0FHVUFZd0IwQUdrQWJ3QnVBQ0lBUGdBS0FDQUFJQUFnQUNBQQpSZ0JwQUhJQWN3QjBBQ0FGNlFY
Z0Jka0YxQUFnQUNnQU1BQXpBQ2tBSUFYb0JkRUYyUVhpQmRrRjZnQWdBR1lBYVFCbUFIUUFhQUFL
CkFEd0FMd0JrQUdrQWRnQStBQW9BUEFCekFHTUFjZ0JwQUhBQWRBQStBQW9BSUFBZ0FDQUFJQUIy
QUdFQWNnQWdBSElBWlFCbUFHd0EKWlFCakFIUUFhUUJ2QUc0QUlBQTlBQ0FBWkFCdkFHTUFkUUJ0
QUdVQWJnQjBBQzRBWndCbEFIUUFSUUJzQUdVQWJRQmxBRzRBZEFCQwpBSGtBU1FCa0FDZ0FJZ0J5
QUdVQVpnQnNBR1VBWXdCMEFHa0Fid0J1QUNJQUtRQTdBQW9BQ2dBZ0FDQUFJQUFnQUdRQWJ3QmpB
SFVBCmJRQmxBRzRBZEFBdUFHY0FaUUIwQUVVQWJBQmxBRzBBWlFCdUFIUUFRZ0I1QUVrQVpBQW9B
Q0lBYlFCbEFHNEFkUUFpQUNrQUxnQnYKQUc0QVl3Qm9BR0VBYmdCbkFHVUFJQUE5QUNBQVpnQjFB
RzRBWXdCMEFHa0Fid0J1QUNnQVpRQjJBR1VBYmdCMEFDa0FJQUI3QUFvQQpJQUFnQUNBQUlBQWdB
Q0FBSUFBZ0FIWUFZUUJ5QUNBQWJ3QndBSFFBYVFCdkFHNEFJQUE5QUNBQVpRQjJBR1VBYmdCMEFD
NEFkQUJoCkFISUFad0JsQUhRQUxnQnBBSFFBWlFCdEFDZ0FaUUIyQUdVQWJnQjBBQzRBZEFCaEFI
SUFad0JsQUhRQUxnQnpBR1VBYkFCbEFHTUEKZEFCbEFHUUFTUUJ1QUdRQVpRQjRBQ2tBT3dBS0FD
QUFJQUFnQUNBQUlBQWdBQ0FBSUFCeUFHVUFaZ0JzQUdVQVl3QjBBR2tBYndCdQpBQzRBYVFCdUFH
NEFaUUJ5QUVnQVZBQk5BRXdBSUFBOUFDQUFid0J3QUhRQWFRQnZBRzRBTGdCcEFHNEFiZ0JsQUhJ
QVNBQlVBRTBBClRBQTdBQW9BSUFBZ0FDQUFJQUFnQUNBQUlBQWdBRzhBY0FCMEFHa0Fid0J1QUZN
QWRBQjVBR3dBWlFBZ0FEMEFJQUJuQUdVQWRBQkQKQUc4QWJRQndBSFVBZEFCbEFHUUFVd0IwQUhr
QWJBQmxBQ2dBYndCd0FIUUFhUUJ2QUc0QUtRQTdBQW9BSUFBZ0FDQUFJQUFnQUNBQQpJQUFnQUhJ
QVpRQm1BR3dBWlFCakFIUUFhUUJ2QUc0QUxnQnpBSFFBZVFCc0FHVUFMZ0JrQUdrQWNnQmxBR01B
ZEFCcEFHOEFiZ0FnCkFEMEFJQUJ2QUhBQWRBQnBBRzhBYmdCVEFIUUFlUUJzQUdVQUxnQmtBR2tB
Y2dCbEFHTUFkQUJwQUc4QWJnQTdBQW9BSUFBZ0FDQUEKSUFBZ0FDQUFJQUFnQUhJQVpRQm1BR3dB
WlFCakFIUUFhUUJ2QUc0QUxnQnpBSFFBZVFCc0FHVUFMZ0IxQUc0QWFRQmpBRzhBWkFCbApBRUlB
YVFCa0FHa0FJQUE5QUNBQWJ3QndBSFFBYVFCdkFHNEFVd0IwQUhrQWJBQmxBQzRBZFFCdUFHa0FZ
d0J2QUdRQVpRQkNBR2tBClpBQnBBRHNBQ2dBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBY2dCbEFHWUFi
QUJsQUdNQWRBQnBBRzhBYmdBdUFITUFkQUI1QUd3QVpRQXUKQUhRQVpRQjRBSFFBUVFCc0FHa0Fa
d0J1QUNBQVBRQWdBR2NBWlFCMEFFTUFid0J0QUhBQWRRQjBBR1VBWkFCVEFIUUFlUUJzQUdVQQpL
QUJsQUhZQVpRQnVBSFFBTGdCMEFHRUFjZ0JuQUdVQWRBQXBBQzRBWkFCcEFISUFaUUJqQUhRQWFR
QnZBRzRBSUFBOUFEMEFQUUFnCkFDSUFiQUIwQUhJQUlnQWdBRDhBSUFBaUFHd0FaUUJtQUhRQUln
QWdBRG9BSUFBaUFISUFhUUJuQUdnQWRBQWlBRHNBQ2dBZ0FDQUEKSUFBZ0FIMEFDZ0FLQUNBQUlB
QWdBQ0FBWmdCMUFHNEFZd0IwQUdrQWJ3QnVBQ0FBWkFCcEFISUFaUUJqQUhRQWFRQnZBRzRBUXdC
bwpBR0VBYmdCbkFHVUFaQUFvQUdVQWRnQmxBRzRBZEFBcEFBb0FJQUFnQUNBQUlBQjdBQW9BSUFB
Z0FDQUFJQUFnQUNBQUlBQWdBR1FBCmJ3QmpBSFVBYlFCbEFHNEFkQUF1QUdjQVpRQjBBRVVBYkFC
bEFHMEFaUUJ1QUhRQVFnQjVBRWtBWkFBb0FDY0FiUUJsQUc0QWRRQW4KQUNrQUxnQnpBSFFBZVFC
c0FHVUFMZ0JrQUdrQWNnQmxBR01BZEFCcEFHOEFiZ0FnQUQwQUlBQmxBSFlBWlFCdUFIUUFMZ0Iw
QUdFQQpjZ0JuQUdVQWRBQXVBSFlBWVFCc0FIVUFaUUE3QUFvQUlBQWdBQ0FBSUFBZ0FDQUFJQUFn
QUhJQVpRQm1BR3dBWlFCakFIUUFhUUJ2CkFHNEFMZ0J6QUhRQWVRQnNBR1VBTGdCMEFHVUFlQUIw
QUVFQWJBQnBBR2NBYmdBZ0FEMEFJQUJsQUhZQVpRQnVBSFFBTGdCMEFHRUEKY2dCbkFHVUFkQUF1
QUhZQVlRQnNBSFVBWlFBZ0FEMEFQUUE5QUNBQUlnQnNBSFFBY2dBaUFDQUFQd0FnQUNJQWJBQmxB
R1lBZEFBaQpBQ0FBT2dBZ0FDSUFjZ0JwQUdjQWFBQjBBQ0lBT3dBS0FDQUFJQUFnQUNBQWZRQUtB
RHdBTHdCekFHTUFjZ0JwQUhBQWRBQStBQW89Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80480</attachid>
            <date>2011-01-28 12:19:38 -0800</date>
            <delta_ts>2011-01-28 12:57:53 -0800</delta_ts>
            <desc>On Mac OS X, align pop-up menu items according to the &lt;select&gt;’s writing direction and use &lt;option&gt;’s writing direction for each</desc>
            <filename>19785_r3.diff</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80487</attachid>
            <date>2011-01-28 12:57:53 -0800</date>
            <delta_ts>2011-01-28 13:36:17 -0800</delta_ts>
            <desc>On Mac OS X, align pop-up menu items according to the &lt;select&gt;’s writing direction and use &lt;option&gt;’s writing direction for each</desc>
            <filename>19785_r3.diff</filename>
            <type>text/plain</type>
            <size>65204</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDEtMjggIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc2MTUxMj4gPHNlbGVjdD4gY2FuJ3Qg
ZGlzcGxheSByaWdodC10by1sZWZ0IChydGwpIGxhbmd1YWdlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODUKKworICAgICAgICBDaGFuZ2VkIDxz
ZWxlY3Q+IHBvcC11cCBtZW51cyBvbiBNYWMgT1MgWCBTbm93IExlb3BhcmQgYW5kIGxhdGVyIHRv
IGhhdmUgdGhlaXIgaXRlbXMgYWxpZ25lZCBpbiB0aGUKKyAgICAgICAgZGlyZWN0aW9uIGNvcnJl
c3BvbmRpbmcgdG8gdGhlIHdyaXRpbmcgZGlyZWN0aW9uIG9mIHRoZSA8c2VsZWN0PiBlbGVtZW50
LCB3aXRoIHRoZSBjaGVja21hcmtzCisgICAgICAgIG9uIHRoZSAic3RhcnQiIHNpZGUsIGFuZCB1
c2UgdGhlIDxvcHRpb24+J3Mgd3JpdGluZyBkaXJlY3Rpb24gcmF0aGVyIHRoYW4gIm5hdHVyYWwi
LiBNYWRlIHRoZQorICAgICAgICBwb3AtdXAgYnV0dG9uIG1hdGNoIHRoZSBtZW51IGJ5IGFkZGlu
ZyBhIENocm9tZSBib29sZWFuIGZ1bmN0aW9uLCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01l
bnVXcml0aW5nRGlyZWN0aW9uKCksCisgICAgICAgIHdoaWNoIHJldHVybnMgdHJ1ZSBmb3IgdGhp
cyBwb3AtdXAgYmVoYXZpb3IuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVudEZv
bGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbik6IEFkZGVkLgorICAgICAgICAqIG1hbnVhbC10ZXN0
cy9wb3AtdXAtYWxpZ25tZW50LWFuZC1kaXJlY3Rpb24uaHRtbDogQWRkZWQuCisgICAgICAgICog
cGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZWxlY3RJdGVtQWxp
Z25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKTogQWRkZWQuIENhbGxzIHRocm91Z2gg
dG8gdGhlCisgICAgICAgIGNsaWVudC4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vUG9wdXBNZW51U3R5
bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTdHlsZSk6
IEFkZGVkIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSBwYXJhbWV0ZXIgYW5kIG1lbWJlcgorICAg
ICAgICB2YXJpYWJsZSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVu
dVN0eWxlOjpoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpOiBBZGRlZCB0aGlzIGFjY2Vzc29yLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKTogU2V0IHRoZSBwb3AtdXAncyBsYXlvdXQgZGlyZWN0
aW9uIGFuZCBpdGVtcycgdGV4dCBhbGlnbm1lbnQKKyAgICAgICAgdG8gbWF0Y2ggdGhlIG1lbnUn
cyB3cml0aW5nIGRpcmVjdGlvbi4gU2V0IGl0ZW1zJyB3cml0aW5nIGRpcmVjdGlvbiBhbmQgZGly
ZWN0aW9uIG92ZXJyaWRlCisgICAgICAgIGFjY29yZGluZyB0byB0aGVpciBzdHlsZXMuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdCk6IFJlbW92ZWQgdW5uY2VzYWFyeSBpbml0aWFs
aXphdGlvbiBvZiBhIHNtYXJ0IHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51
TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSk6IElmIHRoZSBhbGlnbm1lbnQgb2YgaXRlbXMgaW4gdGhl
IG1lbnUgZm9sbG93cyB0aGUKKyAgICAgICAgbWVudSdzIHdyaXRpbmcgZGlyZWN0aW9uLCB1c2Ug
dGhhdCBhbGlnbm1lbnQgZm9yIHRoZSBidXR0b24gYXMgd2VsbC4gQWxzbyBpbiB0aGlzIG1vZGUs
IHVzZSB0aGUKKyAgICAgICAgaXRlbSdzIHdyaXRpbmcgZGlyZWN0aW9uIGFuZCBvdmVycmlkZSBz
ZXR0aW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNldFRleHRGcm9tT3B0
aW9uKTogU3RvcmUgdGhlIG9wdGlvbiBlbGVtZW50J3Mgc3R5bGUuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNZW51TGlzdDo6aXRlbVN0eWxlKTogUGFzcyB0aGUgdGV4dCBkaXJlY3Rpb24gb3Zl
cnJpZGUgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6bWVudVN0eWxl
KTogRGl0dG8uIEFsc28gdXNlIHRoZSBidXR0b24ncyBkaXJlY3Rpb24sIG5vdCB0aGUgaW5uZXIg
dGV4dCdzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjptZW51U3R5bGUpOiBQYXNzIHRoZSB0
ZXh0IGRpcmVjdGlvbiBvdmVycmlkZSB2YWx1ZS4KKwogMjAxMS0wMS0yOCAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQXVkaW9Qcm9jZXNz
aW5nRXZlbnQuaCBhbmQgSlNKYXZhU2NyaXB0QXVkaW9Ob2RlLmg6IE5vIHN1Y2ggZmlsZSBvciBk
aXJlY3RvcnkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9u
IDc2OTYwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzcsNiArMTM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
Ym9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRp
bmdEaXJlY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQ
b3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCB7IHJldHVy
biBhZG9wdFJlZihuZXcgRW1wdHlQb3B1cE1lbnUoKSk7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KikgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51KCkpOyB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDgsNiArNTA4LDEx
IEBAIGJvb2wgQ2hyb21lOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbkkKICAgICByZXR1cm4g
bV9jbGllbnQtPnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiB9CiAKK2Jv
b2wgQ2hyb21lOjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KCkKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVu
dVdyaXRpbmdEaXJlY3Rpb24oKTsKK30KKwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZTo6
Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJl
dHVybiBtX2NsaWVudC0+Y3JlYXRlUG9wdXBNZW51KGNsaWVudCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgJKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAko
d29ya2luZyBjb3B5KQpAQCAtMTYzLDYgKzE2Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNl
bmRpZgogCiAgICAgICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KTsKKyAgICAgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGly
ZWN0aW9uKCk7CiAgICAgICAgIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgICAgIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBN
ZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gNzY5NjApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTIsNiAr
MjkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgPSAwOworICAgICAgICB2
aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlv
bigpID0gMDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0ID0gMDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBN
ZW51U3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1l
bnVTdHlsZS5oCShyZXZpc2lvbiA3Njk2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bv
cHVwTWVudVN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFBvcHVwTWVudVN0eWxlIHsKIHB1YmxpYzoKLSAgICBQb3B1cE1l
bnVTdHlsZShjb25zdCBDb2xvciYgZm9yZWdyb3VuZCwgY29uc3QgQ29sb3ImIGJhY2tncm91bmQs
IGNvbnN0IEZvbnQmIGZvbnQsIGJvb2wgdmlzaWJsZSwgYm9vbCBpc0Rpc3BsYXlOb25lLCBMZW5n
dGggdGV4dEluZGVudCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uKQorICAgIFBvcHVwTWVu
dVN0eWxlKGNvbnN0IENvbG9yJiBmb3JlZ3JvdW5kLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZCwg
Y29uc3QgRm9udCYgZm9udCwgYm9vbCB2aXNpYmxlLCBib29sIGlzRGlzcGxheU5vbmUsIExlbmd0
aCB0ZXh0SW5kZW50LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGJvb2wgaGFzVGV4dERp
cmVjdGlvbk92ZXJyaWRlKQogICAgICAgICA6IG1fZm9yZWdyb3VuZENvbG9yKGZvcmVncm91bmQp
CiAgICAgICAgICwgbV9iYWNrZ3JvdW5kQ29sb3IoYmFja2dyb3VuZCkKICAgICAgICAgLCBtX2Zv
bnQoZm9udCkKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgICAgICAsIG1faXNEaXNwbGF5
Tm9uZShpc0Rpc3BsYXlOb25lKQogICAgICAgICAsIG1fdGV4dEluZGVudCh0ZXh0SW5kZW50KQog
ICAgICAgICAsIG1fdGV4dERpcmVjdGlvbih0ZXh0RGlyZWN0aW9uKQorICAgICAgICAsIG1faGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlKGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSkKICAgICB7CiAg
ICAgfQogICAgIApAQCAtNTMsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Rpc3BsYXlO
b25lKCkgY29uc3QgeyByZXR1cm4gbV9pc0Rpc3BsYXlOb25lOyB9CiAgICAgTGVuZ3RoIHRleHRJ
bmRlbnQoKSBjb25zdCB7IHJldHVybiBtX3RleHRJbmRlbnQ7IH0KICAgICBUZXh0RGlyZWN0aW9u
IHRleHREaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RleHREaXJlY3Rpb247IH0KKyAgICBi
b29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVGV4dERp
cmVjdGlvbk92ZXJyaWRlOyB9CiAKIHByaXZhdGU6CiAgICAgQ29sb3IgbV9mb3JlZ3JvdW5kQ29s
b3I7CkBAIC02Miw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRGlzcGxheU5vbmU7
CiAgICAgTGVuZ3RoIG1fdGV4dEluZGVudDsKICAgICBUZXh0RGlyZWN0aW9uIG1fdGV4dERpcmVj
dGlvbjsKKyAgICBib29sIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BvcHVw
TWVudU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUG9w
dXBNZW51TWFjLm1tCShyZXZpc2lvbiA3Njk2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9Qb3B1cE1lbnVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTc1LDYgKzc1
LDExIEBAIHZvaWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgpCiAgICAgaWYgKCFjbGllbnQoKS0+
c2hvdWxkUG9wT3ZlcigpKQogICAgICAgICBbbV9wb3B1cC5nZXQoKSBhZGRJdGVtV2l0aFRpdGxl
OkAiIl07CiAKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkKKyAgICBUZXh0RGlyZWN0aW9uIG1lbnVUZXh0RGlyZWN0aW9uID0g
Y2xpZW50KCktPm1lbnVTdHlsZSgpLnRleHREaXJlY3Rpb24oKTsKKyAgICBbbV9wb3B1cC5nZXQo
KSBzZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOm1lbnVUZXh0RGlyZWN0aW9uID09IExU
UiA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnRdOworI2VuZGlmIC8vICFkZWZpbmVkKEJV
SUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorCiAgICAg
QVNTRVJUKGNsaWVudCgpKTsKICAgICBpbnQgc2l6ZSA9IGNsaWVudCgpLT5saXN0U2l6ZSgpOwog
CkBAIC05MiwxMyArOTcsMjcgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0OmZvbnQg
Zm9yS2V5Ok5TRm9udEF0dHJpYnV0ZU5hbWVdOwogICAgICAgICAgICAgfQorCisjaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisg
ICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+IHBhcmFncmFwaFN0
eWxlKEFkb3B0TlMsIFtbTlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11
dGFibGVDb3B5XSk7CisgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUuZ2V0KCkgc2V0QWxpZ25t
ZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1Jp
Z2h0VGV4dEFsaWdubWVudF07CisgICAgICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGlu
Z0RpcmVjdGlvbiA9IHN0eWxlLnRleHREaXJlY3Rpb24oKSA9PSBMVFIgPyBOU1dyaXRpbmdEaXJl
Y3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OworICAgICAg
ICAgICAgW3BhcmFncmFwaFN0eWxlLmdldCgpIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndyaXRp
bmdEaXJlY3Rpb25dOworICAgICAgICAgICAgaWYgKHN0eWxlLmhhc1RleHREaXJlY3Rpb25PdmVy
cmlkZSgpKSB7CisgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGly
ZWN0aW9uVmFsdWUoQWRvcHROUywgW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndy
aXRpbmdEaXJlY3Rpb24gKyBOU1RleHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKKyAgICAg
ICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJheT4gd3JpdGluZ0RpcmVjdGlvbkFycmF5KEFkb3B0
TlMsIFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1
ZS5nZXQoKSwgbmlsXSk7CisgICAgICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0Ondy
aXRpbmdEaXJlY3Rpb25BcnJheS5nZXQoKSBmb3JLZXk6TlNXcml0aW5nRGlyZWN0aW9uQXR0cmli
dXRlTmFtZV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmpl
Y3Q6cGFyYWdyYXBoU3R5bGUuZ2V0KCkgZm9yS2V5Ok5TUGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVO
YW1lXTsKKyNlbmRpZiAvLyAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkKKwogICAgICAgICAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0
IGZvciBzdHlsaW5nIHRoZSBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9ycy4KICAgICAg
ICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGN1c3RvbWl6ZSB0ZXh0IGNvbG9yIHdoZW4g
YW4gaXRlbSBpcyBoaWdobGlnaHRlZC4KLSAgICAgICAgICAgIE5TQXR0cmlidXRlZFN0cmluZyog
c3RyaW5nID0gW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRoU3RyaW5nOmNsaWVu
dCgpLT5pdGVtVGV4dChpKSBhdHRyaWJ1dGVzOmF0dHJpYnV0ZXNdOworICAgICAgICAgICAgTlNB
dHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcgPSBbW05TQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5p
dFdpdGhTdHJpbmc6Y2xpZW50KCktPml0ZW1UZXh0KGkpIGF0dHJpYnV0ZXM6YXR0cmlidXRlc107
CiAgICAgICAgICAgICBbYXR0cmlidXRlcyByZWxlYXNlXTsKIAogICAgICAgICAgICAgW21fcG9w
dXAuZ2V0KCkgYWRkSXRlbVdpdGhUaXRsZTpAIiJdOwotICAgICAgICAgICAgTlNNZW51SXRlbSog
bWVudUl0ZW0gPSBbbV9wb3B1cC5nZXQoKSBsYXN0SXRlbV07CisgICAgICAgICAgICBOU01lbnVJ
dGVtICptZW51SXRlbSA9IFttX3BvcHVwLmdldCgpIGxhc3RJdGVtXTsKICAgICAgICAgICAgIFtt
ZW51SXRlbSBzZXRBdHRyaWJ1dGVkVGl0bGU6c3RyaW5nXTsKICAgICAgICAgICAgIFttZW51SXRl
bSBzZXRFbmFibGVkOmNsaWVudCgpLT5pdGVtSXNFbmFibGVkKGkpXTsKICAgICAgICAgICAgIFtt
ZW51SXRlbSBzZXRUb29sVGlwOmNsaWVudCgpLT5pdGVtVG9vbFRpcChpKV07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAJKHJldmlzaW9uIDc2OTYw
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBzZWxl
Y3QgZWxlbWVudCByZW5kZXJlciBpbiBXZWJDb3JlLgogICoKICAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAy
MDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAg
ICAgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3
dy50b3JjaG1vYmlsZS5jb20vKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTU1LDcgKzU1LDYgQEAgUmVuZGVy
TWVudUxpc3Q6OlJlbmRlck1lbnVMaXN0KEVsZW1lbnQqIAogICAgICwgbV9vcHRpb25zQ2hhbmdl
ZCh0cnVlKQogICAgICwgbV9vcHRpb25zV2lkdGgoMCkKICAgICAsIG1fbGFzdFNlbGVjdGVkSW5k
ZXgoLTEpCi0gICAgLCBtX3BvcHVwKDApCiAgICAgLCBtX3BvcHVwSXNWaXNpYmxlKGZhbHNlKQog
ewogfQpAQCAtODQsMTkgKzgzLDI0IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OmNyZWF0ZUlubmVy
QmxvY2soKQogCiB2b2lkIFJlbmRlck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKCkKIHsKLSAg
ICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldEJveEZsZXgoMS4wZik7CisgICAgUmVuZGVyU3R5
bGUqIGlubmVyU3R5bGUgPSBtX2lubmVyQmxvY2stPnN0eWxlKCk7CisgICAgaW5uZXJTdHlsZS0+
c2V0Qm94RmxleCgxKTsKICAgICAKLSAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldFBhZGRp
bmdMZWZ0KExlbmd0aCh0aGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGluZ0xlZnQoc3R5bGUoKSks
IEZpeGVkKSk7Ci0gICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nUmlnaHQoTGVu
Z3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSksIEZpeGVkKSk7
Ci0gICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRQYWRkaW5nVG9wKExlbmd0aCh0aGVtZSgp
LT5wb3B1cEludGVybmFsUGFkZGluZ1RvcChzdHlsZSgpKSwgRml4ZWQpKTsKLSAgICBtX2lubmVy
QmxvY2stPnN0eWxlKCktPnNldFBhZGRpbmdCb3R0b20oTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50
ZXJuYWxQYWRkaW5nQm90dG9tKHN0eWxlKCkpLCBGaXhlZCkpOworICAgIGlubmVyU3R5bGUtPnNl
dFBhZGRpbmdMZWZ0KExlbmd0aCh0aGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGluZ0xlZnQoc3R5
bGUoKSksIEZpeGVkKSk7CisgICAgaW5uZXJTdHlsZS0+c2V0UGFkZGluZ1JpZ2h0KExlbmd0aCh0
aGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KHN0eWxlKCkpLCBGaXhlZCkpOworICAg
IGlubmVyU3R5bGUtPnNldFBhZGRpbmdUb3AoTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQ
YWRkaW5nVG9wKHN0eWxlKCkpLCBGaXhlZCkpOworICAgIGlubmVyU3R5bGUtPnNldFBhZGRpbmdC
b3R0b20oTGVuZ3RoKHRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nQm90dG9tKHN0eWxlKCkp
LCBGaXhlZCkpOwogCiAgICAgaWYgKGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPnNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsKICAgICAgICAgLy8gSXRlbXMgaW4g
dGhlIHBvcHVwIHdpbGwgbm90IHJlc3BlY3QgdGhlIENTUyB0ZXh0LWFsaWduIGFuZCBkaXJlY3Rp
b24gcHJvcGVydGllcywKICAgICAgICAgLy8gc28gd2UgbXVzdCBhZGp1c3Qgb3VyIG93biBzdHls
ZSB0byBtYXRjaC4KLSAgICAgICAgbV9pbm5lckJsb2NrLT5zdHlsZSgpLT5zZXRUZXh0QWxpZ24o
TEVGVCk7CisgICAgICAgIGlubmVyU3R5bGUtPnNldFRleHRBbGlnbihMRUZUKTsKICAgICAgICAg
VGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSAobV9idXR0b25UZXh0ICYmIG1fYnV0dG9uVGV4dC0+
dGV4dCgpLT5kZWZhdWx0V3JpdGluZ0RpcmVjdGlvbigpID09IFdURjo6VW5pY29kZTo6UmlnaHRU
b0xlZnQpID8gUlRMIDogTFRSOwotICAgICAgICBtX2lubmVyQmxvY2stPnN0eWxlKCktPnNldERp
cmVjdGlvbihkaXJlY3Rpb24pOworICAgICAgICBpbm5lclN0eWxlLT5zZXREaXJlY3Rpb24oZGly
ZWN0aW9uKTsKKyAgICB9IGVsc2UgaWYgKG1fb3B0aW9uU3R5bGUgJiYgZG9jdW1lbnQoKS0+cGFn
ZSgpLT5jaHJvbWUoKS0+c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVj
dGlvbigpKSB7CisgICAgICAgIGlubmVyU3R5bGUtPnNldFRleHRBbGlnbihzdHlsZSgpLT5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBMRUZUIDogUklHSFQpOworICAgICAgICBpbm5lclN0eWxl
LT5zZXREaXJlY3Rpb24obV9vcHRpb25TdHlsZS0+ZGlyZWN0aW9uKCkpOworICAgICAgICBpbm5l
clN0eWxlLT5zZXRVbmljb2RlQmlkaShtX29wdGlvblN0eWxlLT51bmljb2RlQmlkaSgpKTsKICAg
ICB9CiB9CiAKQEAgLTE4NCw4ICsxODgsMTEgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2V0VGV4
dEZyb21PcHRpb24oaQogICAgIGludCBpID0gc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChvcHRp
b25JbmRleCk7CiAgICAgU3RyaW5nIHRleHQgPSAiIjsKICAgICBpZiAoaSA+PSAwICYmIGkgPCBz
aXplKSB7Ci0gICAgICAgIGlmIChPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9PcHRp
b25FbGVtZW50KGxpc3RJdGVtc1tpXSkpCisgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBsaXN0
SXRlbXNbaV07CisgICAgICAgIGlmIChPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9P
cHRpb25FbGVtZW50KGVsZW1lbnQpKSB7CiAgICAgICAgICAgICB0ZXh0ID0gb3B0aW9uRWxlbWVu
dC0+dGV4dEluZGVudGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpOworICAgICAgICAgICAgbV9vcHRp
b25TdHlsZSA9IGVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBzZXRUZXh0KHRleHQuc3RyaXBXaGl0ZVNwYWNlKCkpOwpAQCAtNDE4LDcgKzQyNSw3IEBAIFBv
cHVwTWVudVN0eWxlIFJlbmRlck1lbnVMaXN0OjppdGVtU3R5bGUKICAgICBFbGVtZW50KiBlbGVt
ZW50ID0gbGlzdEl0ZW1zW2xpc3RJbmRleF07CiAgICAgCiAgICAgUmVuZGVyU3R5bGUqIHN0eWxl
ID0gZWxlbWVudC0+cmVuZGVyU3R5bGUoKSA/IGVsZW1lbnQtPnJlbmRlclN0eWxlKCkgOiBlbGVt
ZW50LT5jb21wdXRlZFN0eWxlKCk7Ci0gICAgcmV0dXJuIHN0eWxlID8gUG9wdXBNZW51U3R5bGUo
c3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9yKSwgaXRlbUJhY2tn
cm91bmRDb2xvcihsaXN0SW5kZXgpLCBzdHlsZS0+Zm9udCgpLCBzdHlsZS0+dmlzaWJpbGl0eSgp
ID09IFZJU0lCTEUsIHN0eWxlLT5kaXNwbGF5KCkgPT0gTk9ORSwgc3R5bGUtPnRleHRJbmRlbnQo
KSwgc3R5bGUtPmRpcmVjdGlvbigpKSA6IG1lbnVTdHlsZSgpOworICAgIHJldHVybiBzdHlsZSA/
IFBvcHVwTWVudVN0eWxlKHN0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlD
b2xvciksIGl0ZW1CYWNrZ3JvdW5kQ29sb3IobGlzdEluZGV4KSwgc3R5bGUtPmZvbnQoKSwgc3R5
bGUtPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFLCBzdHlsZS0+ZGlzcGxheSgpID09IE5PTkUsIHN0
eWxlLT50ZXh0SW5kZW50KCksIHN0eWxlLT5kaXJlY3Rpb24oKSwgc3R5bGUtPnVuaWNvZGVCaWRp
KCkgPT0gT3ZlcnJpZGUpIDogbWVudVN0eWxlKCk7CiB9CiAKIENvbG9yIFJlbmRlck1lbnVMaXN0
OjppdGVtQmFja2dyb3VuZENvbG9yKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKQEAgLTQ0OCw3
ICs0NTUsNyBAQCBDb2xvciBSZW5kZXJNZW51TGlzdDo6aXRlbUJhY2tncm91bmRDb2xvCiBQb3B1
cE1lbnVTdHlsZSBSZW5kZXJNZW51TGlzdDo6bWVudVN0eWxlKCkgY29uc3QKIHsKICAgICBSZW5k
ZXJTdHlsZSogcyA9IG1faW5uZXJCbG9jayA/IG1faW5uZXJCbG9jay0+c3R5bGUoKSA6IHN0eWxl
KCk7Ci0gICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlKHMtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihD
U1NQcm9wZXJ0eUNvbG9yKSwgcy0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFj
a2dyb3VuZENvbG9yKSwgcy0+Zm9udCgpLCBzLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSwgcy0+
ZGlzcGxheSgpID09IE5PTkUsIHMtPnRleHRJbmRlbnQoKSwgcy0+ZGlyZWN0aW9uKCkpOworICAg
IHJldHVybiBQb3B1cE1lbnVTdHlsZShzLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVy
dHlDb2xvciksIHMtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRD
b2xvciksIHMtPmZvbnQoKSwgcy0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUsIHMtPmRpc3BsYXko
KSA9PSBOT05FLCBzLT50ZXh0SW5kZW50KCksIHN0eWxlKCktPmRpcmVjdGlvbigpLCBzdHlsZSgp
LT51bmljb2RlQmlkaSgpID09IE92ZXJyaWRlKTsKIH0KIAogSG9zdFdpbmRvdyogUmVuZGVyTWVu
dUxpc3Q6Omhvc3RXaW5kb3coKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmgJKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiAg
KiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgc2VsZWN0IGVsZW1lbnQgcmVuZGVyZXIgaW4gV2Vi
Q29yZS4KICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4
LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEzMiw2ICsxMzIsOCBAQCBw
cml2YXRlOgogCiAgICAgaW50IG1fbGFzdFNlbGVjdGVkSW5kZXg7CiAKKyAgICBSZWZQdHI8UmVu
ZGVyU3R5bGU+IG1fb3B0aW9uU3R5bGU7CisKICAgICBSZWZQdHI8UG9wdXBNZW51PiBtX3BvcHVw
OwogICAgIGJvb2wgbV9wb3B1cElzVmlzaWJsZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAko
cmV2aXNpb24gNzY5NjApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTI0LDcgKzkyNCw3IEBAIFBv
cHVwTWVudVN0eWxlIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGkKIAogUG9wdXBNZW51U3R5bGUg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjptZW51U3R5bGUoKSBjb25zdAogewotICAgIHJl
dHVybiBQb3B1cE1lbnVTdHlsZShzdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJv
cGVydHlDb2xvciksIHN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJh
Y2tncm91bmRDb2xvciksIHN0eWxlKCktPmZvbnQoKSwgc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09
IFZJU0lCTEUsIHN0eWxlKCktPmRpc3BsYXkoKSA9PSBOT05FLCBzdHlsZSgpLT50ZXh0SW5kZW50
KCksIHN0eWxlKCktPmRpcmVjdGlvbigpKTsKKyAgICByZXR1cm4gUG9wdXBNZW51U3R5bGUoc3R5
bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5Q29sb3IpLCBzdHlsZSgpLT52
aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBzdHlsZSgp
LT5mb250KCksIHN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFLCBzdHlsZSgpLT5kaXNw
bGF5KCkgPT0gTk9ORSwgc3R5bGUoKS0+dGV4dEluZGVudCgpLCBzdHlsZSgpLT5kaXJlY3Rpb24o
KSwgc3R5bGUoKS0+dW5pY29kZUJpZGkoKSA9PSBPdmVycmlkZSk7CiB9CiAKIGludCBSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNsaWVudEluc2V0TGVmdCgpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCShyZXZpc2lvbiA3Njk2MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDExLTAxLTI4ICBEYW4gQmVybnN0ZWluICA8bWl0
ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgPHNlbGVjdD4gY2FuJ3QgZGlzcGxheSByaWdodC10by1sZWZ0IChydGwpIGxhbmd1YWdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODUK
KworICAgICAgICAqIFNoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRlbSk6IEFkZGVkIGluaXRpYWxpemVycyBmb3IgbV90ZXh0
RGlyZWN0aW9uIGFuZCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZS4KKyAgICAgICAgKFdlYktp
dDo6V2ViUG9wdXBJdGVtOjplbmNvZGUpOiBFbmNvZGUgdGhlIGl0ZW0ncyB3cml0aW5nIGRpcmVj
dGlvbiBhbmQgZGlyZWN0aW9uIG92ZXJyaWRlIHZhbHVlcy4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBJdGVtOjpkZWNvZGUpOiBEZWNvZGUgdGhlIGl0ZW0ncyB3cml0aW5nIGRpcmVjdGlvbiBh
bmQgZGlyZWN0aW9uIG92ZXJyaWRlIHZhbHVlcy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUG9wdXBJ
dGVtLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd1BvcHVwTWVudSk6IEFkZGVkIGEgcGFyYW1ldGVyIGZv
ciB0aGUgbWVudSdzIHRleHQgZGlyZWN0aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUG9wdXBNZW51UHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9w
dXBNZW51UHJveHlNYWM6OnBvcHVsYXRlKTogQWRkZWQgYSBwYXJhbWV0ZXIgZm9yIHRoZSBtZW51
J3MgdGV4dCBkaXJlY3Rpb24uCisgICAgICAgIFNldCBpdGVtcycgdGV4dCBhbGlnbm1lbnQgdG8g
bWF0Y2ggdGhlIG1lbnUncyB3cml0aW5nIGRpcmVjdGlvbi4gU2V0IGl0ZW1zJyB3cml0aW5nIGRp
cmVjdGlvbgorICAgICAgICBhbmQgZGlyZWN0aW9uIG92ZXJyaWRlIGFjY29yZGluZyB0byB0aGVp
ciBzdHlsZXMuCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9w
dXBNZW51KTogU2V0IHRoZSBwb3AtdXAncyBsYXlvdXQgZGlyZWN0aW9uLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCk6IENoYW5nZWQgdG8gcmV0dXJuIGZhbHNlLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24pOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51Ojpwb3B1bGF0ZUl0ZW1zKTogSW5pdGlh
bGl6ZSBpdGVtcycgd3JpdGluZyBkaXJlY3Rpb24gYW5kIGRpcmVjdGlvbiBvdmVycmlkZQorICAg
ICAgICB2YWx1ZXMuCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudTo6c2hvdyk6IFBhc3Mg
dGhlIG1lbnUncyB3cml0aW5nIGRpcmVjdGlvbi4KKwogMjAxMS0wMS0yOCAgQWxlamFuZHJvIEcu
IENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9w
ZXouCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAkocmV2aXNpb24g
NzY5NjApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzAsMjQgKzMwLDMyIEBACiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJBcmd1bWVudHMuaCIKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBXZWJQb3B1cEl0ZW06OldlYlBvcHVwSXRlbSgpCiAgICAgOiBtX3R5
cGUoSXRlbSkKKyAgICAsIG1fdGV4dERpcmVjdGlvbihMVFIpCisgICAgLCBtX2hhc1RleHREaXJl
Y3Rpb25PdmVycmlkZShmYWxzZSkKICAgICAsIG1faXNFbmFibGVkKHRydWUpCiB7CiB9CiAKIFdl
YlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKFR5cGUgdHlwZSkKICAgICA6IG1fdHlwZSh0eXBlKQor
ICAgICwgbV90ZXh0RGlyZWN0aW9uKExUUikKKyAgICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJy
aWRlKGZhbHNlKQogICAgICwgbV9pc0VuYWJsZWQodHJ1ZSkKICAgICAsIG1faXNMYWJlbChmYWxz
ZSkKIHsKIH0KIAotV2ViUG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0oVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nlc3Np
YmlsaXR5VGV4dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgaXNMYWJlbCkKK1dlYlBvcHVwSXRlbTo6
V2ViUG9wdXBJdGVtKFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0RGlyZWN0aW9u
IHRleHREaXJlY3Rpb24sIGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBjb25zdCBTdHJp
bmcmIHRvb2xUaXAsIGNvbnN0IFN0cmluZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFi
bGVkLCBib29sIGlzTGFiZWwpCiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1fdGV4dCh0ZXh0
KQorICAgICwgbV90ZXh0RGlyZWN0aW9uKHRleHREaXJlY3Rpb24pCisgICAgLCBtX2hhc1RleHRE
aXJlY3Rpb25PdmVycmlkZShoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpCiAgICAgLCBtX3Rvb2xU
aXAodG9vbFRpcCkKICAgICAsIG1fYWNjZXNzaWJpbGl0eVRleHQoYWNjZXNzaWJpbGl0eVRleHQp
CiAgICAgLCBtX2lzRW5hYmxlZChpc0VuYWJsZWQpCkBAIC01NywyMSArNjUsMjMgQEAgV2ViUG9w
dXBJdGVtOjpXZWJQb3B1cEl0ZW0oVHlwZSB0eXBlLCBjbwogCiB2b2lkIFdlYlBvcHVwSXRlbTo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKLSAgICBl
bmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdHlwZSks
IG1fdGV4dCwgbV90b29sVGlwLCBtX2FjY2Vzc2liaWxpdHlUZXh0LCBtX2lzRW5hYmxlZCwgbV9p
c0xhYmVsKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKHN0YXRpY19jYXN0PHVp
bnQzMl90PihtX3R5cGUpLCBtX3RleHQsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX3RleHREaXJl
Y3Rpb24pLCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgbV90b29sVGlwLCBtX2FjY2Vzc2li
aWxpdHlUZXh0LCBtX2lzRW5hYmxlZCwgbV9pc0xhYmVsKSk7CiB9CiAKIGJvb2wgV2ViUG9wdXBJ
dGVtOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJQb3B1cEl0
ZW0mIGl0ZW0pCiB7CiAgICAgdWludDMyX3QgdHlwZTsKICAgICBTdHJpbmcgdGV4dDsKKyAgICB1
aW50NjRfdCB0ZXh0RGlyZWN0aW9uOworICAgIGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRl
OwogICAgIFN0cmluZyB0b29sVGlwOwogICAgIFN0cmluZyBhY2Nlc3NpYmlsaXR5VGV4dDsKICAg
ICBib29sIGlzRW5hYmxlZDsKICAgICBib29sIGlzTGFiZWw7Ci0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoQ29yZUlQQzo6T3V0KHR5cGUsIHRleHQsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlUZXh0
LCBpc0VuYWJsZWQsIGlzTGFiZWwpKSkKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShDb3JlSVBD
OjpPdXQodHlwZSwgdGV4dCwgdGV4dERpcmVjdGlvbiwgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRl
LCB0b29sVGlwLCBhY2Nlc3NpYmlsaXR5VGV4dCwgaXNFbmFibGVkLCBpc0xhYmVsKSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGl0ZW0gPSBXZWJQb3B1cEl0ZW0oc3RhdGljX2Nhc3Q8
VHlwZT4odHlwZSksIHRleHQsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlUZXh0LCBpc0VuYWJsZWQs
IGlzTGFiZWwpOworICAgIGl0ZW0gPSBXZWJQb3B1cEl0ZW0oc3RhdGljX2Nhc3Q8VHlwZT4odHlw
ZSksIHRleHQsIHN0YXRpY19jYXN0PFRleHREaXJlY3Rpb24+KHRleHREaXJlY3Rpb24pLCBoYXNU
ZXh0RGlyZWN0aW9uT3ZlcnJpZGUsIHRvb2xUaXAsIGFjY2Vzc2liaWxpdHlUZXh0LCBpc0VuYWJs
ZWQsIGlzTGFiZWwpOwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlBvcHVwSXRlbS5oCShyZXZpc2lvbiA3Njk2MCkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQb3B1cEl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lm
bmRlZiBXZWJQb3B1cEl0ZW1faAogI2RlZmluZSBXZWJQb3B1cEl0ZW1faAogCisjaW5jbHVkZSA8
V2ViQ29yZS9UZXh0RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKQEAgLTQzLDEzICs0NCwxNSBAQCBzdHJ1Y3QgV2ViUG9w
dXBJdGVtIHsKIAogICAgIFdlYlBvcHVwSXRlbSgpOwogICAgIFdlYlBvcHVwSXRlbShUeXBlKTsK
LSAgICBXZWJQb3B1cEl0ZW0oVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IHRvb2xUaXAsIGNvbnN0IFN0cmluZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJvb2wgaXNFbmFibGVk
LCBib29sIG1faXNMYWJlbCk7CisgICAgV2ViUG9wdXBJdGVtKFR5cGUsIGNvbnN0IFN0cmluZyYg
dGV4dCwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgYm9vbCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJp
ZGUsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgY29uc3QgU3RyaW5nJiBhY2Nlc3NpYmlsaXR5VGV4
dCwgYm9vbCBpc0VuYWJsZWQsIGJvb2wgbV9pc0xhYmVsKTsKIAogICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJQb3B1cEl0ZW0mKTsKIAogICAgIFR5cGUgbV90
eXBlOwogICAgIFN0cmluZyBtX3RleHQ7CisgICAgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiBtX3Rl
eHREaXJlY3Rpb247CisgICAgYm9vbCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZTsKICAgICBT
dHJpbmcgbV90b29sVGlwOwogICAgIFN0cmluZyBtX2FjY2Vzc2liaWxpdHlUZXh0OwogICAgIGJv
b2wgbV9pc0VuYWJsZWQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAkocmV2aXNpb24gNzY5NjApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg2MCw3ICsxODYwLDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNldFRleHRGcm9tSXRlbUZvclBvcAogICAgIHByb2Nlc3MoKS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6U2V0VGV4dEZvckFjdGl2ZVBvcHVwTWVudShpbmRleCksIG1fcGFn
ZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVj
dCYgcmVjdCwgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbnQzMl90IHNlbGVj
dGVkSW5kZXgsIGNvbnN0IFBsYXRmb3JtUG9wdXBNZW51RGF0YSYgZGF0YSkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIHVpbnQ2NF90IHRleHRE
aXJlY3Rpb24sIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW50MzJfdCBzZWxl
Y3RlZEluZGV4LCBjb25zdCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmIGRhdGEpCiB7CiAgICAgaWYg
KG1fYWN0aXZlUG9wdXBNZW51KQogICAgICAgICBtX2FjdGl2ZVBvcHVwTWVudS0+aGlkZVBvcHVw
TWVudSgpOwpAQCAtMTg3Miw3ICsxODcyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dQb3B1
cE1lbnUoY29uc3QgSQogICAgIHByb2Nlc3MoKS0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdG9w
KCk7CiAjZW5kaWYKIAotICAgIG1fYWN0aXZlUG9wdXBNZW51LT5zaG93UG9wdXBNZW51KHJlY3Qs
IGl0ZW1zLCBkYXRhLCBzZWxlY3RlZEluZGV4KTsKKyAgICBtX2FjdGl2ZVBvcHVwTWVudS0+c2hv
d1BvcHVwTWVudShyZWN0LCBzdGF0aWNfY2FzdDxUZXh0RGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9u
KSwgaXRlbXMsIGRhdGEsIHNlbGVjdGVkSW5kZXgpOwogICAgIG1fYWN0aXZlUG9wdXBNZW51ID0g
MDsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2
aXNpb24gNzY5NjApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5Myw3ICs0OTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
RmFpbFRvRmluZFN0cmluZyhjb25zdCBTdHJpbmcmKTsKIAogICAgIC8vIFBvcHVwIE1lbnUuCi0g
ICAgdm9pZCBzaG93UG9wdXBNZW51KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIGNvbnN0
IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4LCBjb25z
dCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmKTsKKyAgICB2b2lkIHNob3dQb3B1cE1lbnUoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgdWludDY0X3QgdGV4dERpcmVjdGlvbiwgY29uc3QgVmVj
dG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIGNvbnN0IFBs
YXRmb3JtUG9wdXBNZW51RGF0YSYpOwogICAgIHZvaWQgaGlkZVBvcHVwTWVudSgpOwogCiAgICAg
Ly8gQ29udGV4dCBNZW51LgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA3Njk2MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTE1Myw3ICsxNTMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZEZhaWxU
b0ZpbmRTdHJpbmcoV1RGOjpTdHJpbmcgc3RyaW5nKQogCiAgICAgIyBQb3B1cE1lbnUgbWVzc2Fn
ZXMKLSAgICBTaG93UG9wdXBNZW51KFdlYkNvcmU6OkludFJlY3QgcmVjdCwgVmVjdG9yPFdlYktp
dDo6V2ViUG9wdXBJdGVtPiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4LCBXZWJLaXQ6OlBs
YXRmb3JtUG9wdXBNZW51RGF0YSBkYXRhKQorICAgIFNob3dQb3B1cE1lbnUoV2ViQ29yZTo6SW50
UmVjdCByZWN0LCB1aW50NjRfdCB0ZXh0RGlyZWN0aW9uLCBWZWN0b3I8V2ViS2l0OjpXZWJQb3B1
cEl0ZW0+IGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIFdlYktpdDo6UGxhdGZvcm1Qb3B1
cE1lbnVEYXRhIGRhdGEpCiAgICAgSGlkZVBvcHVwTWVudSgpCiAgICAgCiAgICAgIyBDb250ZXh0
TWVudSBtZXNzYWdlcwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVu
dVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVw
TWVudVByb3h5LmgJKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBvcHVwTWVudVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5k
ZWYgV2ViUG9wdXBNZW51UHJveHlfaAogI2RlZmluZSBXZWJQb3B1cE1lbnVQcm94eV9oCiAKKyNp
bmNsdWRlIDxXZWJDb3JlL1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwg
dm9pZCBzaG93UG9wdXBNZW51KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIGNvbnN0IFZl
Y3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwg
aW50MzJfdCBzZWxlY3RlZEluZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNob3dQb3B1cE1l
bnUoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwg
Y29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBjb25zdCBQbGF0Zm9ybVBvcHVwTWVu
dURhdGEmLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaGlk
ZVBvcHVwTWVudSgpID0gMDsKIAogcHJvdGVjdGVkOgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMuaAkocmV2aXNpb24gNzY5
NjApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFj
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAgICAgfQogICAg
IH5XZWJQb3B1cE1lbnVQcm94eU1hYygpOwogCi0gICAgdmlydHVhbCB2b2lkIHNob3dQb3B1cE1l
bnUoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+Jiwg
Y29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2hvd1BvcHVwTWVudShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV2Vi
Q29yZTo6VGV4dERpcmVjdGlvbiwgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mLCBjb25zdCBQ
bGF0Zm9ybVBvcHVwTWVudURhdGEmLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpOwogICAgIHZpcnR1
YWwgdm9pZCBoaWRlUG9wdXBNZW51KCk7CiAKIHByaXZhdGU6CiAgICAgV2ViUG9wdXBNZW51UHJv
eHlNYWMoV0tWaWV3KiwgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCogY2xpZW50KTsKIAotICAg
IHZvaWQgcG9wdWxhdGUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mKTsKKyAgICB2b2lkIHBv
cHVsYXRlKGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiwgV2ViQ29yZTo6VGV4dERpcmVjdGlv
bik7CiAKICAgICBSZXRhaW5QdHI8TlNQb3BVcEJ1dHRvbkNlbGw+IG1fcG9wdXA7CiAgICAgV0tW
aWV3KiBtX3dlYlZpZXc7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBv
cHVwTWVudVByb3h5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0JKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNDcsNyArNDcsNyBAQCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6fldlYlBvcHVwTWVudVBy
b3h5CiAgICAgICAgIFttX3BvcHVwLmdldCgpIHNldENvbnRyb2xWaWV3Om5pbF07CiB9CiAKLXZv
aWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnBvcHVsYXRlKGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0
ZW0+JiBpdGVtcykKK3ZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnBvcHVsYXRlKGNvbnN0IFZl
Y3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgVGV4dERpcmVjdGlvbiBtZW51VGV4dERpcmVjdGlv
bikKIHsKICAgICBpZiAobV9wb3B1cCkKICAgICAgICAgW21fcG9wdXAuZ2V0KCkgcmVtb3ZlQWxs
SXRlbXNdOwpAQCAtNjQsMjAgKzY0LDM3IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnBv
cHVsYXRlKGNvbnMKICAgICAgICAgICAgIFtbbV9wb3B1cC5nZXQoKSBtZW51XSBhZGRJdGVtOltO
U01lbnVJdGVtIHNlcGFyYXRvckl0ZW1dXTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBb
bV9wb3B1cC5nZXQoKSBhZGRJdGVtV2l0aFRpdGxlOkAiIl07Ci0gICAgICAgICAgICBOU01lbnVJ
dGVtKiBtZW51SXRlbSA9IFttX3BvcHVwLmdldCgpIGxhc3RJdGVtXTsKLSAgICAgICAgICAgIFtt
ZW51SXRlbSBzZXRUaXRsZTpuc1N0cmluZ0Zyb21XZWJDb3JlU3RyaW5nKGl0ZW1zW2ldLm1fdGV4
dCldOworICAgICAgICAgICAgTlNNZW51SXRlbSAqbWVudUl0ZW0gPSBbbV9wb3B1cC5nZXQoKSBs
YXN0SXRlbV07CisKKyAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHls
ZT4gcGFyYWdyYXBoU3R5bGUoQWRvcHROUywgW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJh
Z3JhcGhTdHlsZV0gbXV0YWJsZUNvcHldKTsKKyAgICAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlv
biB3cml0aW5nRGlyZWN0aW9uID0gaXRlbXNbaV0ubV90ZXh0RGlyZWN0aW9uID09IExUUiA/IE5T
V3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xl
ZnQ7CisgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUuZ2V0KCkgc2V0QmFzZVdyaXRpbmdEaXJl
Y3Rpb246d3JpdGluZ0RpcmVjdGlvbl07CisgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUuZ2V0
KCkgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGln
bm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNN
dXRhYmxlRGljdGlvbmFyeT4gYXR0cmlidXRlcyhBZG9wdE5TLCBbW05TTXV0YWJsZURpY3Rpb25h
cnkgYWxsb2NdIGluaXRXaXRoT2JqZWN0c0FuZEtleXM6CisgICAgICAgICAgICAgICAgcGFyYWdy
YXBoU3R5bGUuZ2V0KCksIE5TUGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lLAorICAgICAgICAg
ICAgICAgIFttX3BvcHVwLmdldCgpIGZvbnRdLCBOU0ZvbnRBdHRyaWJ1dGVOYW1lLAorICAgICAg
ICAgICAgbmlsXSk7CisgICAgICAgICAgICBpZiAoaXRlbXNbaV0ubV9oYXNUZXh0RGlyZWN0aW9u
T3ZlcnJpZGUpIHsKKyAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdE
aXJlY3Rpb25WYWx1ZShBZG9wdE5TLCBbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6
d3JpdGluZ0RpcmVjdGlvbiArIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOworICAg
ICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkoQWRv
cHROUywgW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZh
bHVlLmdldCgpLCBuaWxdKTsKKyAgICAgICAgICAgICAgICBbYXR0cmlidXRlcy5nZXQoKSBzZXRP
YmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpOU1dyaXRpbmdEaXJlY3Rp
b25BdHRyaWJ1dGVOYW1lXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFJldGFpblB0cjxO
U0F0dHJpYnV0ZWRTdHJpbmc+IHN0cmluZyhBZG9wdE5TLCBbW05TQXR0cmlidXRlZFN0cmluZyBh
bGxvY10gaW5pdFdpdGhTdHJpbmc6bnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhpdGVtc1tpXS5t
X3RleHQpIGF0dHJpYnV0ZXM6YXR0cmlidXRlcy5nZXQoKV0pOworCisgICAgICAgICAgICBbbWVu
dUl0ZW0gc2V0QXR0cmlidXRlZFRpdGxlOnN0cmluZy5nZXQoKV07CiAgICAgICAgICAgICBbbWVu
dUl0ZW0gc2V0RW5hYmxlZDppdGVtc1tpXS5tX2lzRW5hYmxlZF07CiAgICAgICAgICAgICBbbWVu
dUl0ZW0gc2V0VG9vbFRpcDpuc1N0cmluZ0Zyb21XZWJDb3JlU3RyaW5nKGl0ZW1zW2ldLm1fdG9v
bFRpcCldOwogICAgICAgICB9CiAgICAgfQogfQogCi12b2lkIFdlYlBvcHVwTWVudVByb3h5TWFj
OjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFZlY3RvcjxXZWJQb3B1
cEl0ZW0+JiBpdGVtcywgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxl
Y3RlZEluZGV4KQordm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25z
dCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGNvbnN0IFZlY3Rv
cjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50
MzJfdCBzZWxlY3RlZEluZGV4KQogewotICAgIHBvcHVsYXRlKGl0ZW1zKTsKKyAgICBwb3B1bGF0
ZShpdGVtcywgdGV4dERpcmVjdGlvbik7CiAKICAgICBbbV9wb3B1cC5nZXQoKSBhdHRhY2hQb3BV
cFdpdGhGcmFtZTpyZWN0IGluVmlldzptX3dlYlZpZXddOwogICAgIFttX3BvcHVwLmdldCgpIHNl
bGVjdEl0ZW1BdEluZGV4OnNlbGVjdGVkSW5kZXhdOworICAgIFttX3BvcHVwLmdldCgpIHNldFVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246dGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1VzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TVXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvblJpZ2h0VG9MZWZ0XTsKIAogICAgIE5TTWVudSogbWVudSA9IFttX3BvcHVwLmdl
dCgpIG1lbnVdOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBN
ZW51UHJveHlRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1dlYlBvcHVwTWVudVByb3h5UXQuY3BwCShyZXZpc2lvbiA3Njk2MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDIsNyArNDIsNyBAQCBXZWJQb3B1cE1lbnVQcm94eVF0Ojp+V2ViUG9wdXBNZW51UHJveHlR
CiB7CiB9CiAKLXZvaWQgV2ViUG9wdXBNZW51UHJveHlRdDo6c2hvd1BvcHVwTWVudShjb25zdCBJ
bnRSZWN0JiByZWN0LCBjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGNvbnN0IFBs
YXRmb3JtUG9wdXBNZW51RGF0YSYsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCkKK3ZvaWQgV2ViUG9w
dXBNZW51UHJveHlRdDo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBXZWJDb3Jl
OjpUZXh0RGlyZWN0aW9uLCBjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGNvbnN0
IFBsYXRmb3JtUG9wdXBNZW51RGF0YSYsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCkKIHsKIH0KIApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJv
eHlRdC5oCShyZXZpc2lvbiA3Njk2MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9X
ZWJQb3B1cE1lbnVQcm94eVF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHVi
bGljOgogICAgIH0KICAgICB+V2ViUG9wdXBNZW51UHJveHlRdCgpOwogCi0gICAgdmlydHVhbCB2
b2lkIHNob3dQb3B1cE1lbnUoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFZlY3RvcjxX
ZWJQb3B1cEl0ZW0+JiwgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxl
Y3RlZEluZGV4KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1BvcHVwTWVudShjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgY29uc3QgVmVjdG9yPFdlYlBvcHVw
SXRlbT4mLCBjb25zdCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmLCBpbnQzMl90IHNlbGVjdGVkSW5k
ZXgpOwogICAgIHZpcnR1YWwgdm9pZCBoaWRlUG9wdXBNZW51KCk7CiAKIHByaXZhdGU6CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVBy
b3h5V2luLmNwcAkocmV2aXNpb24gNzY5NjApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
d2luL1dlYlBvcHVwTWVudVByb3h5V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDcgKzE4
OCw3IEBAIFdlYlBvcHVwTWVudVByb3h5V2luOjp+V2ViUG9wdXBNZW51UHJveHkKICAgICAgICAg
bV9zY3JvbGxiYXItPnNldFBhcmVudCgwKTsKIH0KIAotdm9pZCBXZWJQb3B1cE1lbnVQcm94eVdp
bjo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBWZWN0b3I8V2ViUG9w
dXBJdGVtPiYgaXRlbXMsIGNvbnN0IFBsYXRmb3JtUG9wdXBNZW51RGF0YSYgZGF0YSwgaW50MzJf
dCBzZWxlY3RlZEluZGV4KQordm9pZCBXZWJQb3B1cE1lbnVQcm94eVdpbjo6c2hvd1BvcHVwTWVu
dShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uLCBjb25zdCBWZWN0b3I8V2ViUG9w
dXBJdGVtPiYgaXRlbXMsIGNvbnN0IFBsYXRmb3JtUG9wdXBNZW51RGF0YSYgZGF0YSwgaW50MzJf
dCBzZWxlY3RlZEluZGV4KQogewogICAgIG1faXRlbXMgPSBpdGVtczsKICAgICBtX2RhdGEgPSBk
YXRhOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94
eVdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViUG9w
dXBNZW51UHJveHlXaW4uaAkocmV2aXNpb24gNzY5NjApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcg
KzQ4LDcgQEAgcHVibGljOgogICAgIH0KICAgICB+V2ViUG9wdXBNZW51UHJveHlXaW4oKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBzaG93UG9wdXBNZW51KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBj
b25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYsIGNvbnN0IFBsYXRmb3JtUG9wdXBNZW51RGF0YSYs
IGludDMyX3Qgc2VsZWN0ZWRJbmRleCk7CisgICAgdmlydHVhbCB2b2lkIHNob3dQb3B1cE1lbnUo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIGNvbnN0IFZl
Y3RvcjxXZWJQb3B1cEl0ZW0+JiwgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJf
dCBzZWxlY3RlZEluZGV4KTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZVBvcHVwTWVudSgpOwogCiAg
ICAgdm9pZCBoaWRlKCkgeyBoaWRlUG9wdXBNZW51KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAJKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTIs
NiArNjEyLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb3JtRGlkQmx1cihjb25zdCAKIAog
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCkKIHsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxl
Y3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkKK3sKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiA3Njk2MCkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpIVE1MUGFyc2VyUXVpcmtzPiBjcmVhdGVIVE1MUGFy
c2VyUXVpcmtzKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxv
d3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBN
ZW51LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBvcHVwTWVudS5jcHAJKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04Niw3ICs4Niw4IEBAIFZlY3RvcjxXZWJQb3B1cEl0ZW0+IFdlYlBvcHVwTWVudTo6
cG9wdWwKICAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igc3R5bGluZyB0aGUg
Zm9udC4KICAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igc3R5bGluZyB0aGUg
Zm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMuCiAgICAgICAgICAgICAvLyBGSVhNRTog
RmluZCBhIHdheSB0byBjdXN0b21pemUgdGV4dCBjb2xvciB3aGVuIGFuIGl0ZW0gaXMgaGlnaGxp
Z2h0ZWQuCi0gICAgICAgICAgICBpdGVtcy5hcHBlbmQoV2ViUG9wdXBJdGVtKFdlYlBvcHVwSXRl
bTo6SXRlbSwgbV9wb3B1cENsaWVudC0+aXRlbVRleHQoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1U
b29sVGlwKGkpLCBtX3BvcHVwQ2xpZW50LT5pdGVtQWNjZXNzaWJpbGl0eVRleHQoaSksIG1fcG9w
dXBDbGllbnQtPml0ZW1Jc0VuYWJsZWQoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1Jc0xhYmVsKGkp
KSk7CisgICAgICAgICAgICBQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGUgPSBtX3BvcHVwQ2xpZW50
LT5pdGVtU3R5bGUoaSk7CisgICAgICAgICAgICBpdGVtcy5hcHBlbmQoV2ViUG9wdXBJdGVtKFdl
YlBvcHVwSXRlbTo6SXRlbSwgbV9wb3B1cENsaWVudC0+aXRlbVRleHQoaSksIGl0ZW1TdHlsZS50
ZXh0RGlyZWN0aW9uKCksIGl0ZW1TdHlsZS5oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKSwgbV9w
b3B1cENsaWVudC0+aXRlbVRvb2xUaXAoaSksIG1fcG9wdXBDbGllbnQtPml0ZW1BY2Nlc3NpYmls
aXR5VGV4dChpKSwgbV9wb3B1cENsaWVudC0+aXRlbUlzRW5hYmxlZChpKSwgbV9wb3B1cENsaWVu
dC0+aXRlbUlzTGFiZWwoaSkpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTExLDcgKzExMiw3
IEBAIHZvaWQgV2ViUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIKICAgICBQbGF0Zm9y
bVBvcHVwTWVudURhdGEgcGxhdGZvcm1EYXRhOwogICAgIHNldFVwUGxhdGZvcm1EYXRhKHBhZ2VD
b29yZGluYXRlcywgcGxhdGZvcm1EYXRhKTsKIAotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93UG9wdXBNZW51KHBh
Z2VDb29yZGluYXRlcywgaXRlbXMsIGluZGV4LCBwbGF0Zm9ybURhdGEpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6U2hvd1BvcHVwTWVudShwYWdlQ29vcmRpbmF0ZXMsIG1fcG9wdXBD
bGllbnQtPm1lbnVTdHlsZSgpLnRleHREaXJlY3Rpb24oKSwgaXRlbXMsIGluZGV4LCBwbGF0Zm9y
bURhdGEpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJQb3B1cE1lbnU6OmhpZGUo
KQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2OTY4KQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
MCBAQAorMjAxMS0wMS0yOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxzZWxlY3Q+IGNhbid0
IGRpc3BsYXkgcmlnaHQtdG8tbGVmdCAocnRsKSBsYW5ndWFnZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Nzg1CisKKyAgICAgICAgKiBzcmMvQXV0
b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRvRmlsbFBvcHVw
TWVudUNsaWVudDo6aW5pdGlhbGl6ZSk6IFBhc3MgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlIHRv
IHRoZSBQb3B1cE1lbnVTdHlsZQorICAgICAgICBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBzcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24pOiBBZGRlZC4K
KyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgorICAgICAgICAqIHRlc3RzL1BvcHVw
TWVudVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0UG9wdXBNZW51Q2xpZW50OjppdGVt
U3R5bGUpOiBQYXNzIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSB0byB0aGUgUG9wdXBNZW51U3R5
bGUKKyAgICAgICAgY29uc3RydWN0b3IuCisKIDIwMTEtMDEtMjggIElseWEgU2hlcm1hbiAgPGlz
aGVybWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5n
LgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGll
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9GaWxs
UG9wdXBNZW51Q2xpZW50LmNwcAkocmV2aXNpb24gNzY5NjApCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5Myw3ICsyOTMsNyBAQCB2b2lkIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50Ojppbml0aWFsaXpl
CiAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQ6IHRleHRGaWVsZC4KICAgICBtX3JlZ3VsYXJTdHls
ZS5zZXQobmV3IFBvcHVwTWVudVN0eWxlKENvbG9yOjpibGFjaywgQ29sb3I6OndoaXRlLCByZWd1
bGFyRm9udCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUs
IGZhbHNlLCBMZW5ndGgoV2ViQ29yZTo6Rml4ZWQpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5kaXJlY3Rp
b24oKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZp
ZWxkLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5kaXJlY3Rpb24oKSwgdGV4dEZpZWxkLT5yZW5kZXJl
cigpLT5zdHlsZSgpLT51bmljb2RlQmlkaSgpID09IE92ZXJyaWRlKSk7CiAKICAgICBGb250RGVz
Y3JpcHRpb24gd2FybmluZ0ZvbnREZXNjcmlwdGlvbiA9IHJlZ3VsYXJGb250LmZvbnREZXNjcmlw
dGlvbigpOwogICAgIHdhcm5pbmdGb250RGVzY3JpcHRpb24uc2V0SXRhbGljKHRydWUpOwpAQCAt
MzA1LDcgKzMwNSw4IEBAIHZvaWQgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OmluaXRpYWxpemUK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcmVndWxhclN0eWxl
LT5pc1Zpc2libGUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fcmVndWxhclN0eWxlLT5pc0Rpc3BsYXlOb25lKCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3JlZ3VsYXJTdHlsZS0+dGV4dEluZGVudCgpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9yZWd1bGFyU3R5bGUtPnRleHRE
aXJlY3Rpb24oKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9yZWd1bGFyU3R5bGUtPnRleHREaXJlY3Rpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcmVndWxhclN0eWxlLT5oYXNUZXh0RGlyZWN0aW9uT3ZlcnJp
ZGUoKSkpOwogfQogCiB2b2lkIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpzZXRTdWdnZXN0aW9u
cyhjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgbmFtZXMsCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gNzY5NjAp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODUzLDYgKzg1MywxMSBAQCBib29sIENocm9tZUNsaWVudEltcGw6OnNl
bGVjdEl0ZW1Xcml0aW5nCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENocm9tZUNsaWVu
dEltcGw6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQor
eworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNs
aWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QK
IHsKICAgICBpZiAoV2ViVmlld0ltcGw6OnVzZUV4dGVybmFsUG9wdXBNZW51cygpKQpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAkocmV2aXNp
b24gNzY5NjApCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDdXJzb3JGb3JQbHVnaW4oY29uc3QgV2ViQ3Vyc29ySW5mbyYpOwogCiAgICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAJKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBpdGVt
U3R5bGUodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAogICAgIHsKICAgICAgICAgRm9udCBmb250
KEZvbnRQbGF0Zm9ybURhdGEoMTIuMCwgZmFsc2UsIGZhbHNlKSwgZmFsc2UpOwotICAgICAgICBy
ZXR1cm4gUG9wdXBNZW51U3R5bGUoQ29sb3I6OmJsYWNrLCBDb2xvcjo6d2hpdGUsIGZvbnQsIHRy
dWUsIGZhbHNlLCBMZW5ndGgoKSwgVGV4dERpcmVjdGlvbigpKTsKKyAgICAgICAgcmV0dXJuIFBv
cHVwTWVudVN0eWxlKENvbG9yOjpibGFjaywgQ29sb3I6OndoaXRlLCBmb250LCB0cnVlLCBmYWxz
ZSwgTGVuZ3RoKCksIFRleHREaXJlY3Rpb24oKSwgZmFsc2UgLyogaGFzIHRleHQgZGlyZWN0aW9u
IG92ZXJyaWRlICovKTsKICAgICB9CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBtZW51U3R5
bGUoKSBjb25zdCB7IHJldHVybiBpdGVtU3R5bGUoMCk7IH0KICAgICB2aXJ0dWFsIGludCBjbGll
bnRJbnNldExlZnQoKSBjb25zdCB7IHJldHVybiAwOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA3Njk2OCkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTAxLTI4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgPHNlbGVjdD4gY2FuJ3QgZGlzcGxheSByaWdodC10by1sZWZ0IChydGwpIGxhbmd1YWdlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODUKKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdy
aXRpbmdEaXJlY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuaDoKKwogMjAxMS0wMS0yNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAJKHJl
dmlzaW9uIDc2OTYwKQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMyLDYgKzUzMiwxMSBAQCBib29sIENo
cm9tZUNsaWVudEVmbDo6c2VsZWN0SXRlbVdyaXRpbmdECiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
K2Jvb2wgQ2hyb21lQ2xpZW50RWZsOjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0
aW5nRGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8UG9w
dXBNZW51PiBDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUVmbChj
bGllbnQpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEVmbC5oCShyZXZpc2lvbiA3Njk2MCkKKysrIFNvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDks
NiArMTQ5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0RGF0
YURpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0OwogCiAgICAgdmlydHVh
bCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVh
bCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVu
dT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Njk2OCkKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTAxLTI4ICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgPHNlbGVjdD4gY2FuJ3QgZGlzcGxheSByaWdodC10by1sZWZ0
IChydGwpIGxhbmd1YWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk3ODUKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVu
dEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbik6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDExLTAxLTI4ICBBbGVqYW5kcm8gRy4gQ2Fz
dHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcAkocmV2aXNpb24gNzY5NjApCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NzQsNiAr
Njc0LDExIEBAIGJvb2wgQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmUKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1BbGlnbm1lbnRG
b2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwog
UGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IENocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUG9wdXBNZW51R3RrKGNsaWVudCkpOwpJbmRleDogU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgJKHJldmlzaW9u
IDc2OTYwKQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAKICAg
ICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7
CisgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0
aW5nRGlyZWN0aW9uKCk7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsK
ICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3Jl
YXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogI2lm
IEVOQUJMRShWSURFTykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Njk2OCkK
KysrIFNvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTEtMDEtMjggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8c2VsZWN0PiBj
YW4ndCBkaXNwbGF5IHJpZ2h0LXRvLWxlZnQgKHJ0bCkgbGFuZ3VhZ2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc4NQorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50SGFpa3U6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJl
Y3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5oOgorCiAyMDExLTAxLTI3ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvaGFp
a3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCShy
ZXZpc2lvbiA3Njk2MCkKKysrIFNvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50SGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTksNiArMzk5LDExIEBAIGJv
b2wgQ2hyb21lQ2xpZW50SGFpa3U6OnNlbGVjdEl0ZW1Xcml0aW4KICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK2Jvb2wgQ2hyb21lQ2xpZW50SGFpa3U6OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dz
TWVudVdyaXRpbmdEaXJlY3Rpb24oKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1Jl
ZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudEhhaWt1OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1
cE1lbnVIYWlrdShjbGllbnQpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2hh
aWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgJKHJldmlzaW9uIDc2OTYwKQor
KysgU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsNiArMTMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
I2VuZGlmCiAKICAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9s
bG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQ
b3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA3Njk2OCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTAxLTI4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
PHNlbGVjdD4gY2FuJ3QgZGlzcGxheSByaWdodC10by1sZWZ0IChydGwpIGxhbmd1YWdlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODUKKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOiBDaGFuZ2VkIHRvIHJldHVybiBm
YWxzZS4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxv
d3NNZW51V3JpdGluZ0RpcmVjdGlvbik6IEFkZGVkLiBSZXR1cm5zIHRydWUuCisKIDIwMTEtMDEt
MjcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3Njg5MS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiA3Njk2
MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzksNiArMTc5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopIHsgfQogCiAgICAgdmlydHVhbCBib29sIHNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CisgICAgdmlydHVhbCBib29sIHNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCopIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCShyZXZpc2lvbiA3Njk2MCkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNzQ5LDcgKzc0OSwyMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9ybURp
ZEJsdXIoY29uc3QgCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0Rp
cmVjdGlvbklzTmF0dXJhbCgpCiB7CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UK
ICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCitib29sIFdlYkNocm9tZUNsaWVudDo6c2Vs
ZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpCit7CisjaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
CisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQog
CiBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CkluZGV4OiBT
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZwkocmV2aXNpb24gNzY5NjgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTAxLTI4ICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgPHNlbGVjdD4gY2FuJ3QgZGlzcGxheSByaWdodC10by1sZWZ0IChydGwp
IGxhbmd1YWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk3ODUKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9s
bG93c01lbnVXcml0aW5nRGlyZWN0aW9uKTogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMS0wMS0yNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNw
cAkocmV2aXNpb24gNzY5NjApCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzM2LDYgKzczNiwxMSBAQCBib29s
IENocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVtV3JpdGluZ0RpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCitib29sIENocm9tZUNsaWVudFF0OjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVX
cml0aW5nRGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8
UG9wdXBNZW51PiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51UXQo
Y2xpZW50LCB0aGlzKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oCShyZXZpc2lvbiA3Njk2MCkKKysrIFNvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTg5
LDYgKzE4OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0
aW9uKik7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9s
bG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQ
b3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxh
dGVWaXNpdGVkTGlua3MoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2OTY4KQor
KysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTEtMDEtMjggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8c2VsZWN0PiBjYW4n
dCBkaXNwbGF5IHJpZ2h0LXRvLWxlZnQgKHJ0bCkgbGFuZ3VhZ2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc4NQorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbik6IEFkZGVkLgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDExLTAxLTI3
ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gNzY5NjApCisrKyBTb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04NjIsNiArODYyLDExIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVt
V3JpdGluZ0QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6
Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51V2luKGNsaWVudCkpOwpJbmRleDogU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJldmlz
aW9uIDc2OTYwKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpOworICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0
aW5nRGlyZWN0aW9uKCk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJj
aFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIApJbmRleDogU291
cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93
aW5jZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2OTY4KQorKysgU291cmNlL1dlYktpdC93aW5jZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wMS0yOCAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIDxzZWxlY3Q+IGNhbid0IGRpc3BsYXkgcmlnaHQtdG8tbGVm
dCAocnRsKSBsYW5ndWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5Nzg1CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRX
aW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpzZWxlY3RJdGVt
QWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKTogQWRkZWQuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKwogMjAxMS0wMS0yNSAgUGF0cmlj
ayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIFJvYmVuLgpJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRXaW5DRS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAJKHJldmlzaW9uIDc2OTYwKQorKysgU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM5MCw2ICszOTAsMTEgQEAgYm9vbCBDaHJvbWVDbGllbnRXaW5DRTo6
c2VsZWN0SXRlbVdyaXRpbgogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBDaHJvbWVDbGll
bnRXaW5DRTo6c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigp
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21l
Q2xpZW50V2luQ0U6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbihjbGllbnQpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFdpbkNFLmgJKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzQs
NiArMTc0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRl
bUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOwogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50KikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Njk2OCkKKysrIFNv
dXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDEtMjggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8c2VsZWN0PiBjYW4ndCBkaXNw
bGF5IHJpZ2h0LXRvLWxlZnQgKHJ0bCkgbGFuZ3VhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc4NQorCisgICAgICAgICogV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6
c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbik6IEFkZGVkLgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKwogMjAxMS0wMS0yNyAg
TmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21l
Q2xpZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5jcHAJKHJldmlzaW9uIDc2OTYwKQorKysgU291cmNlL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc2
LDYgKzQ3NiwxMSBAQCBib29sIENocm9tZUNsaWVudFd4OjpzZWxlY3RJdGVtV3JpdGluZ0RpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENocm9tZUNsaWVudFd4OjpzZWxlY3RJdGVtQWxp
Z25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRXeDo6Y3JlYXRlUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUG9wdXBNZW51V3goY2xpZW50KSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAkocmV2aXNpb24gNzY5NjApCisrKyBTb3Vy
Y2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAkod29ya2luZyBjb3B5
KQpAQCAtMTQ5LDYgKzE0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSB7
IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpOworICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0
aW5nRGlyZWN0aW9uKCk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRl
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
KSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL3BvcC11cC1hbGln
bm1lbnQtYW5kLWRpcmVjdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUg
bWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3Rl
dC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0
cy9wb3AtdXAtYWxpZ25tZW50LWFuZC1kaXJlY3Rpb24uaHRtbApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKL3Y4QVBBQnpBSFFB
ZVFCc0FHVUFQZ0FLQUNBQUlBQWdBQ0FBY3dCbEFHd0FaUUJqQUhRQUlBQjdBQ0FBWkFCcEFITUFj
QUJzQUdFQQplUUE2QUNBQVlnQnNBRzhBWXdCckFEc0FJQUJtQUc4QWJnQjBBQzBBY3dCcEFIb0Fa
UUE2QUNBQU1RQTJBSEFBZUFBN0FDQUFmUUFLCkFDQUFJQUFnQUNBQWJBQmhBR0lBWlFCc0FDQUFl
d0FnQUdRQWFRQnpBSEFBYkFCaEFIa0FPZ0FnQUdJQWJBQnZBR01BYXdBN0FDQUEKWmdCdkFHNEFk
QUE2QUNBQU1RQXpBSEFBZUFBZ0FDSUFUQUIxQUdNQWFRQmtBR0VBSUFCSEFISUFZUUJ1QUdRQVpR
QWlBRHNBSUFCOQpBQW9BSUFBZ0FDQUFJQUFqQUhJQVpRQm1BR3dBWlFCakFIUUFhUUJ2QUc0QUlB
QjdBQ0FBWmdCdkFHNEFkQUE2QUNBQU1RQXpBSEFBCmVBQWdBQ0lBVEFCMUFHTUFhUUJrQUdFQUlB
QkhBSElBWVFCdUFHUUFaUUFpQURzQUlBQndBR0VBWkFCa0FHa0FiZ0JuQURvQUlBQXgKQURBQWNB
QjRBRHNBSUFCM0FHa0FaQUIwQUdnQU9nQWdBRElBTkFBMUFIQUFlQUE3QUNBQWZRQUtBRHdBTHdC
ekFIUUFlUUJzQUdVQQpQZ0FLQUFvQVBBQndBRDRBQ2dBZ0FDQUFJQUFnQUVZQWJ3QnlBQ0FBWlFC
aEFHTUFhQUFnQUc4QVpnQWdBSFFBYUFCbEFDQUFaQUJwCkFISUFaUUJqQUhRQWFRQnZBRzRBSUFC
ekFHVUFkQUIwQUdrQWJnQm5BSE1BSUFCaUFHVUFiQUJ2QUhjQUxBQWdBR0VBYmdCa0FDQUEKWmdC
dkFISUFJQUJsQUdFQVl3Qm9BQ0FBYVFCMEFHVUFiUUFnQUdrQWJnQWdBSFFBYUFCbEFDQUFjQUJ2
QUhBQUxRQjFBSEFBSUFCdApBR1VBYmdCMUFDQUFZZ0JsQUd3QWJ3QjNBQ3dBSUFCMkFHVUFjZ0Jw
QUdZQWVRQWdBSFFBYUFCaEFIUUFDZ0FnQUNBQUlBQWdBSFFBCmFBQmxBQ0FBWVFCc0FHa0Fad0J1
QUcwQVpRQnVBSFFBSUFCaEFHNEFaQUFnQUdNQWJ3QnVBSFFBWlFCdUFIUUFJQUJ0QUdFQWRBQmoK
QUdnQUlBQmlBR1VBZEFCM0FHVUFaUUJ1QUNBQWRBQm9BR1VBSUFCd0FHOEFjQUF0QUhVQWNBQWdB
R0lBZFFCMEFIUUFid0J1QUN3QQpJQUIwQUdnQVpRQWdBRzBBWlFCdUFIVUFJQUJwQUhRQVpRQnRB
Q3dBSUFCaEFHNEFaQUFnQUhRQWFBQmxBQ0FBZGdCaEFHd0FkUUJsCkFDQUFZUUJ6QUNBQWFRQjBB
Q0FBYVFCekFBb0FJQUFnQUNBQUlBQnlBR1VBWmdCc0FHVUFZd0IwQUdVQVpBQWdBR0lBWlFCc0FH
OEEKZHdBZ0FIUUFhQUJsQUNBQWNBQnZBSEFBTFFCMUFIQUFJQUJpQUhVQWRBQjBBRzhBYmdBc0FD
QUFZUUJ1QUdRQUlBQjBBR2dBWVFCMApBQ0FBZEFCb0FHVUFJQUJqQUdnQVpRQmpBR3NBYlFCaEFI
SUFhd0J6QUNBQVlRQndBSEFBWlFCaEFISUFJQUJ2QUc0QUlBQjBBR2dBClpRQWdBSE1BZEFCaEFI
SUFkQUFnQUhNQWFRQmtBR1VBSUFCdkFHWUFJQUIwQUdnQVpRQWdBR2tBZEFCbEFHMEFMZ0FLQUR3
QUx3QncKQUQ0QUNnQUtBRHdBYkFCaEFHSUFaUUJzQUQ0QVBBQnBBRzRBY0FCMUFIUUFJQUIwQUhr
QWNBQmxBRDBBSWdCeUFHRUFaQUJwQUc4QQpJZ0FnQUc0QVlRQnRBR1VBUFFBaUFHUUFhUUJ5QUdV
QVl3QjBBR2tBYndCdUFDSUFJQUIyQUdFQWJBQjFBR1VBUFFBaUFHd0FkQUJ5CkFDSUFJQUJqQUdn
QVpRQmpBR3NBWlFCa0FDQUFid0J1QUdNQWFBQmhBRzRBWndCbEFEMEFJZ0JrQUdrQWNnQmxBR01B
ZEFCcEFHOEEKYmdCREFHZ0FZUUJ1QUdjQVpRQmtBQ2dBWlFCMkFHVUFiZ0IwQUNrQUlnQStBQ0FB
VEFCbEFHWUFkQUFnQUhRQWJ3QWdBSElBYVFCbgpBR2dBZEFBOEFDOEFiQUJoQUdJQVpRQnNBRDRB
Q2dBOEFHd0FZUUJpQUdVQWJBQStBRHdBYVFCdUFIQUFkUUIwQUNBQWRBQjVBSEFBClpRQTlBQ0lB
Y2dCaEFHUUFhUUJ2QUNJQUlBQnVBR0VBYlFCbEFEMEFJZ0JrQUdrQWNnQmxBR01BZEFCcEFHOEFi
Z0FpQUNBQWRnQmgKQUd3QWRRQmxBRDBBSWdCeUFIUUFiQUFpQUNBQWJ3QnVBR01BYUFCaEFHNEFa
d0JsQUQwQUlnQmtBR2tBY2dCbEFHTUFkQUJwQUc4QQpiZ0JEQUdnQVlRQnVBR2NBWlFCa0FDZ0Fa
UUIyQUdVQWJnQjBBQ2tBSWdBK0FDQUFVZ0JwQUdjQWFBQjBBQ0FBZEFCdkFDQUFiQUJsCkFHWUFk
QUE4QUM4QWJBQmhBR0lBWlFCc0FENEFDZ0FLQUR3QWN3QmxBR3dBWlFCakFIUUFJQUJwQUdRQVBR
QWlBRzBBWlFCdUFIVUEKSWdBK0FBb0FJQUFnQUNBQUlBQThBRzhBY0FCMEFHa0Fid0J1QUNBQWN3
QjBBSGtBYkFCbEFEMEFJZ0JrQUdrQWNnQmxBR01BZEFCcApBRzhBYmdBNkFDQUFiQUIwQUhJQU93
QWlBRDRBQ2dBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBUmdCcEFISUFjd0IwQUNBRjZRWGdCZGtGCjFB
QWdBQ2dBTUFBekFDa0FJQVhvQmRFRjJRWGlCZGtGNmdBZ0FHWUFhUUJtQUhRQWFBQUtBQ0FBSUFB
Z0FDQUFQQUF2QUc4QWNBQjAKQUdrQWJ3QnVBRDRBQ2dBZ0FDQUFJQUFnQUR3QWJ3QndBSFFBYVFC
dkFHNEFJQUJ6QUhRQWVRQnNBR1VBUFFBaUFHUUFhUUJ5QUdVQQpZd0IwQUdrQWJ3QnVBRG9BSUFC
eUFIUUFiQUE3QUNJQVBnQUtBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQkdBR2tBY2dCekFIUUFJQVhw
CkJlQUYyUVhVQUNBQUtBQXdBRE1BS1FBZ0JlZ0YwUVhaQmVJRjJRWHFBQ0FBWmdCcEFHWUFkQUJv
QUFvQUlBQWdBQ0FBSUFBOEFDOEEKYndCd0FIUUFhUUJ2QUc0QVBnQUtBQ0FBSUFBZ0FDQUFQQUJ2
QUhBQWRBQnBBRzhBYmdBZ0FITUFkQUI1QUd3QVpRQTlBQ0lBWkFCcApBSElBWlFCakFIUUFhUUJ2
QUc0QU9nQWdBR3dBZEFCeUFEc0FJQUIxQUc0QWFRQmpBRzhBWkFCbEFDMEFZZ0JwQUdRQWFRQTZB
Q0FBCllnQnBBR1FBYVFBdEFHOEFkZ0JsQUhJQWNnQnBBR1FBWlFBN0FDSUFQZ0FLQUNBQUlBQWdB
Q0FBSUFBZ0FDQUFJQUJHQUdrQWNnQnoKQUhRQUlBWHBCZUFGMlFYVUFDQUFLQUF3QURNQUtRQWdC
ZWdGMFFYWkJlSUYyUVhxQUNBQVpnQnBBR1lBZEFCb0FBb0FJQUFnQUNBQQpJQUE4QUM4QWJ3QndB
SFFBYVFCdkFHNEFQZ0FLQUNBQUlBQWdBQ0FBUEFCdkFIQUFkQUJwQUc4QWJnQWdBSE1BZEFCNUFH
d0FaUUE5CkFDSUFaQUJwQUhJQVpRQmpBSFFBYVFCdkFHNEFPZ0FnQUhJQWRBQnNBRHNBSUFCMUFH
NEFhUUJqQUc4QVpBQmxBQzBBWWdCcEFHUUEKYVFBNkFDQUFZZ0JwQUdRQWFRQXRBRzhBZGdCbEFI
SUFjZ0JwQUdRQVpRQTdBQ0lBUGdBS0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFCRwpBR2tBY2dCekFI
UUFJQVhwQmVBRjJRWFVBQ0FBS0FBd0FETUFLUUFnQmVnRjBRWFpCZUlGMlFYcUFDQUFaZ0JwQUdZ
QWRBQm9BQW9BCklBQWdBQ0FBSUFBOEFDOEFid0J3QUhRQWFRQnZBRzRBUGdBS0FDQUFJQUFnQUNB
QVBBQnZBSEFBZEFCcEFHOEFiZ0ErQUFvQUlBQWcKQUNBQUlBQWdBQ0FBSUFBZ0JkNEY2UVhVQmRV
QUlBWGlCZDBBSUFYZ0JiUUY1d1c4QmRVRnZBWFRBQW9BSUFBZ0FDQUFJQUE4QUM4QQpid0J3QUhR
QWFRQnZBRzRBUGdBS0FDQUFJQUFnQUNBQVBBQnZBSEFBZEFCcEFHOEFiZ0ErQUFvQUlBQWdBQ0FB
SUFBZ0FDQUFJQUFnCkJpY0dSQVpFQmpvR0tRQWdCaWNHUkFZNUJqRUdLQVpLQmlrQUNnQWdBQ0FB
SUFBZ0FEd0FMd0J2QUhBQWRBQnBBRzhBYmdBK0FBb0EKSUFBZ0FDQUFJQUE4QUc4QWNBQjBBR2tB
YndCdUFENEFDZ0FnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFSUUIwQUNBQWRnQnZBR3dBYVFCaApBQ1lB
SXdCNEFEQUFNd0F3QURBQU9nQWdBRUVBVkFCVEFGVUFTUUFoQUFvQUlBQWdBQ0FBSUFBOEFDOEFi
d0J3QUhRQWFRQnZBRzRBClBnQUtBQ0FBSUFBZ0FDQUFQQUJ2QUhBQWRBQnBBRzhBYmdBK0FBb0FJ
QUFnQUNBQUlBQWdBQ0FBSUFBZ0FFUUFhUUJ5QUdVQVl3QjAKQUdrQWJ3QnVBR0VBYkFBZ0FDWUFJ
d0I0QURJQU1BQXlBR1VBT3dCdkFIWUFaUUJ5QUhJQWFRQmtBR1VBY3dBbUFDTUFlQUF5QURBQQpN
Z0JqQURzQUlBQmhBSElBWlFBZ0FHTUFid0J1QUdZQWRRQnpBR2tBYmdCbkFDNEFDZ0FnQUNBQUlB
QWdBRHdBTHdCdkFIQUFkQUJwCkFHOEFiZ0ErQUFvQUlBQWdBQ0FBSUFBOEFHOEFjQUIwQUdrQWJ3
QnVBRDRBQ2dBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBVXdCb0FHVUEKSUFCekFHRUFhUUJrQUNBQUpn
QnNBR1FBY1FCMUFHOEFPd0FtQUNNQWVBQXlBREFBTWdCaUFEc0YyUVhwQUNBQVZBQk9BRlFBSUFY
UgpCZDRGMWdYVkJkVUYwd1hVQUNFQUpnQWpBSGdBTWdBd0FESUFZd0E3QUNZQWNnQmtBSEVBZFFC
dkFEc0FJQUJoQUc0QVpBQWdBSElBCllRQnVBQ0FBYndCbUFHWUFDZ0FnQUNBQUlBQWdBRHdBTHdC
dkFIQUFkQUJwQUc4QWJnQStBQW9BUEFBdkFITUFaUUJzQUdVQVl3QjAKQUQ0QUNnQThBR1FBYVFC
MkFDQUFhUUJrQUQwQUlnQnlBR1VBWmdCc0FHVUFZd0IwQUdrQWJ3QnVBQ0lBUGdBS0FDQUFJQUFn
QUNBQQpSZ0JwQUhJQWN3QjBBQ0FGNlFYZ0Jka0YxQUFnQUNnQU1BQXpBQ2tBSUFYb0JkRUYyUVhp
QmRrRjZnQWdBR1lBYVFCbUFIUUFhQUFLCkFEd0FMd0JrQUdrQWRnQStBQW9BUEFCekFHTUFjZ0Jw
QUhBQWRBQStBQW9BSUFBZ0FDQUFJQUIyQUdFQWNnQWdBSElBWlFCbUFHd0EKWlFCakFIUUFhUUJ2
QUc0QUlBQTlBQ0FBWkFCdkFHTUFkUUJ0QUdVQWJnQjBBQzRBWndCbEFIUUFSUUJzQUdVQWJRQmxB
RzRBZEFCQwpBSGtBU1FCa0FDZ0FJZ0J5QUdVQVpnQnNBR1VBWXdCMEFHa0Fid0J1QUNJQUtRQTdB
QW9BQ2dBZ0FDQUFJQUFnQUdRQWJ3QmpBSFVBCmJRQmxBRzRBZEFBdUFHY0FaUUIwQUVVQWJBQmxB
RzBBWlFCdUFIUUFRZ0I1QUVrQVpBQW9BQ0lBYlFCbEFHNEFkUUFpQUNrQUxnQnYKQUc0QVl3Qm9B
R0VBYmdCbkFHVUFJQUE5QUNBQVpnQjFBRzRBWXdCMEFHa0Fid0J1QUNnQVpRQjJBR1VBYmdCMEFD
a0FJQUI3QUFvQQpJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FIWUFZUUJ5QUNBQWJ3QndBSFFBYVFCdkFH
NEFJQUE5QUNBQVpRQjJBR1VBYmdCMEFDNEFkQUJoCkFISUFad0JsQUhRQUxnQnBBSFFBWlFCdEFD
Z0FaUUIyQUdVQWJnQjBBQzRBZEFCaEFISUFad0JsQUhRQUxnQnpBR1VBYkFCbEFHTUEKZEFCbEFH
UUFTUUJ1QUdRQVpRQjRBQ2tBT3dBS0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFCeUFHVUFaZ0JzQUdV
QVl3QjBBR2tBYndCdQpBQzRBYVFCdUFHNEFaUUJ5QUVnQVZBQk5BRXdBSUFBOUFDQUFid0J3QUhR
QWFRQnZBRzRBTGdCcEFHNEFiZ0JsQUhJQVNBQlVBRTBBClRBQTdBQW9BSUFBZ0FDQUFJQUFnQUNB
QUlBQWdBRzhBY0FCMEFHa0Fid0J1QUZNQWRBQjVBR3dBWlFBZ0FEMEFJQUJuQUdVQWRBQkQKQUc4
QWJRQndBSFVBZEFCbEFHUUFVd0IwQUhrQWJBQmxBQ2dBYndCd0FIUUFhUUJ2QUc0QUtRQTdBQW9B
SUFBZ0FDQUFJQUFnQUNBQQpJQUFnQUhJQVpRQm1BR3dBWlFCakFIUUFhUUJ2QUc0QUxnQnpBSFFB
ZVFCc0FHVUFMZ0JrQUdrQWNnQmxBR01BZEFCcEFHOEFiZ0FnCkFEMEFJQUJ2QUhBQWRBQnBBRzhB
YmdCVEFIUUFlUUJzQUdVQUxnQmtBR2tBY2dCbEFHTUFkQUJwQUc4QWJnQTdBQW9BSUFBZ0FDQUEK
SUFBZ0FDQUFJQUFnQUhJQVpRQm1BR3dBWlFCakFIUUFhUUJ2QUc0QUxnQnpBSFFBZVFCc0FHVUFM
Z0IxQUc0QWFRQmpBRzhBWkFCbApBRUlBYVFCa0FHa0FJQUE5QUNBQWJ3QndBSFFBYVFCdkFHNEFV
d0IwQUhrQWJBQmxBQzRBZFFCdUFHa0FZd0J2QUdRQVpRQkNBR2tBClpBQnBBRHNBQ2dBZ0FDQUFJ
QUFnQUNBQUlBQWdBQ0FBY2dCbEFHWUFiQUJsQUdNQWRBQnBBRzhBYmdBdUFITUFkQUI1QUd3QVpR
QXUKQUhRQVpRQjRBSFFBUVFCc0FHa0Fad0J1QUNBQVBRQWdBR2NBWlFCMEFFTUFid0J0QUhBQWRR
QjBBR1VBWkFCVEFIUUFlUUJzQUdVQQpLQUJsQUhZQVpRQnVBSFFBTGdCMEFHRUFjZ0JuQUdVQWRB
QXBBQzRBWkFCcEFISUFaUUJqQUhRQWFRQnZBRzRBSUFBOUFEMEFQUUFnCkFDSUFiQUIwQUhJQUln
QWdBRDhBSUFBaUFHd0FaUUJtQUhRQUlnQWdBRG9BSUFBaUFISUFhUUJuQUdnQWRBQWlBRHNBQ2dB
Z0FDQUEKSUFBZ0FIMEFDZ0FLQUNBQUlBQWdBQ0FBWmdCMUFHNEFZd0IwQUdrQWJ3QnVBQ0FBWkFC
cEFISUFaUUJqQUhRQWFRQnZBRzRBUXdCbwpBR0VBYmdCbkFHVUFaQUFvQUdVQWRnQmxBRzRBZEFB
cEFBb0FJQUFnQUNBQUlBQjdBQW9BSUFBZ0FDQUFJQUFnQUNBQUlBQWdBR1FBCmJ3QmpBSFVBYlFC
bEFHNEFkQUF1QUdjQVpRQjBBRVVBYkFCbEFHMEFaUUJ1QUhRQVFnQjVBRWtBWkFBb0FDY0FiUUJs
QUc0QWRRQW4KQUNrQUxnQnpBSFFBZVFCc0FHVUFMZ0JrQUdrQWNnQmxBR01BZEFCcEFHOEFiZ0Fn
QUQwQUlBQmxBSFlBWlFCdUFIUUFMZ0IwQUdFQQpjZ0JuQUdVQWRBQXVBSFlBWVFCc0FIVUFaUUE3
QUFvQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUhJQVpRQm1BR3dBWlFCakFIUUFhUUJ2CkFHNEFMZ0J6
QUhRQWVRQnNBR1VBTGdCMEFHVUFlQUIwQUVFQWJBQnBBR2NBYmdBZ0FEMEFJQUJsQUhZQVpRQnVB
SFFBTGdCMEFHRUEKY2dCbkFHVUFkQUF1QUhZQVlRQnNBSFVBWlFBZ0FEMEFQUUE5QUNBQUlnQnNB
SFFBY2dBaUFDQUFQd0FnQUNJQWJBQmxBR1lBZEFBaQpBQ0FBT2dBZ0FDSUFjZ0JwQUdjQWFBQjBB
Q0lBT3dBS0FDQUFJQUFnQUNBQWZRQUtBRHdBTHdCekFHTUFjZ0JwQUhBQWRBQStBQW89Cgo=
</data>
<flag name="review"
          id="71975"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>