<?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>108168</bug_id>
          
          <creation_ts>2013-01-29 01:24:47 -0800</creation_ts>
          <short_desc>Implement the -webkit-margin-collapse properties correct rendering</short_desc>
          <delta_ts>2013-02-15 02:24:14 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>AdobeTracked</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>104944</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrei Bucur">abucur</reporter>
          <assigned_to name="Andrei Bucur">abucur</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>syoichi</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>818706</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-01-29 01:24:47 -0800</bug_when>
    <thetext>The -webkit-margin-collapse properties were implemented initially to emulate quirks mode for block containers. However, they should be valid for all the situations where margin collapsing can appear (e.g. between block siblings). The values are as follows:
collapse: keep the CSS2.1 box model behaviour for margin collapsing
discard: the margin and any other margin collapsing with it are discarded
separate: the margin will not collapse with another margin, like there&apos;s a non-zero distance between them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822878</commentid>
    <comment_count>1</comment_count>
      <attachid>186064</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-01 09:35:45 -0800</bug_when>
    <thetext>Created attachment 186064
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822881</commentid>
    <comment_count>2</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-01 09:37:46 -0800</bug_when>
    <thetext>The patch needs work like:
- see how I can minimize the use of extra bitfields
- see how it interacts with float clearance
- solve block directionality for SEPARATE as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822882</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 09:38:40 -0800</bug_when>
    <thetext>Attachment 186064 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/fast/block/margin-collapse/webkit-margin-collapse-siblings.html&apos;, u&apos;Source/WebCore/rendering/RenderBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlock.h&apos;, u&apos;Source/WebCore/rendering/style/RenderStyle.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/RenderBlock.cpp:2007:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WebCore/rendering/RenderBlock.cpp:2028:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WebCore/rendering/RenderBlock.cpp:2052:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/WebCore/rendering/RenderBlock.cpp:2054:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/rendering/RenderBlock.cpp:6897:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Source/WebCore/rendering/RenderBlock.cpp:6907:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 6 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822883</commentid>
    <comment_count>4</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-01 09:39:52 -0800</bug_when>
    <thetext>Also, I need to see how to reset the margin computed values when discarding. I guess I need to set them to 0 somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823041</commentid>
    <comment_count>5</comment_count>
      <attachid>186064</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 11:33:04 -0800</bug_when>
    <thetext>Comment on attachment 186064
WIP

Attachment 186064 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16295867

New failing tests:
fast/block/margin-collapse/webkit-margin-collapse-siblings.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823109</commentid>
    <comment_count>6</comment_count>
      <attachid>186064</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 12:11:20 -0800</bug_when>
    <thetext>Comment on attachment 186064
WIP

Attachment 186064 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16306948

New failing tests:
fast/block/margin-collapse/webkit-margin-collapse-siblings.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824452</commentid>
    <comment_count>7</comment_count>
      <attachid>186401</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-04 09:34:49 -0800</bug_when>
    <thetext>Created attachment 186401
WIP v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824680</commentid>
    <comment_count>8</comment_count>
      <attachid>186401</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 13:11:18 -0800</bug_when>
    <thetext>Comment on attachment 186401
WIP v2

Attachment 186401 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16374311

New failing tests:
fast/regions/text-region-split-vertical-rl.html
fast/regions/autoheight-allregions.html
fast/regions/text-region-split-after-resize.html
fast/regions/autoheight-secondregion-breakoutside.html
printing/css2.1/page-break-after-003.html
fast/regions/autoheight-middleregion.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824690</commentid>
    <comment_count>9</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-04 13:16:40 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 186401 [details])
&gt; Attachment 186401 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/16374311
&gt; 
&gt; New failing tests:
&gt; fast/regions/text-region-split-vertical-rl.html
&gt; fast/regions/autoheight-allregions.html
&gt; fast/regions/text-region-split-after-resize.html
&gt; fast/regions/autoheight-secondregion-breakoutside.html
&gt; printing/css2.1/page-break-after-003.html
&gt; fast/regions/autoheight-middleregion.html

This is because forced break after actually works now :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824718</commentid>
    <comment_count>10</comment_count>
      <attachid>186401</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-04 13:48:03 -0800</bug_when>
    <thetext>Comment on attachment 186401
WIP v2

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

r-

&gt; Source/WebCore/rendering/RenderBlock.cpp:1966
&gt; +    childDiscardMarginBefore = childDiscardMarginBefore || (childDiscardMarginAfter &amp;&amp; child-&gt;isSelfCollapsingBlock());

I would store child-&gt;isSelfCollapsingBlock() in a local so that you don&apos;t have to call it multiple times.

&gt; Source/WebCore/rendering/RenderBlock.cpp:2051
&gt; +        // FIXME: Take writing direction into account for SEPARATE.
&gt;          if (child-&gt;style()-&gt;marginBeforeCollapse() == MSEPARATE) {

Good observation. Go ahead and fix it! Just need helper methods.... mustSeparateMarginBeforeForChild... etc.

&gt; Source/WebCore/rendering/RenderBlock.cpp:-2423
&gt; -    // Do not allow a collapse if the margin-before-collapse style is set to SEPARATE.
&gt; -    RenderStyle* childStyle = child-&gt;style();
&gt; -    if (childStyle-&gt;marginBeforeCollapse() == MSEPARATE) {
&gt; -        marginInfo.setAtBeforeSideOfBlock(false);
&gt; -        marginInfo.clearMargin();
&gt; -    }

Where did this code go?

&gt; Source/WebCore/rendering/RenderBlock.h:474
&gt; +            // FIXME: This function doesn&apos;t get called for table cells. Does it matter?

It doesn&apos;t matter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826473</commentid>
    <comment_count>11</comment_count>
      <attachid>186860</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-06 08:26:56 -0800</bug_when>
    <thetext>Created attachment 186860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826474</commentid>
    <comment_count>12</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-06 08:30:04 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=186860) [details]
&gt; Patch

This patch doesn&apos;t include the fix for the after forced break. This one will be submitted for https://bugs.webkit.org/show_bug.cgi?id=104944 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826641</commentid>
    <comment_count>13</comment_count>
      <attachid>186894</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-06 12:31:35 -0800</bug_when>
    <thetext>Created attachment 186894
Patch v2

I forgot some code commented out after an experiment. Fixed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826652</commentid>
    <comment_count>14</comment_count>
      <attachid>186898</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-06 12:39:30 -0800</bug_when>
    <thetext>Created attachment 186898
Patch v3

Ooops... forgot a parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826713</commentid>
    <comment_count>15</comment_count>
      <attachid>186898</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-06 13:33:24 -0800</bug_when>
    <thetext>Comment on attachment 186898
Patch v3

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

r=me

&gt; Source/WebCore/rendering/RenderBlock.cpp:6921
&gt; +bool RenderBlock::mustDiscardMarginBeforeForChild(const RenderBox* child) const

You should probably assert that the child does not need a layout here, since you are asking for a RenderBlock bit that is set by the layout process.  Same for all four of these methods.

&gt; Source/WebCore/rendering/RenderBlock.cpp:6927
&gt; +    if (child-&gt;isHorizontalWritingMode() == isHorizontalWritingMode())
&gt; +        return child-&gt;isRenderBlock() ? toRenderBlock(child)-&gt;mustDiscardMarginAfter() : (child-&gt;style()-&gt;marginAfterCollapse() == MDISCARD);
&gt; +    return false;

This warrants commenting I think. It&apos;s pretty subtle that you just return false for orthogonal blocks. Really the only reason we do so is because the properties are only specified for &quot;before&quot; and &quot;after&quot;. If we did implement physical properties correctly (and this is something I could see us doing), then you would need to check the correct physical side. For now this is correct, though, but I think it warrants a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827311</commentid>
    <comment_count>16</comment_count>
      <attachid>186898</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-07 04:28:04 -0800</bug_when>
    <thetext>Comment on attachment 186898
Patch v3

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

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:6921
&gt;&gt; +bool RenderBlock::mustDiscardMarginBeforeForChild(const RenderBox* child) const
&gt; 
&gt; You should probably assert that the child does not need a layout here, since you are asking for a RenderBlock bit that is set by the layout process.  Same for all four of these methods.

I use this method to estimate the child top position pre-layout. See estimateLogicalTopPosition where I&apos;ve removed the fix-me stating we should also take into account -webkit-margin-collapse. Not sure such an assert could work if I use these methods there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827349</commentid>
    <comment_count>17</comment_count>
      <attachid>186898</attachid>
    <who name="Mihai Maerean">mmaerean</who>
    <bug_when>2013-02-07 05:17:10 -0800</bug_when>
    <thetext>Comment on attachment 186898
Patch v3

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:6923
&gt; +    if (!child-&gt;isWritingModeRoot())

You should assert that the &quot;child&quot; RenderBox is actually a child of &quot;this&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827480</commentid>
    <comment_count>18</comment_count>
      <attachid>187101</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-07 07:15:12 -0800</bug_when>
    <thetext>Created attachment 187101
Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827493</commentid>
    <comment_count>19</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-07 07:24:14 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 186898 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186898&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:6923
&gt; &gt; +    if (!child-&gt;isWritingModeRoot())
&gt; 
&gt; You should assert that the &quot;child&quot; RenderBox is actually a child of &quot;this&quot;.

I don&apos;t think an assertion is necessary. There are many &quot;forChild&quot; functions in WebKit&apos;s layout that don&apos;t have the assertion. In my opinion it would generate a lot of noise that&apos;s unnecessary because if such a mistake occurs it&apos;s easily spotted in a code review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827498</commentid>
    <comment_count>20</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-02-07 07:31:00 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Created an attachment (id=187101) [details]
&gt; Patch v4

I&apos;ve changed a bit how margin estimation is made before the layout for a child. I&apos;ve stopped using the forChild methods in marginBeforeEstimateForChild() because they were relying on the rare data bits which are not cleared at that point.
I&apos;ve added assertions only for selfNeedsLayout() because I need to use the flag value in estimateLogicalTopPosition().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833274</commentid>
    <comment_count>21</comment_count>
      <attachid>187101</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-14 11:34:28 -0800</bug_when>
    <thetext>Comment on attachment 187101
Patch v4

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833824</commentid>
    <comment_count>22</comment_count>
      <attachid>187101</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 02:24:08 -0800</bug_when>
    <thetext>Comment on attachment 187101
Patch v4

Clearing flags on attachment: 187101

Committed r142974: &lt;http://trac.webkit.org/changeset/142974&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833825</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 02:24:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186064</attachid>
            <date>2013-02-01 09:35:45 -0800</date>
            <delta_ts>2013-02-04 09:34:43 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-108168-20130201193226.patch</filename>
            <type>text/plain</type>
            <size>25211</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAppbmRleCBmNGI3MmI1ZDlmZGMzYTlhYzc4NmNlNDM3NTgzYTA1N2E2OGQzMmUy
Li42ZGVlYmUzZjVjOGE5YzRlMzAyYjAzYzBlNDE0OTU5YzFiYTZjMzA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE2OSw2ICsxNjksNyBAQCBSZW5kZXJC
bG9jazo6TWFyZ2luSW5mbzo6TWFyZ2luSW5mbyhSZW5kZXJCbG9jayogYmxvY2ssIExheW91dFVu
aXQgYmVmb3JlQm9yZGVyUAogICAgICwgbV9tYXJnaW5CZWZvcmVRdWlyayhmYWxzZSkKICAgICAs
IG1fbWFyZ2luQWZ0ZXJRdWlyayhmYWxzZSkKICAgICAsIG1fZGV0ZXJtaW5lZE1hcmdpbkJlZm9y
ZVF1aXJrKGZhbHNlKQorICAgICwgbV9kaXNjYXJkTWFyZ2luKGZhbHNlKQogewogICAgIFJlbmRl
clN0eWxlKiBibG9ja1N0eWxlID0gYmxvY2stPnN0eWxlKCk7CiAgICAgQVNTRVJUKGJsb2NrLT5p
c1JlbmRlclZpZXcoKSB8fCBibG9jay0+cGFyZW50KCkpOwpAQCAtMTg2LDExICsxODcsMTIgQEAg
UmVuZGVyQmxvY2s6Ok1hcmdpbkluZm86Ok1hcmdpbkluZm8oUmVuZGVyQmxvY2sqIGJsb2NrLCBM
YXlvdXRVbml0IGJlZm9yZUJvcmRlclAKICAgICBtX2NhbkNvbGxhcHNlTWFyZ2luQWZ0ZXJXaXRo
Q2hpbGRyZW4gPSBtX2NhbkNvbGxhcHNlV2l0aENoaWxkcmVuICYmIChhZnRlckJvcmRlclBhZGRp
bmcgPT0gMCkgJiYKICAgICAgICAgKGJsb2NrU3R5bGUtPmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8o
KSAmJiAhYmxvY2tTdHlsZS0+bG9naWNhbEhlaWdodCgpLnZhbHVlKCkpICYmIGJsb2NrU3R5bGUt
Pm1hcmdpbkFmdGVyQ29sbGFwc2UoKSAhPSBNU0VQQVJBVEU7CiAgICAgCi0gICAgbV9xdWlya0Nv
bnRhaW5lciA9IGJsb2NrLT5pc1RhYmxlQ2VsbCgpIHx8IGJsb2NrLT5pc0JvZHkoKSB8fCBibG9j
a1N0eWxlLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1ESVNDQVJECi0gICAgICAgIHx8IGJs
b2NrU3R5bGUtPm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElTQ0FSRDsKKyAgICBtX3F1aXJr
Q29udGFpbmVyID0gYmxvY2stPmlzVGFibGVDZWxsKCkgfHwgYmxvY2stPmlzQm9keSgpOwogCiAg
ICAgbV9wb3NpdGl2ZU1hcmdpbiA9IG1fY2FuQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoQ2hpbGRy
ZW4gPyBibG9jay0+bWF4UG9zaXRpdmVNYXJnaW5CZWZvcmUoKSA6IExheW91dFVuaXQoKTsKICAg
ICBtX25lZ2F0aXZlTWFyZ2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJl
biA/IGJsb2NrLT5tYXhOZWdhdGl2ZU1hcmdpbkJlZm9yZSgpIDogTGF5b3V0VW5pdCgpOworCisg
ICAgbV9kaXNjYXJkTWFyZ2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJl
biAmJiBibG9jay0+bXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKTsKIH0KIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTUyNiw4ICsxNTI4LDgg
QEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBM
YXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gKICAgICBpZiAoIWlzQ2VsbCkgewogICAgICAgICBp
bml0TWF4TWFyZ2luVmFsdWVzKCk7CiAgICAgICAgIAotICAgICAgICBzZXRNYXJnaW5CZWZvcmVR
dWlyayhzdHlsZVRvVXNlLT5tYXJnaW5CZWZvcmUoKS5xdWlyaygpKTsKLSAgICAgICAgc2V0TWFy
Z2luQWZ0ZXJRdWlyayhzdHlsZVRvVXNlLT5tYXJnaW5BZnRlcigpLnF1aXJrKCkpOworICAgICAg
ICBzZXRNYXJnaW5CZWZvcmVRdWlyayhzdHlsZVRvVXNlLT5pc01hcmdpbkJlZm9yZVF1aXJrKCkp
OworICAgICAgICBzZXRNYXJnaW5BZnRlclF1aXJrKHN0eWxlVG9Vc2UtPmlzTWFyZ2luQWZ0ZXJR
dWlyaygpKTsKICAgICAgICAgc2V0UGFnaW5hdGlvblN0cnV0KDApOwogICAgIH0KIApAQCAtMTk1
Nyw5ICsxOTU5LDE1IEBAIHZvaWQgUmVuZGVyQmxvY2s6Om1vdmVSdW5JblRvT3JpZ2luYWxQb3Np
dGlvbihSZW5kZXJPYmplY3QqIHJ1bkluKQogCiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpjb2xs
YXBzZU1hcmdpbnMoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbykKIHsK
KyAgICBib29sIGNoaWxkRGlzY2FyZE1hcmdpbkJlZm9yZSA9IG11c3REaXNjYXJkTWFyZ2luQmVm
b3JlRm9yQ2hpbGQoY2hpbGQpOworICAgIGJvb2wgY2hpbGREaXNjYXJkTWFyZ2luQWZ0ZXIgPSBt
dXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQoY2hpbGQpOworCiAgICAgLy8gR2V0IHRoZSBm
b3VyIG1hcmdpbiB2YWx1ZXMgZm9yIHRoZSBjaGlsZCBhbmQgY2FjaGUgdGhlbS4KICAgICBjb25z
dCBNYXJnaW5WYWx1ZXMgY2hpbGRNYXJnaW5zID0gbWFyZ2luVmFsdWVzRm9yQ2hpbGQoY2hpbGQp
OwogCisgICAgLy8gVGhlIGNoaWxkIGRpc2NhcmRzIHRoZSBiZWZvcmUgbWFyZ2luIHdoZW4gdGhl
IHRoZSBhZnRlciBtYXJnaW4gaGFzIGRpc2NhcmQgaW4gdGhlIGNhc2Ugb2YgYSBzZWxmIGNvbGxh
cHNpbmcgYmxvY2suCisgICAgY2hpbGREaXNjYXJkTWFyZ2luQmVmb3JlID0gY2hpbGREaXNjYXJk
TWFyZ2luQmVmb3JlIHx8IChjaGlsZERpc2NhcmRNYXJnaW5BZnRlciAmJiBjaGlsZC0+aXNTZWxm
Q29sbGFwc2luZ0Jsb2NrKCkpOworCiAgICAgLy8gR2V0IG91ciBtYXggcG9zIGFuZCBuZWcgdG9w
IG1hcmdpbnMuCiAgICAgTGF5b3V0VW5pdCBwb3NUb3AgPSBjaGlsZE1hcmdpbnMucG9zaXRpdmVN
YXJnaW5CZWZvcmUoKTsKICAgICBMYXlvdXRVbml0IG5lZ1RvcCA9IGNoaWxkTWFyZ2lucy5uZWdh
dGl2ZU1hcmdpbkJlZm9yZSgpOwpAQCAtMTk3Myw2NiArMTk4MSw3NyBAQCBMYXlvdXRVbml0IFJl
bmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5mbyYg
bWFyZ2luSW5mbwogICAgIAogICAgIC8vIFNlZSBpZiB0aGUgdG9wIG1hcmdpbiBpcyBxdWlya3ku
IFdlIG9ubHkgY2FyZSBpZiB0aGlzIGNoaWxkIGhhcwogICAgIC8vIG1hcmdpbnMgdGhhdCB3aWxs
IGNvbGxhcHNlIHdpdGggdXMuCi0gICAgYm9vbCB0b3BRdWlyayA9IGNoaWxkLT5pc01hcmdpbkJl
Zm9yZVF1aXJrKCkgfHwgc3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNRElTQ0FS
RDsKKyAgICBib29sIHRvcFF1aXJrID0gY2hpbGQtPmlzTWFyZ2luQmVmb3JlUXVpcmsoKTsKIAog
ICAgIGlmIChtYXJnaW5JbmZvLmNhbkNvbGxhcHNlV2l0aE1hcmdpbkJlZm9yZSgpKSB7Ci0gICAg
ICAgIC8vIFRoaXMgY2hpbGQgaXMgY29sbGFwc2luZyB3aXRoIHRoZSB0b3Agb2YgdGhlCi0gICAg
ICAgIC8vIGJsb2NrLiAgSWYgaXQgaGFzIGxhcmdlciBtYXJnaW4gdmFsdWVzLCB0aGVuIHdlIG5l
ZWQgdG8gdXBkYXRlCi0gICAgICAgIC8vIG91ciBvd24gbWF4aW1hbCB2YWx1ZXMuCi0gICAgICAg
IGlmICghZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkgfHwgIW1hcmdpbkluZm8ucXVpcmtDb250
YWluZXIoKSB8fCAhdG9wUXVpcmspCi0gICAgICAgICAgICBzZXRNYXhNYXJnaW5CZWZvcmVWYWx1
ZXMobWF4KHBvc1RvcCwgbWF4UG9zaXRpdmVNYXJnaW5CZWZvcmUoKSksIG1heChuZWdUb3AsIG1h
eE5lZ2F0aXZlTWFyZ2luQmVmb3JlKCkpKTsKLQotICAgICAgICAvLyBUaGUgbWludXRlIGFueSBv
ZiB0aGUgbWFyZ2lucyBpbnZvbHZlZCBpc24ndCBhIHF1aXJrLCBkb24ndAotICAgICAgICAvLyBj
b2xsYXBzZSBpdCBhd2F5LCBldmVuIGlmIHRoZSBtYXJnaW4gaXMgc21hbGxlciAod3d3LndlYnJl
ZmVyZW5jZS5jb20KLSAgICAgICAgLy8gaGFzIGFuIGV4YW1wbGUgb2YgdGhpcywgYSA8ZHQ+IHdp
dGggMC44ZW0gYXV0aG9yLXNwZWNpZmllZCBpbnNpZGUKLSAgICAgICAgLy8gYSA8ZGw+IGluc2lk
ZSBhIDx0ZD4uCi0gICAgICAgIGlmICghbWFyZ2luSW5mby5kZXRlcm1pbmVkTWFyZ2luQmVmb3Jl
UXVpcmsoKSAmJiAhdG9wUXVpcmsgJiYgKHBvc1RvcCAtIG5lZ1RvcCkpIHsKLSAgICAgICAgICAg
IHNldE1hcmdpbkJlZm9yZVF1aXJrKGZhbHNlKTsKLSAgICAgICAgICAgIG1hcmdpbkluZm8uc2V0
RGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKHRydWUpOwotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKCFtYXJnaW5JbmZvLmRldGVybWluZWRNYXJnaW5CZWZvcmVRdWlyaygpICYmIHRvcFF1aXJr
ICYmICFtYXJnaW5CZWZvcmUoKSkKLSAgICAgICAgICAgIC8vIFdlIGhhdmUgbm8gdG9wIG1hcmdp
biBhbmQgb3VyIHRvcCBjaGlsZCBoYXMgYSBxdWlya3kgbWFyZ2luLgotICAgICAgICAgICAgLy8g
V2Ugd2lsbCBwaWNrIHVwIHRoaXMgcXVpcmt5IG1hcmdpbiBhbmQgcGFzcyBpdCB0aHJvdWdoLgot
ICAgICAgICAgICAgLy8gVGhpcyBkZWFscyB3aXRoIHRoZSA8dGQ+PGRpdj48cD4gY2FzZS4KLSAg
ICAgICAgICAgIC8vIERvbid0IGRvIHRoaXMgZm9yIGEgYmxvY2sgdGhhdCBzcGxpdCB0d28gaW5s
aW5lcyB0aG91Z2guICBZb3UgZG8KLSAgICAgICAgICAgIC8vIHN0aWxsIGFwcGx5IG1hcmdpbnMg
aW4gdGhpcyBjYXNlLgotICAgICAgICAgICAgc2V0TWFyZ2luQmVmb3JlUXVpcmsodHJ1ZSk7Cisg
ICAgICAgIGlmICghY2hpbGREaXNjYXJkTWFyZ2luQmVmb3JlICYmICFtYXJnaW5JbmZvLmRpc2Nh
cmRNYXJnaW4oKSkgeworICAgICAgICAgICAgLy8gVGhpcyBjaGlsZCBpcyBjb2xsYXBzaW5nIHdp
dGggdGhlIHRvcCBvZiB0aGUKKyAgICAgICAgICAgIC8vIGJsb2NrLiBJZiBpdCBoYXMgbGFyZ2Vy
IG1hcmdpbiB2YWx1ZXMsIHRoZW4gd2UgbmVlZCB0byB1cGRhdGUKKyAgICAgICAgICAgIC8vIG91
ciBvd24gbWF4aW1hbCB2YWx1ZXMuCisgICAgICAgICAgICBpZiAoIWRvY3VtZW50KCktPmluUXVp
cmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgfHwgIXRvcFF1aXJrKQor
ICAgICAgICAgICAgICAgIHNldE1heE1hcmdpbkJlZm9yZVZhbHVlcyhtYXgocG9zVG9wLCBtYXhQ
b3NpdGl2ZU1hcmdpbkJlZm9yZSgpKSwgbWF4KG5lZ1RvcCwgbWF4TmVnYXRpdmVNYXJnaW5CZWZv
cmUoKSkpOworCisgICAgICAgICAgICAvLyBUaGUgbWludXRlIGFueSBvZiB0aGUgbWFyZ2lucyBp
bnZvbHZlZCBpc24ndCBhIHF1aXJrLCBkb24ndAorICAgICAgICAgICAgLy8gY29sbGFwc2UgaXQg
YXdheSwgZXZlbiBpZiB0aGUgbWFyZ2luIGlzIHNtYWxsZXIgKHd3dy53ZWJyZWZlcmVuY2UuY29t
CisgICAgICAgICAgICAvLyBoYXMgYW4gZXhhbXBsZSBvZiB0aGlzLCBhIDxkdD4gd2l0aCAwLjhl
bSBhdXRob3Itc3BlY2lmaWVkIGluc2lkZQorICAgICAgICAgICAgLy8gYSA8ZGw+IGluc2lkZSBh
IDx0ZD4uCisgICAgICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGV0ZXJtaW5lZE1hcmdpbkJlZm9y
ZVF1aXJrKCkgJiYgIXRvcFF1aXJrICYmIChwb3NUb3AgLSBuZWdUb3ApKSB7CisgICAgICAgICAg
ICAgICAgc2V0TWFyZ2luQmVmb3JlUXVpcmsoZmFsc2UpOworICAgICAgICAgICAgICAgIG1hcmdp
bkluZm8uc2V0RGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKHRydWUpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1
aXJrKCkgJiYgdG9wUXVpcmsgJiYgIW1hcmdpbkJlZm9yZSgpKQorICAgICAgICAgICAgICAgIC8v
IFdlIGhhdmUgbm8gdG9wIG1hcmdpbiBhbmQgb3VyIHRvcCBjaGlsZCBoYXMgYSBxdWlya3kgbWFy
Z2luLgorICAgICAgICAgICAgICAgIC8vIFdlIHdpbGwgcGljayB1cCB0aGlzIHF1aXJreSBtYXJn
aW4gYW5kIHBhc3MgaXQgdGhyb3VnaC4KKyAgICAgICAgICAgICAgICAvLyBUaGlzIGRlYWxzIHdp
dGggdGhlIDx0ZD48ZGl2PjxwPiBjYXNlLgorICAgICAgICAgICAgICAgIC8vIERvbid0IGRvIHRo
aXMgZm9yIGEgYmxvY2sgdGhhdCBzcGxpdCB0d28gaW5saW5lcyB0aG91Z2guICBZb3UgZG8KKyAg
ICAgICAgICAgICAgICAvLyBzdGlsbCBhcHBseSBtYXJnaW5zIGluIHRoaXMgY2FzZS4KKyAgICAg
ICAgICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayh0cnVlKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAvLyBUaGUgYmVmb3JlIG1hcmdpbiBvZiB0aGUgY29udGFpbmVyIHdpbGwgYWxz
byBkaXNjYXJkIGFsbCB0aGUgbWFyZ2lucyBpdCBpcyBjb2xsYXBzaW5nIHdpdGguCisgICAgICAg
ICAgICBzZXRNdXN0RGlzY2FyZE1hcmdpbkJlZm9yZSgpOwogICAgIH0KIAorICAgIC8vIE9uY2Ug
d2UgZmluZCBhIGNoaWxkIHdpdGggZGlzY2FyZE1hcmdpbkJlZm9yZSBhbGwgdGhlIG1hcmdpbnMg
Y29sbGFwc2luZyB3aXRoIHVzIG11c3QgYWxzbyBkaXNjYXJkLiAKKyAgICBpZiAoY2hpbGREaXNj
YXJkTWFyZ2luQmVmb3JlKQorICAgICAgICBtYXJnaW5JbmZvLnNldERpc2NhcmRNYXJnaW4odHJ1
ZSk7CisKICAgICBpZiAobWFyZ2luSW5mby5xdWlya0NvbnRhaW5lcigpICYmIG1hcmdpbkluZm8u
YXRCZWZvcmVTaWRlT2ZCbG9jaygpICYmIChwb3NUb3AgLSBuZWdUb3ApKQogICAgICAgICBtYXJn
aW5JbmZvLnNldE1hcmdpbkJlZm9yZVF1aXJrKHRvcFF1aXJrKTsKIAogICAgIExheW91dFVuaXQg
YmVmb3JlQ29sbGFwc2VMb2dpY2FsVG9wID0gbG9naWNhbEhlaWdodCgpOwogICAgIExheW91dFVu
aXQgbG9naWNhbFRvcCA9IGJlZm9yZUNvbGxhcHNlTG9naWNhbFRvcDsKICAgICBpZiAoY2hpbGQt
PmlzU2VsZkNvbGxhcHNpbmdCbG9jaygpKSB7Ci0gICAgICAgIC8vIFRoaXMgY2hpbGQgaGFzIG5v
IGhlaWdodC4gIFdlIG5lZWQgdG8gY29tcHV0ZSBvdXIKLSAgICAgICAgLy8gcG9zaXRpb24gYmVm
b3JlIHdlIGNvbGxhcHNlIHRoZSBjaGlsZCdzIG1hcmdpbnMgdG9nZXRoZXIsCi0gICAgICAgIC8v
IHNvIHRoYXQgd2UgY2FuIGdldCBhbiBhY2N1cmF0ZSBwb3NpdGlvbiBmb3IgdGhlIHplcm8taGVp
Z2h0IGJsb2NrLgotICAgICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZVBvcyA9IG1heCht
YXJnaW5JbmZvLnBvc2l0aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkJl
Zm9yZSgpKTsKLSAgICAgICAgTGF5b3V0VW5pdCBjb2xsYXBzZWRCZWZvcmVOZWcgPSBtYXgobWFy
Z2luSW5mby5uZWdhdGl2ZU1hcmdpbigpLCBjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJnaW5CZWZv
cmUoKSk7Ci0gICAgICAgIG1hcmdpbkluZm8uc2V0TWFyZ2luKGNvbGxhcHNlZEJlZm9yZVBvcywg
Y29sbGFwc2VkQmVmb3JlTmVnKTsKLSAgICAgICAgCi0gICAgICAgIC8vIE5vdyBjb2xsYXBzZSB0
aGUgY2hpbGQncyBtYXJnaW5zIHRvZ2V0aGVyLCB3aGljaCBtZWFucyBleGFtaW5pbmcgb3VyCi0g
ICAgICAgIC8vIGJvdHRvbSBtYXJnaW4gdmFsdWVzIGFzIHdlbGwuIAotICAgICAgICBtYXJnaW5J
bmZvLnNldFBvc2l0aXZlTWFyZ2luSWZMYXJnZXIoY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2lu
QWZ0ZXIoKSk7Ci0gICAgICAgIG1hcmdpbkluZm8uc2V0TmVnYXRpdmVNYXJnaW5JZkxhcmdlcihj
aGlsZE1hcmdpbnMubmVnYXRpdmVNYXJnaW5BZnRlcigpKTsKLQotICAgICAgICBpZiAoIW1hcmdp
bkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVmb3JlKCkpCi0gICAgICAgICAgICAvLyBXZSBu
ZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwb3NpdGlvbiBvZiB0aGUgc2VsZi1jb2xsYXBzaW5n
IGJsb2NrCi0gICAgICAgICAgICAvLyBpcyBjb3JyZWN0LCBzaW5jZSBpdCBjb3VsZCBoYXZlIG92
ZXJmbG93aW5nIGNvbnRlbnQKLSAgICAgICAgICAgIC8vIHRoYXQgbmVlZHMgdG8gYmUgcG9zaXRp
b25lZCBjb3JyZWN0bHkgKGUuZy4sIGEgYmxvY2sgdGhhdAotICAgICAgICAgICAgLy8gaGFkIGEg
c3BlY2lmaWVkIGhlaWdodCBvZiAwIGJ1dCB0aGF0IGFjdHVhbGx5IGhhZCBzdWJjb250ZW50KS4K
LSAgICAgICAgICAgIGxvZ2ljYWxUb3AgPSBsb2dpY2FsSGVpZ2h0KCkgKyBjb2xsYXBzZWRCZWZv
cmVQb3MgLSBjb2xsYXBzZWRCZWZvcmVOZWc7Ci0gICAgfQotICAgIGVsc2UgeworICAgICAgICAv
LyBGb3IgYSBzZWxmIGNvbGxhcHNpbmcgYmxvY2sgYm90aCB0aGUgYmVmb3JlIGFuZCBhZnRlciBt
YXJnaW5zIGdldCBkaXNjYXJkZWQuIFRoZSBibG9jayBkb2Vzbid0IGNvbnRyaWJ1dGUgYW55dGhp
bmcgdG8gdGhlIGhlaWdodCBvZiB0aGUgYmxvY2suCisgICAgICAgIC8vIEFsc28sIHRoZSBjaGls
ZCdzIHRvcCBwb3NpdGlvbiBlcXVhbHMgdGhlIGxvZ2ljYWwgaGVpZ2h0IG9mIHRoZSBjb250YWlu
ZXIuCisgICAgICAgIGlmICghY2hpbGREaXNjYXJkTWFyZ2luQmVmb3JlICYmICFtYXJnaW5JbmZv
LmRpc2NhcmRNYXJnaW4oKSkgeworICAgICAgICAgICAgLy8gVGhpcyBjaGlsZCBoYXMgbm8gaGVp
Z2h0LiAgV2UgbmVlZCB0byBjb21wdXRlIG91cgorICAgICAgICAgICAgLy8gcG9zaXRpb24gYmVm
b3JlIHdlIGNvbGxhcHNlIHRoZSBjaGlsZCdzIG1hcmdpbnMgdG9nZXRoZXIsCisgICAgICAgICAg
ICAvLyBzbyB0aGF0IHdlIGNhbiBnZXQgYW4gYWNjdXJhdGUgcG9zaXRpb24gZm9yIHRoZSB6ZXJv
LWhlaWdodCBibG9jay4KKyAgICAgICAgICAgIExheW91dFVuaXQgY29sbGFwc2VkQmVmb3JlUG9z
ID0gbWF4KG1hcmdpbkluZm8ucG9zaXRpdmVNYXJnaW4oKSwgY2hpbGRNYXJnaW5zLnBvc2l0aXZl
TWFyZ2luQmVmb3JlKCkpOworICAgICAgICAgICAgTGF5b3V0VW5pdCBjb2xsYXBzZWRCZWZvcmVO
ZWcgPSBtYXgobWFyZ2luSW5mby5uZWdhdGl2ZU1hcmdpbigpLCBjaGlsZE1hcmdpbnMubmVnYXRp
dmVNYXJnaW5CZWZvcmUoKSk7CisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldE1hcmdpbihjb2xs
YXBzZWRCZWZvcmVQb3MsIGNvbGxhcHNlZEJlZm9yZU5lZyk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIC8vIE5vdyBjb2xsYXBzZSB0aGUgY2hpbGQncyBtYXJnaW5zIHRvZ2V0aGVyLCB3aGlj
aCBtZWFucyBleGFtaW5pbmcgb3VyCisgICAgICAgICAgICAvLyBib3R0b20gbWFyZ2luIHZhbHVl
cyBhcyB3ZWxsLiAKKyAgICAgICAgICAgIG1hcmdpbkluZm8uc2V0UG9zaXRpdmVNYXJnaW5JZkxh
cmdlcihjaGlsZE1hcmdpbnMucG9zaXRpdmVNYXJnaW5BZnRlcigpKTsKKyAgICAgICAgICAgIG1h
cmdpbkluZm8uc2V0TmVnYXRpdmVNYXJnaW5JZkxhcmdlcihjaGlsZE1hcmdpbnMubmVnYXRpdmVN
YXJnaW5BZnRlcigpKTsKKworICAgICAgICAgICAgaWYgKCFtYXJnaW5JbmZvLmNhbkNvbGxhcHNl
V2l0aE1hcmdpbkJlZm9yZSgpKQorICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBz
dXJlIHRoYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWxmLWNvbGxhcHNpbmcgYmxvY2sKKyAgICAg
ICAgICAgICAgICAvLyBpcyBjb3JyZWN0LCBzaW5jZSBpdCBjb3VsZCBoYXZlIG92ZXJmbG93aW5n
IGNvbnRlbnQKKyAgICAgICAgICAgICAgICAvLyB0aGF0IG5lZWRzIHRvIGJlIHBvc2l0aW9uZWQg
Y29ycmVjdGx5IChlLmcuLCBhIGJsb2NrIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBoYWQgYSBz
cGVjaWZpZWQgaGVpZ2h0IG9mIDAgYnV0IHRoYXQgYWN0dWFsbHkgaGFkIHN1YmNvbnRlbnQpLgor
ICAgICAgICAgICAgICAgIGxvZ2ljYWxUb3AgPSBsb2dpY2FsSGVpZ2h0KCkgKyBjb2xsYXBzZWRC
ZWZvcmVQb3MgLSBjb2xsYXBzZWRCZWZvcmVOZWc7CisgICAgICAgIH0KKyAgICB9IGVsc2Ugewor
ICAgICAgICAvLyBGSVhNRTogVGFrZSB3cml0aW5nIGRpcmVjdGlvbiBpbnRvIGFjY291bnQuCiAg
ICAgICAgIGlmIChjaGlsZC0+c3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNU0VQ
QVJBVEUpIHsKICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsg
bWFyZ2luSW5mby5tYXJnaW4oKSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkKSk7CiAgICAg
ICAgICAgICBsb2dpY2FsVG9wID0gbG9naWNhbEhlaWdodCgpOwotICAgICAgICB9Ci0gICAgICAg
IGVsc2UgaWYgKCFtYXJnaW5JbmZvLmF0QmVmb3JlU2lkZU9mQmxvY2soKSB8fAorICAgICAgICB9
IGVsc2UgaWYgKCFtYXJnaW5JbmZvLmRpc2NhcmRNYXJnaW4oKSAmJiAoIW1hcmdpbkluZm8uYXRC
ZWZvcmVTaWRlT2ZCbG9jaygpIHx8CiAgICAgICAgICAgICAoIW1hcmdpbkluZm8uY2FuQ29sbGFw
c2VNYXJnaW5CZWZvcmVXaXRoQ2hpbGRyZW4oKQotICAgICAgICAgICAgICYmICghZG9jdW1lbnQo
KS0+aW5RdWlya3NNb2RlKCkgfHwgIW1hcmdpbkluZm8ucXVpcmtDb250YWluZXIoKSB8fCAhbWFy
Z2luSW5mby5tYXJnaW5CZWZvcmVRdWlyaygpKSkpIHsKKyAgICAgICAgICAgICAmJiAoIWRvY3Vt
ZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgfHwg
IW1hcmdpbkluZm8ubWFyZ2luQmVmb3JlUXVpcmsoKSkpKSkgewogICAgICAgICAgICAgLy8gV2Un
cmUgY29sbGFwc2luZyB3aXRoIGEgcHJldmlvdXMgc2libGluZydzIG1hcmdpbnMgYW5kIG5vdAog
ICAgICAgICAgICAgLy8gd2l0aCB0aGUgdG9wIG9mIHRoZSBibG9jay4KICAgICAgICAgICAgIHNl
dExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbWF4KG1hcmdpbkluZm8ucG9zaXRpdmVN
YXJnaW4oKSwgcG9zVG9wKSAtIG1heChtYXJnaW5JbmZvLm5lZ2F0aXZlTWFyZ2luKCksIG5lZ1Rv
cCkpOwpAQCAtMjA0Myw3ICsyMDYyLDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6Y29sbGFw
c2VNYXJnaW5zKFJlbmRlckJveCogY2hpbGQsIE1hcmdpbkluZm8mIG1hcmdpbkluZm8KICAgICAg
ICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdpbihjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJn
aW5BZnRlcigpKTsKIAogICAgICAgICBpZiAobWFyZ2luSW5mby5tYXJnaW4oKSkKLSAgICAgICAg
ICAgIG1hcmdpbkluZm8uc2V0TWFyZ2luQWZ0ZXJRdWlyayhjaGlsZC0+aXNNYXJnaW5BZnRlclF1
aXJrKCkgfHwgc3R5bGUoKS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1ESVNDQVJEKTsKKyAg
ICAgICAgICAgIG1hcmdpbkluZm8uc2V0TWFyZ2luQWZ0ZXJRdWlyayhjaGlsZC0+aXNNYXJnaW5B
ZnRlclF1aXJrKCkpOworCisgICAgICAgIG1hcmdpbkluZm8uc2V0RGlzY2FyZE1hcmdpbihjaGls
ZERpc2NhcmRNYXJnaW5BZnRlcik7CiAgICAgfQogICAgIAogICAgIC8vIElmIG1hcmdpbnMgd291
bGQgcHVsbCB1cyBwYXN0IHRoZSB0b3Agb2YgdGhlIG5leHQgcGFnZSwgdGhlbiB3ZSBuZWVkIHRv
IHB1bGwgYmFjayBhbmQgcHJldGVuZCBsaWtlIHRoZSBtYXJnaW5zCkBAIC0yMTYzLDggKzIxODQs
OCBAQCB2b2lkIFJlbmRlckJsb2NrOjptYXJnaW5CZWZvcmVFc3RpbWF0ZUZvckNoaWxkKFJlbmRl
ckJveCogY2hpbGQsIExheW91dFVuaXQmIHBvcwogICAgIC8vIE1ha2Ugc3VyZSB0byB1cGRhdGUg
dGhlIGJsb2NrIG1hcmdpbnMgbm93IGZvciB0aGUgZ3JhbmRjaGlsZCBib3ggc28gdGhhdCB3ZSdy
ZSBsb29raW5nIGF0IGN1cnJlbnQgdmFsdWVzLgogICAgIGlmIChncmFuZGNoaWxkQm94LT5uZWVk
c0xheW91dCgpKSB7CiAgICAgICAgIGdyYW5kY2hpbGRCb3gtPmNvbXB1dGVBbmRTZXRCbG9ja0Rp
cmVjdGlvbk1hcmdpbnModGhpcyk7Ci0gICAgICAgIGdyYW5kY2hpbGRCb3gtPnNldE1hcmdpbkJl
Zm9yZVF1aXJrKGdyYW5kY2hpbGRCb3gtPnN0eWxlKCktPm1hcmdpbkJlZm9yZSgpLnF1aXJrKCkp
OwotICAgICAgICBncmFuZGNoaWxkQm94LT5zZXRNYXJnaW5BZnRlclF1aXJrKGdyYW5kY2hpbGRC
b3gtPnN0eWxlKCktPm1hcmdpbkFmdGVyKCkucXVpcmsoKSk7CisgICAgICAgIGdyYW5kY2hpbGRC
b3gtPnNldE1hcmdpbkJlZm9yZVF1aXJrKGdyYW5kY2hpbGRCb3gtPnN0eWxlKCktPmlzTWFyZ2lu
QmVmb3JlUXVpcmsoKSk7CisgICAgICAgIGdyYW5kY2hpbGRCb3gtPnNldE1hcmdpbkFmdGVyUXVp
cmsoZ3JhbmRjaGlsZEJveC0+c3R5bGUoKS0+aXNNYXJnaW5BZnRlclF1aXJrKCkpOwogICAgIH0K
IAogICAgIC8vIENvbGxhcHNlIHRoZSBtYXJnaW4gb2YgdGhlIGdyYW5kY2hpbGQgYm94IHdpdGgg
b3VyIG93biB0byBwcm9kdWNlIGFuIGVzdGltYXRlLgpAQCAtMjE3OSw2ICsyMjAwLDcgQEAgTGF5
b3V0VW5pdCBSZW5kZXJCbG9jazo6ZXN0aW1hdGVMb2dpY2FsVG9wUG9zaXRpb24oUmVuZGVyQm94
KiBjaGlsZCwgY29uc3QgTWFyZ2kKICAgICBpZiAoIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRo
TWFyZ2luQmVmb3JlKCkpIHsKICAgICAgICAgTGF5b3V0VW5pdCBwb3NpdGl2ZU1hcmdpbkJlZm9y
ZSA9IDA7CiAgICAgICAgIExheW91dFVuaXQgbmVnYXRpdmVNYXJnaW5CZWZvcmUgPSAwOworICAg
ICAgICBib29sIGRpc2NhcmRNYXJnaW5CZWZvcmUgPSBtdXN0RGlzY2FyZE1hcmdpbkJlZm9yZUZv
ckNoaWxkKGNoaWxkKTsKICAgICAgICAgaWYgKGNoaWxkLT5zZWxmTmVlZHNMYXlvdXQoKSkgewog
ICAgICAgICAgICAgLy8gVHJ5IHRvIGRvIGEgYmFzaWMgZXN0aW1hdGlvbiBvZiBob3cgdGhlIGNv
bGxhcHNlIGlzIGdvaW5nIHRvIGdvLgogICAgICAgICAgICAgbWFyZ2luQmVmb3JlRXN0aW1hdGVG
b3JDaGlsZChjaGlsZCwgcG9zaXRpdmVNYXJnaW5CZWZvcmUsIG5lZ2F0aXZlTWFyZ2luQmVmb3Jl
KTsKQEAgLTIxOTEsNyArMjIxMyw4IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmVzdGltYXRl
TG9naWNhbFRvcFBvc2l0aW9uKFJlbmRlckJveCogY2hpbGQsIGNvbnN0IE1hcmdpCiAgICAgICAg
IH0KIAogICAgICAgICAvLyBDb2xsYXBzZSB0aGUgcmVzdWx0IHdpdGggb3VyIGN1cnJlbnQgbWFy
Z2lucy4KLSAgICAgICAgbG9naWNhbFRvcEVzdGltYXRlICs9IG1heChtYXJnaW5JbmZvLnBvc2l0
aXZlTWFyZ2luKCksIHBvc2l0aXZlTWFyZ2luQmVmb3JlKSAtIG1heChtYXJnaW5JbmZvLm5lZ2F0
aXZlTWFyZ2luKCksIG5lZ2F0aXZlTWFyZ2luQmVmb3JlKTsKKyAgICAgICAgaWYgKCFkaXNjYXJk
TWFyZ2luQmVmb3JlKQorICAgICAgICAgICAgbG9naWNhbFRvcEVzdGltYXRlICs9IG1heChtYXJn
aW5JbmZvLnBvc2l0aXZlTWFyZ2luKCksIHBvc2l0aXZlTWFyZ2luQmVmb3JlKSAtIG1heChtYXJn
aW5JbmZvLm5lZ2F0aXZlTWFyZ2luKCksIG5lZ2F0aXZlTWFyZ2luQmVmb3JlKTsKICAgICB9CiAK
ICAgICAvLyBBZGp1c3QgbG9naWNhbFRvcEVzdGltYXRlIGRvd24gdG8gdGhlIG5leHQgcGFnZSBp
ZiB0aGUgbWFyZ2lucyBhcmUgc28gbGFyZ2UgdGhhdCB3ZSBkb24ndCBmaXQgb24gdGhlIGN1cnJl
bnQKQEAgLTIyNjYsNiArMjI4OSwxMyBAQCB2b2lkIFJlbmRlckJsb2NrOjpkZXRlcm1pbmVMb2dp
Y2FsTGVmdFBvc2l0aW9uRm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCkKIHZvaWQgUmVuZGVyQmxv
Y2s6OnNldENvbGxhcHNlZEJvdHRvbU1hcmdpbihjb25zdCBNYXJnaW5JbmZvJiBtYXJnaW5JbmZv
KQogewogICAgIGlmIChtYXJnaW5JbmZvLmNhbkNvbGxhcHNlV2l0aE1hcmdpbkFmdGVyKCkgJiYg
IW1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVmb3JlKCkpIHsKKyAgICAgICAgLy8g
VXBkYXRlIHRoZSBhZnRlciBzaWRlIG1hcmdpbiBvZiB0aGUgY29udGFpbmVyIHRvIGRpc2NhcmQg
aWYgdGhlIGFmdGVyIG1hcmdpbiBvZiB0aGUgbGFzdCBjaGlsZCBhbHNvIGRpc2NhcmRzIGFuZCB3
ZSBjb2xsYXBzZSB3aXRoIGl0LgorICAgICAgICAvLyBEb24ndCB1cGRhdGUgdGhlIG1heCBtYXJn
aW4gdmFsdWVzIGJlY2F1c2Ugd2Ugd29uJ3QgbmVlZCB0aGVtIGFueXdheS4KKyAgICAgICAgaWYg
KG1hcmdpbkluZm8uZGlzY2FyZE1hcmdpbigpKSB7CisgICAgICAgICAgICBzZXRNdXN0RGlzY2Fy
ZE1hcmdpbkFmdGVyKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAg
ICAvLyBVcGRhdGUgb3VyIG1heCBwb3MvbmVnIGJvdHRvbSBtYXJnaW5zLCBzaW5jZSB3ZSBjb2xs
YXBzZWQgb3VyIGJvdHRvbSBtYXJnaW5zCiAgICAgICAgIC8vIHdpdGggb3VyIGNoaWxkcmVuLgog
ICAgICAgICBzZXRNYXhNYXJnaW5BZnRlclZhbHVlcyhtYXgobWF4UG9zaXRpdmVNYXJnaW5BZnRl
cigpLCBtYXJnaW5JbmZvLnBvc2l0aXZlTWFyZ2luKCkpLCBtYXgobWF4TmVnYXRpdmVNYXJnaW5B
ZnRlcigpLCBtYXJnaW5JbmZvLm5lZ2F0aXZlTWFyZ2luKCkpKTsKQEAgLTIyODgsOSArMjMxOCw5
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmhhbmRsZUFmdGVyU2lkZU9mQmxvY2soTGF5b3V0VW5pdCBi
ZWZvcmVTaWRlLCBMYXlvdXRVbml0IGFmdGVyCiAgICAgLy8gSWYgd2UgY2FuJ3QgY29sbGFwc2Ug
d2l0aCBjaGlsZHJlbiB0aGVuIGdvIGFoZWFkIGFuZCBhZGQgaW4gdGhlIGJvdHRvbSBtYXJnaW4u
CiAgICAgLy8gRG9uJ3QgZG8gdGhpcyBmb3Igb3JkaW5hcnkgYW5vbnltb3VzIGJsb2NrcyBhcyBv
bmx5IHRoZSBlbmNsb3NpbmcgYm94IHNob3VsZCBhZGQgaW4KICAgICAvLyBpdHMgbWFyZ2luLgot
ICAgIGlmICghbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5BZnRlcigpICYmICFtYXJn
aW5JbmZvLmNhbkNvbGxhcHNlV2l0aE1hcmdpbkJlZm9yZSgpCisgICAgaWYgKCFtYXJnaW5JbmZv
LmRpc2NhcmRNYXJnaW4oKSAmJiAoIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2luQWZ0
ZXIoKSAmJiAhbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKQogICAgICAg
ICAmJiAoIWlzQW5vbnltb3VzQmxvY2soKSB8fCBpc0Fub255bW91c0NvbHVtbnNCbG9jaygpIHx8
IGlzQW5vbnltb3VzQ29sdW1uU3BhbkJsb2NrKCkpCi0gICAgICAgICYmICghZG9jdW1lbnQoKS0+
aW5RdWlya3NNb2RlKCkgfHwgIW1hcmdpbkluZm8ucXVpcmtDb250YWluZXIoKSB8fCAhbWFyZ2lu
SW5mby5tYXJnaW5BZnRlclF1aXJrKCkpKQorICAgICAgICAmJiAoIWRvY3VtZW50KCktPmluUXVp
cmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8u
bWFyZ2luQWZ0ZXJRdWlyaygpKSkpCiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhl
aWdodCgpICsgbWFyZ2luSW5mby5tYXJnaW4oKSk7CiAgICAgICAgIAogICAgIC8vIE5vdyBhZGQg
aW4gb3VyIGJvdHRvbSBib3JkZXIvcGFkZGluZy4KQEAgLTY4MzAsNiArNjg2MCw1OCBAQCB2b2lk
IFJlbmRlckJsb2NrOjpzZXRNYXhNYXJnaW5BZnRlclZhbHVlcyhMYXlvdXRVbml0IHBvcywgTGF5
b3V0VW5pdCBuZWcpCiAgICAgbV9yYXJlRGF0YS0+bV9tYXJnaW5zLnNldE5lZ2F0aXZlTWFyZ2lu
QWZ0ZXIobmVnKTsKIH0KIAordm9pZCBSZW5kZXJCbG9jazo6c2V0TXVzdERpc2NhcmRNYXJnaW5C
ZWZvcmUoKQoreworICAgIGlmIChzdHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1E
SVNDQVJEKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fcmFyZURhdGEpCisgICAgICAg
IG1fcmFyZURhdGEgPSBhZG9wdFB0cihuZXcgUmVuZGVyQmxvY2tSYXJlRGF0YSh0aGlzKSk7CisK
KyAgICBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJnaW5CZWZvcmUgPSB0cnVlOworfQorCit2b2lk
IFJlbmRlckJsb2NrOjpzZXRNdXN0RGlzY2FyZE1hcmdpbkFmdGVyKCkKK3sKKyAgICBpZiAoc3R5
bGUoKS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1ESVNDQVJEKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoIW1fcmFyZURhdGEpCisgICAgICAgIG1fcmFyZURhdGEgPSBhZG9wdFB0cihu
ZXcgUmVuZGVyQmxvY2tSYXJlRGF0YSh0aGlzKSk7CisKKyAgICBtX3JhcmVEYXRhLT5tX2Rpc2Nh
cmRNYXJnaW5BZnRlciA9IHRydWU7Cit9CisKK2Jvb2wgUmVuZGVyQmxvY2s6Om11c3REaXNjYXJk
TWFyZ2luQmVmb3JlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3R5bGUoKS0+bWFyZ2luQmVmb3Jl
Q29sbGFwc2UoKSA9PSBNRElTQ0FSRCB8fCAobV9yYXJlRGF0YSAmJiBtX3JhcmVEYXRhLT5tX2Rp
c2NhcmRNYXJnaW5CZWZvcmUpOworfQorCitib29sIFJlbmRlckJsb2NrOjptdXN0RGlzY2FyZE1h
cmdpbkFmdGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3R5bGUoKS0+bWFyZ2luQWZ0ZXJDb2xs
YXBzZSgpID09IE1ESVNDQVJEIHx8IChtX3JhcmVEYXRhICYmIG1fcmFyZURhdGEtPm1fZGlzY2Fy
ZE1hcmdpbkFmdGVyKTsKK30KKworYm9vbCBSZW5kZXJCbG9jazo6bXVzdERpc2NhcmRNYXJnaW5C
ZWZvcmVGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdAoreworICAgIGlmICgh
Y2hpbGQtPmlzV3JpdGluZ01vZGVSb290KCkpCisgICAgICAgIHJldHVybiBjaGlsZC0+aXNSZW5k
ZXJCbG9jaygpID8gdG9SZW5kZXJCbG9jayhjaGlsZCktPm11c3REaXNjYXJkTWFyZ2luQmVmb3Jl
KCkgOiAoY2hpbGQtPnN0eWxlKCktPm1hcmdpbkJlZm9yZUNvbGxhcHNlKCkgPT0gTURJU0NBUkQp
OworICAgIGVsc2UgaWYgKGNoaWxkLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID09IGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHJldHVybiBjaGlsZC0+aXNSZW5kZXJCbG9j
aygpID8gdG9SZW5kZXJCbG9jayhjaGlsZCktPm11c3REaXNjYXJkTWFyZ2luQWZ0ZXIoKSA6IChj
aGlsZC0+c3R5bGUoKS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1ESVNDQVJEKTsKKworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBSZW5kZXJCbG9jazo6bXVzdERpc2NhcmRNYXJnaW5B
ZnRlckZvckNoaWxkKGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0Cit7CisgICAgaWYgKCFj
aGlsZC0+aXNXcml0aW5nTW9kZVJvb3QoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkLT5pc1JlbmRl
ckJsb2NrKCkgPyB0b1JlbmRlckJsb2NrKGNoaWxkKS0+bXVzdERpc2NhcmRNYXJnaW5BZnRlcigp
IDogKGNoaWxkLT5zdHlsZSgpLT5tYXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTURJU0NBUkQpOwor
ICAgIGVsc2UgaWYgKGNoaWxkLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID09IGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHJldHVybiBjaGlsZC0+aXNSZW5kZXJCbG9jaygp
ID8gdG9SZW5kZXJCbG9jayhjaGlsZCktPm11c3REaXNjYXJkTWFyZ2luQmVmb3JlKCkgOiAoY2hp
bGQtPnN0eWxlKCktPm1hcmdpbkJlZm9yZUNvbGxhcHNlKCkgPT0gTURJU0NBUkQpOworCisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFJlbmRlckJsb2NrOjpzZXRQYWdpbmF0aW9uU3RydXQo
TGF5b3V0VW5pdCBzdHJ1dCkKIHsKICAgICBpZiAoIW1fcmFyZURhdGEpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggMWVkMjExY2U4MzhmZDNlNjMzNTE0MmYzMTcw
ZGUxNmU4NTk3MmQ3ZC4uMTQ0M2QwOGIyNDY0N2VkOTJjNGEwZDVmNDQ3ZDY5ZWM1YTFlZGRmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTQ1NSwxMiArNDU1LDI1
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldE1heE1hcmdpbkJlZm9yZVZhbHVlcyhMYXlvdXRV
bml0IHBvcywgTGF5b3V0VW5pdCBuZWcpOwogICAgIHZvaWQgc2V0TWF4TWFyZ2luQWZ0ZXJWYWx1
ZXMoTGF5b3V0VW5pdCBwb3MsIExheW91dFVuaXQgbmVnKTsKIAorICAgIHZvaWQgc2V0TXVzdERp
c2NhcmRNYXJnaW5CZWZvcmUoKTsKKyAgICB2b2lkIHNldE11c3REaXNjYXJkTWFyZ2luQWZ0ZXIo
KTsKKworICAgIGJvb2wgbXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKSBjb25zdDsKKyAgICBib29s
IG11c3REaXNjYXJkTWFyZ2luQWZ0ZXIoKSBjb25zdDsKKworICAgIGJvb2wgbXVzdERpc2NhcmRN
YXJnaW5CZWZvcmVGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqKSBjb25zdDsKKyAgICBib29sIG11
c3REaXNjYXJkTWFyZ2luQWZ0ZXJGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqKSBjb25zdDsKKwog
ICAgIHZvaWQgaW5pdE1heE1hcmdpblZhbHVlcygpCiAgICAgewogICAgICAgICBpZiAobV9yYXJl
RGF0YSkgewogICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV9tYXJnaW5zID0gTWFyZ2luVmFsdWVz
KFJlbmRlckJsb2NrUmFyZURhdGE6OnBvc2l0aXZlTWFyZ2luQmVmb3JlRGVmYXVsdCh0aGlzKSAs
IFJlbmRlckJsb2NrUmFyZURhdGE6Om5lZ2F0aXZlTWFyZ2luQmVmb3JlRGVmYXVsdCh0aGlzKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW5kZXJC
bG9ja1JhcmVEYXRhOjpwb3NpdGl2ZU1hcmdpbkFmdGVyRGVmYXVsdCh0aGlzKSwgUmVuZGVyQmxv
Y2tSYXJlRGF0YTo6bmVnYXRpdmVNYXJnaW5BZnRlckRlZmF1bHQodGhpcykpOwogICAgICAgICAg
ICAgbV9yYXJlRGF0YS0+bV9wYWdpbmF0aW9uU3RydXQgPSAwOworCisgICAgICAgICAgICAvLyBG
SVhNRTogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IGdldCBjYWxsZWQgZm9yIHRhYmxlIGNlbGxzLiBE
b2VzIGl0IG1hdHRlcj8KKyAgICAgICAgICAgIG1fcmFyZURhdGEtPm1fZGlzY2FyZE1hcmdpbkJl
Zm9yZSA9IGZhbHNlOworICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV9kaXNjYXJkTWFyZ2luQWZ0
ZXIgPSBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTU5LDYgKzk3Miw4IEBAIHByaXZh
dGU6CiAgICAgICAgIGJvb2wgbV9tYXJnaW5BZnRlclF1aXJrIDogMTsKICAgICAgICAgYm9vbCBt
X2RldGVybWluZWRNYXJnaW5CZWZvcmVRdWlyayA6IDE7CiAKKyAgICAgICAgYm9vbCBtX2Rpc2Nh
cmRNYXJnaW4gOiAxOworCiAgICAgICAgIC8vIFRoZXNlIGZsYWdzIHRyYWNrIHRoZSBwcmV2aW91
cyBtYXhpbWFsIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBtYXJnaW5zLgogICAgICAgICBMYXlvdXRV
bml0IG1fcG9zaXRpdmVNYXJnaW47CiAgICAgICAgIExheW91dFVuaXQgbV9uZWdhdGl2ZU1hcmdp
bjsKQEAgLTk5MCwyMCArMTAwNSwyNCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAg
dm9pZCBzZXRNYXJnaW4oTGF5b3V0VW5pdCBwLCBMYXlvdXRVbml0IG4pIHsgbV9wb3NpdGl2ZU1h
cmdpbiA9IHA7IG1fbmVnYXRpdmVNYXJnaW4gPSBuOyB9CisgICAgICAgIHZvaWQgc2V0Q2FuQ29s
bGFwc2VNYXJnaW5BZnRlcldpdGhDaGlsZHJlbihib29sIGNvbGxhcHNlKSB7IG1fY2FuQ29sbGFw
c2VNYXJnaW5BZnRlcldpdGhDaGlsZHJlbiA9IGNvbGxhcHNlOyB9CisgICAgICAgIHZvaWQgc2V0
RGlzY2FyZE1hcmdpbihib29sIHZhbHVlKSB7IG1fZGlzY2FyZE1hcmdpbiA9IHZhbHVlOyB9CiAK
ICAgICAgICAgYm9vbCBhdEJlZm9yZVNpZGVPZkJsb2NrKCkgY29uc3QgeyByZXR1cm4gbV9hdEJl
Zm9yZVNpZGVPZkJsb2NrOyB9CiAgICAgICAgIGJvb2wgY2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVm
b3JlKCkgY29uc3QgeyByZXR1cm4gbV9hdEJlZm9yZVNpZGVPZkJsb2NrICYmIG1fY2FuQ29sbGFw
c2VNYXJnaW5CZWZvcmVXaXRoQ2hpbGRyZW47IH0KICAgICAgICAgYm9vbCBjYW5Db2xsYXBzZVdp
dGhNYXJnaW5BZnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fYXRBZnRlclNpZGVPZkJsb2NrICYmIG1f
Y2FuQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhDaGlsZHJlbjsgfQogICAgICAgICBib29sIGNhbkNv
bGxhcHNlTWFyZ2luQmVmb3JlV2l0aENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Db2xs
YXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbjsgfQogICAgICAgICBib29sIGNhbkNvbGxhcHNl
TWFyZ2luQWZ0ZXJXaXRoQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX2NhbkNvbGxhcHNlTWFy
Z2luQWZ0ZXJXaXRoQ2hpbGRyZW47IH0KLSAgICAgICAgdm9pZCBzZXRDYW5Db2xsYXBzZU1hcmdp
bkFmdGVyV2l0aENoaWxkcmVuKGJvb2wgY29sbGFwc2UpIHsgbV9jYW5Db2xsYXBzZU1hcmdpbkFm
dGVyV2l0aENoaWxkcmVuID0gY29sbGFwc2U7IH0KICAgICAgICAgYm9vbCBxdWlya0NvbnRhaW5l
cigpIGNvbnN0IHsgcmV0dXJuIG1fcXVpcmtDb250YWluZXI7IH0KICAgICAgICAgYm9vbCBkZXRl
cm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX2RldGVybWluZWRNYXJn
aW5CZWZvcmVRdWlyazsgfQogICAgICAgICBib29sIG1hcmdpbkJlZm9yZVF1aXJrKCkgY29uc3Qg
eyByZXR1cm4gbV9tYXJnaW5CZWZvcmVRdWlyazsgfQogICAgICAgICBib29sIG1hcmdpbkFmdGVy
UXVpcmsoKSBjb25zdCB7IHJldHVybiBtX21hcmdpbkFmdGVyUXVpcms7IH0KICAgICAgICAgTGF5
b3V0VW5pdCBwb3NpdGl2ZU1hcmdpbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpdmVNYXJnaW47
IH0KICAgICAgICAgTGF5b3V0VW5pdCBuZWdhdGl2ZU1hcmdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
bmVnYXRpdmVNYXJnaW47IH0KLSAgICAgICAgTGF5b3V0VW5pdCBtYXJnaW4oKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aXZlTWFyZ2luIC0gbV9uZWdhdGl2ZU1hcmdpbjsgfQorICAgICAgICBib29s
IGRpc2NhcmRNYXJnaW4oKSBjb25zdCB7IHJldHVybiBtX2Rpc2NhcmRNYXJnaW47IH0KKworICAg
ICAgICAvLyBJZiB0aGlzIG1hcmdpbiB3aWxsIGJlIGRpc2NhcmRlZCByZXR1cm4gMC4KKyAgICAg
ICAgTGF5b3V0VW5pdCBtYXJnaW4oKSBjb25zdCB7IHJldHVybiBtX2Rpc2NhcmRNYXJnaW4gPyBM
YXlvdXRVbml0KDApIDogbV9wb3NpdGl2ZU1hcmdpbiAtIG1fbmVnYXRpdmVNYXJnaW47IH0KICAg
ICB9OwogCiAgICAgdm9pZCBsYXlvdXRCbG9ja0NoaWxkKFJlbmRlckJveCogY2hpbGQsIE1hcmdp
bkluZm8mLCBMYXlvdXRVbml0JiBwcmV2aW91c0Zsb2F0TG9naWNhbEJvdHRvbSwgTGF5b3V0VW5p
dCYgbWF4RmxvYXRMb2dpY2FsQm90dG9tKTsKQEAgLTExODIsOCArMTIwMSwxMCBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgICAgICAsIG1fcGFnaW5hdGlvblN0cnV0KDApCiAgICAgICAgICAgICAsIG1f
cGFnZUxvZ2ljYWxPZmZzZXQoMCkKICAgICAgICAgICAgICwgbV9saW5lR3JpZEJveCgwKQotICAg
ICAgICAgICAgLCBtX3Nob3VsZEJyZWFrQXRMaW5lVG9Bdm9pZFdpZG93KGZhbHNlKQogICAgICAg
ICAgICAgLCBtX2xpbmVCcmVha1RvQXZvaWRXaWRvdygwKQorICAgICAgICAgICAgLCBtX3Nob3Vs
ZEJyZWFrQXRMaW5lVG9Bdm9pZFdpZG93KGZhbHNlKQorICAgICAgICAgICAgLCBtX2Rpc2NhcmRN
YXJnaW5CZWZvcmUoZmFsc2UpCisgICAgICAgICAgICAsIG1fZGlzY2FyZE1hcmdpbkFmdGVyKGZh
bHNlKQogICAgICAgICB7IAogICAgICAgICB9CiAKQEAgLTExOTEsNyArMTIxMiw2IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgeyAKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1heDxMYXlvdXRVbml0
PihibG9jay0+bWFyZ2luQmVmb3JlKCksIDApOwogICAgICAgICB9Ci0gICAgICAgIAogICAgICAg
ICBzdGF0aWMgTGF5b3V0VW5pdCBuZWdhdGl2ZU1hcmdpbkJlZm9yZURlZmF1bHQoY29uc3QgUmVu
ZGVyQmxvY2sqIGJsb2NrKQogICAgICAgICB7IAogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4
PExheW91dFVuaXQ+KC1ibG9jay0+bWFyZ2luQmVmb3JlKCksIDApOwpAQCAtMTIxMSw4ICsxMjMx
LDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgCiAgICAgICAgIFJvb3RJbmxpbmVCb3gqIG1fbGlu
ZUdyaWRCb3g7CiAKLSAgICAgICAgYm9vbCBtX3Nob3VsZEJyZWFrQXRMaW5lVG9Bdm9pZFdpZG93
OwogICAgICAgICBSb290SW5saW5lQm94KiBtX2xpbmVCcmVha1RvQXZvaWRXaWRvdzsKKyAgICAg
ICAgdW5zaWduZWQgbV9zaG91bGRCcmVha0F0TGluZVRvQXZvaWRXaWRvdyA6IDE7CisgICAgICAg
IHVuc2lnbmVkIG1fZGlzY2FyZE1hcmdpbkJlZm9yZSA6IDE7CisgICAgICAgIHVuc2lnbmVkIG1f
ZGlzY2FyZE1hcmdpbkFmdGVyIDogMTsKICAgICAgfTsKIAogICAgIE93blB0cjxSZW5kZXJCbG9j
a1JhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAppbmRleCBkMDlhNTUxNWQ4MzA1Y2U3YWU2MDhhOTBkZjdmODg0ZjQ1ZDRl
NTBkLi43OWViZTlkM2NhYjJmY2E0ZTZjYjIwN2YzYzVlNzRlZDFkYWQzYjA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMzc3LDYgKzM3Nyw4
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0JvcmRlcigpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5k
LT5ib3JkZXIuaGFzQm9yZGVyKCk7IH0KICAgICBib29sIGhhc1BhZGRpbmcoKSBjb25zdCB7IHJl
dHVybiBzdXJyb3VuZC0+cGFkZGluZy5ub25aZXJvKCk7IH0KICAgICBib29sIGhhc09mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5vZmZzZXQubm9uWmVybygpOyB9CisgICAgYm9vbCBp
c01hcmdpbkJlZm9yZVF1aXJrKCkgY29uc3QgeyByZXR1cm4gbWFyZ2luQmVmb3JlKCkucXVpcmso
KTsgfQorICAgIGJvb2wgaXNNYXJnaW5BZnRlclF1aXJrKCkgY29uc3QgeyByZXR1cm4gbWFyZ2lu
QWZ0ZXIoKS5xdWlyaygpOyB9CiAKICAgICBib29sIGhhc0JhY2tncm91bmRJbWFnZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLmhhc0ltYWdlKCk7IH0KICAgICBi
b29sIGhhc0ZpeGVkQmFja2dyb3VuZEltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5k
LT5iYWNrZ3JvdW5kKCkuaGFzRml4ZWRJbWFnZSgpOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxp
bmdzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQt
bWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTIyMjM0ZWUzZWM4NjA4
ZGE4OTJkNmVhNDIzYjVlOTA1MWY2YzBiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGlu
Z3MuaHRtbApAQCAtMCwwICsxLDc4IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlk
aXYgeworCQkJbWFyZ2luOiAwcHg7CisJCX0KKworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjog
dGhpbiBzb2xpZCBibHVlOworCQkJd2lkdGg6IDMwMHB4OworCQl9CisKKwkJLmJsb2NrIHsKKwkJ
CWJhY2tncm91bmQtY29sb3I6IGdyZWVuOworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2lu
LWJvdHRvbTogNTBweDsKKwkJfQorCisJCS5ibG9jazIgeworCQkJYmFja2dyb3VuZC1jb2xvcjog
Z3JlZW47CisJCQltYXJnaW4tdG9wOiAxMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9
CisKKwkJLmNvbGxhcHNlX3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IGNv
bGxhcHNlOworCQl9CisKKwkJLmNvbGxhcHNlX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdpbi1i
b3R0b20tY29sbGFwc2U6IGNvbGxhcHNlOworCQl9CisKKwkJLmNvbGxhcHNlX3RvcDpiZWZvcmUs
IC5jb2xsYXBzZV9ib3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIkNvbGxhcHNlIjsKKwkJfQor
CisJCS5kaXNjYXJkX3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IGRpc2Nh
cmQ7CisJCX0KKworCQkuZGlzY2FyZF9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9t
LWNvbGxhcHNlOiBkaXNjYXJkOworCQl9CisKKwkJLmRpc2NhcmRfdG9wOmJlZm9yZSwgLmRpc2Nh
cmRfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJEaXNjYXJkIjsKKwkJfQorCisJCS5zZXBh
cmF0ZV90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBzZXBhcmF0ZTsKKwkJ
fQorCisJCS5zZXBhcmF0ZV9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxh
cHNlOiBzZXBhcmF0ZTsKKwkJfQorCisJCS5zZXBhcmF0ZV90b3A6YmVmb3JlLCAuc2VwYXJhdGVf
Ym90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJTZXBhcmF0ZSI7CisJCX0KKwkJPC9zdHlsZT4K
Kwk8L2hlYWQ+CisJPGJvZHk+CisJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisJCQk8IS0tPGRp
diBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4K
KwkJCTxkaXYgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+
PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3AgY29sbGFwc2VfYm90dG9t
Ij48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3AgZGlzY2FyZF9i
b3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgZGlz
Y2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBzZXBhcmF0ZV90
b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBkaXNj
YXJkX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9j
ayBjb2xsYXBzZV90b3Agc2VwYXJhdGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFz
cz0iYmxvY2sgc2VwYXJhdGVfdG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxk
aXYgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4t
LT4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJy
Lz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrMiBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90
dG9tIj48YnIvPjwvZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186401</attachid>
            <date>2013-02-04 09:34:49 -0800</date>
            <delta_ts>2013-02-06 08:26:51 -0800</delta_ts>
            <desc>WIP v2</desc>
            <filename>bug-108168-20130204193127.patch</filename>
            <type>text/plain</type>
            <size>46484</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRjODhkZDU0ZDM4OWRj
MTJmMDgyMjdjNDEzMWIwODBiNjFhNjlmMi4uZjU3OGZjOTEzNzA2YmIyYzRiY2RhZWU2MWM0MDdj
MDFkYWYwMmM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAyLTA0ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgLXdl
YmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVE9ETy4gV0lQLgorICAg
ICAgICBUaGlzIHBhdGNoIHRyaWVzIHRvIGltcGxlbWVudCBtb3JlIHRob3JvdWdobHkgdGhlIC13
ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMuIFRvIGFjaGlldmUgdGhpcworICAgICAg
ICB0aHJlZSBuZXcgYml0cyBhcmUgYWRkZWQgdG8gdGhlIGV4aXN0aW5nIGRhdGEgc3RydWN0dXJl
cy4KKyAgICAgICAgLSAxIGJpdCB0byB0aGUgTWFyZ2luSW5mbyBpbmRpY2F0aW5nIGFsbCB0aGUg
bWFyZ2lucyBjb2xsYXBzaW5nIHdpdGggaXQgc2hvdWxkIGJlIGRpc2NhcmRlZC4gSSBoYXZlbid0
IGZvdW5kCisgICAgICAgIGEgcmVhc29uIHRvIGFkZCBhIGRpc2NhcmQgYml0IGZvciBib3RoIGJl
Zm9yZSBhbmQgYWZ0ZXIuIEknbSBub3QgZW50aXJlbHkgc3VyZSBpdCBpcyByZXF1aXJlZCBmb3Ig
cXVpcmt5IG1hcmdpbnMKKyAgICAgICAgYXMgd2VsbC4KKyAgICAgICAgLSAyIGJpdHMgdG8gdGhl
IFJlbmRlckJsb2NrUmFyZURhdGEgaW5kaWNhdGluZyBpZiB0aGUgdG9wL2JvdHRvbSBtYXJnaW5z
IG5lZWQgdG8gYmUgZGlzY2FyZGVkLiBJIGd1ZXNzIGEgc2ltaWxhciB0aGluZworICAgICAgICBj
YW4gYmUgYWNoaWV2ZWQgZm9yIHRoZSBxdWlyayBmbGFncyB0aHVzIHJlbGVhc2luZyB0d28gYml0
cyBmcm9tIFJlbmRlck9iamVjdC4KKworICAgICAgICBJIGhhdmVuJ3QgZm91bmQgYSB3YXkgdG8g
cmV1c2UgdGhlIHF1aXJrIGZsYWdzLiBGcm9tIHRoZSB3YXkgdGhleSBhcmUgY3VycmVudGx5IGlt
cGxlbWVudGVkIHRoZSBxdWlya3MgYmVoYXZpb3IgZGVwZW5kcworICAgICAgICBvbiB0aGUgdmFs
dWUgb2YgdGhlIG1hcmdpbiB3aGlsZSBtYXJnaW4gZGlzY2FyZGluZyBoYXBwZW5zIGFsbCB0aGUg
dGltZS4KKworICAgICAgICBJbiB0aGUgZmluYWwgcGF0Y2ggSSdsbCBhbHNvIGltcGxlbWVudCBm
bG9hdCBjbGVhcmluZyBhbmQgYWRkIGEgdGVzdCBmb3IgaXQuCisKKyAgICAgICAgVGVzdHM6IGZh
c3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFpbmVy
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1t
YXJnaW4tY29sbGFwc2Utc2libGluZ3MuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpN
YXJnaW5JbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29sbGFwc2VNYXJnaW5zKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptYXJnaW5CZWZvcmVFc3RpbWF0ZUZvckNoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjplc3RpbWF0ZUxvZ2ljYWxUb3BQb3NpdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c2V0Q29sbGFwc2VkQm90dG9tTWFy
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpoYW5kbGVBZnRlclNpZGVPZkJs
b2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9ja0NoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzZXRNdXN0RGlzY2FyZE1hcmdpbkJlZm9y
ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpz
ZXRNdXN0RGlzY2FyZE1hcmdpbkFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjptdXN0RGlzY2FyZE1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bXVzdERpc2NhcmRNYXJnaW5BZnRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bXVzdERpc2NhcmRNYXJnaW5CZWZvcmVGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6bXVzdERpc2NhcmRNYXJnaW5BZnRlckZvckNoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjphcHBseUFmdGVyQnJlYWspOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oOgorICAgICAgICAoUmVuZGVyQmxvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmluaXRNYXhNYXJnaW5WYWx1ZXMpOgorICAgICAgICAoTWFyZ2luSW5m
byk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0UG9zaXRp
dmVNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1hcmdpbkluZm86OnNl
dE5lZ2F0aXZlTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpNYXJnaW5J
bmZvOjpzZXRQb3NpdGl2ZU1hcmdpbklmTGFyZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpNYXJnaW5JbmZvOjpzZXROZWdhdGl2ZU1hcmdpbklmTGFyZ2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpzZXRNYXJnaW4pOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1hcmdpbkluZm86OnNldENhbkNvbGxhcHNlTWFyZ2luQWZ0
ZXJXaXRoQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1hcmdpbklu
Zm86OnNldERpc2NhcmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1h
cmdpbkluZm86OmRpc2NhcmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OlJlbmRlckJsb2NrUmFyZURhdGE6OlJlbmRlckJsb2NrUmFyZURhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OlJlbmRlckJsb2NrUmFyZURhdGE6OnBvc2l0aXZlTWFyZ2luQmVm
b3JlRGVmYXVsdCk6CisgICAgICAgIChSZW5kZXJCbG9ja1JhcmVEYXRhKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAxMy0wMi0wNCAgRGFuIENhcm5leSAg
PGRjYXJuZXlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbdjhdIGV4cGxpY2l0IGlzb2xhdGUgcGFy
YW1ldGVyIGZvciBNYWtlV2VhayBjYWxscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKaW5kZXggYTI3MTY5OTAzYTQ4N2ZjOTY1ZWZiYjg5MTg0NDljOGMxNWNlYjk5My4u
NjRmMjFhNGE5NGIwMzkyMGYxOTZmYmYxNDQ2N2RhNjY1N2E5Y2ZhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xNjksNiArMTY5LDcgQEAgUmVuZGVyQmxv
Y2s6Ok1hcmdpbkluZm86Ok1hcmdpbkluZm8oUmVuZGVyQmxvY2sqIGJsb2NrLCBMYXlvdXRVbml0
IGJlZm9yZUJvcmRlclAKICAgICAsIG1fbWFyZ2luQmVmb3JlUXVpcmsoZmFsc2UpCiAgICAgLCBt
X21hcmdpbkFmdGVyUXVpcmsoZmFsc2UpCiAgICAgLCBtX2RldGVybWluZWRNYXJnaW5CZWZvcmVR
dWlyayhmYWxzZSkKKyAgICAsIG1fZGlzY2FyZE1hcmdpbihmYWxzZSkKIHsKICAgICBSZW5kZXJT
dHlsZSogYmxvY2tTdHlsZSA9IGJsb2NrLT5zdHlsZSgpOwogICAgIEFTU0VSVChibG9jay0+aXNS
ZW5kZXJWaWV3KCkgfHwgYmxvY2stPnBhcmVudCgpKTsKQEAgLTE4NiwxMSArMTg3LDEyIEBAIFJl
bmRlckJsb2NrOjpNYXJnaW5JbmZvOjpNYXJnaW5JbmZvKFJlbmRlckJsb2NrKiBibG9jaywgTGF5
b3V0VW5pdCBiZWZvcmVCb3JkZXJQCiAgICAgbV9jYW5Db2xsYXBzZU1hcmdpbkFmdGVyV2l0aENo
aWxkcmVuID0gbV9jYW5Db2xsYXBzZVdpdGhDaGlsZHJlbiAmJiAoYWZ0ZXJCb3JkZXJQYWRkaW5n
ID09IDApICYmCiAgICAgICAgIChibG9ja1N0eWxlLT5sb2dpY2FsSGVpZ2h0KCkuaXNBdXRvKCkg
JiYgIWJsb2NrU3R5bGUtPmxvZ2ljYWxIZWlnaHQoKS52YWx1ZSgpKSAmJiBibG9ja1N0eWxlLT5t
YXJnaW5BZnRlckNvbGxhcHNlKCkgIT0gTVNFUEFSQVRFOwogICAgIAotICAgIG1fcXVpcmtDb250
YWluZXIgPSBibG9jay0+aXNUYWJsZUNlbGwoKSB8fCBibG9jay0+aXNCb2R5KCkgfHwgYmxvY2tT
dHlsZS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNRElTQ0FSRAotICAgICAgICB8fCBibG9j
a1N0eWxlLT5tYXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTURJU0NBUkQ7CisgICAgbV9xdWlya0Nv
bnRhaW5lciA9IGJsb2NrLT5pc1RhYmxlQ2VsbCgpIHx8IGJsb2NrLT5pc0JvZHkoKTsKIAotICAg
IG1fcG9zaXRpdmVNYXJnaW4gPSBtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aENoaWxkcmVu
ID8gYmxvY2stPm1heFBvc2l0aXZlTWFyZ2luQmVmb3JlKCkgOiBMYXlvdXRVbml0KCk7Ci0gICAg
bV9uZWdhdGl2ZU1hcmdpbiA9IG1fY2FuQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoQ2hpbGRyZW4g
PyBibG9jay0+bWF4TmVnYXRpdmVNYXJnaW5CZWZvcmUoKSA6IExheW91dFVuaXQoKTsKKyAgICBt
X2Rpc2NhcmRNYXJnaW4gPSBtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aENoaWxkcmVuICYm
IGJsb2NrLT5tdXN0RGlzY2FyZE1hcmdpbkJlZm9yZSgpOworCisgICAgbV9wb3NpdGl2ZU1hcmdp
biA9IChtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aENoaWxkcmVuICYmICFibG9jay0+bXVz
dERpc2NhcmRNYXJnaW5CZWZvcmUoKSkgPyBibG9jay0+bWF4UG9zaXRpdmVNYXJnaW5CZWZvcmUo
KSA6IExheW91dFVuaXQoKTsKKyAgICBtX25lZ2F0aXZlTWFyZ2luID0gKG1fY2FuQ29sbGFwc2VN
YXJnaW5CZWZvcmVXaXRoQ2hpbGRyZW4gJiYgIWJsb2NrLT5tdXN0RGlzY2FyZE1hcmdpbkJlZm9y
ZSgpKSA/IGJsb2NrLT5tYXhOZWdhdGl2ZU1hcmdpbkJlZm9yZSgpIDogTGF5b3V0VW5pdCgpOwog
fQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA
IC0xNTI2LDggKzE1MjgsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayhib29sIHJl
bGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaAogICAgIGlmICghaXND
ZWxsKSB7CiAgICAgICAgIGluaXRNYXhNYXJnaW5WYWx1ZXMoKTsKICAgICAgICAgCi0gICAgICAg
IHNldE1hcmdpbkJlZm9yZVF1aXJrKHN0eWxlVG9Vc2UtPm1hcmdpbkJlZm9yZSgpLnF1aXJrKCkp
OwotICAgICAgICBzZXRNYXJnaW5BZnRlclF1aXJrKHN0eWxlVG9Vc2UtPm1hcmdpbkFmdGVyKCku
cXVpcmsoKSk7CisgICAgICAgIHNldE1hcmdpbkJlZm9yZVF1aXJrKHN0eWxlVG9Vc2UtPmlzTWFy
Z2luQmVmb3JlUXVpcmsoKSk7CisgICAgICAgIHNldE1hcmdpbkFmdGVyUXVpcmsoc3R5bGVUb1Vz
ZS0+aXNNYXJnaW5BZnRlclF1aXJrKCkpOwogICAgICAgICBzZXRQYWdpbmF0aW9uU3RydXQoMCk7
CiAgICAgfQogCkBAIC0xOTU3LDYgKzE5NTksMTIgQEAgdm9pZCBSZW5kZXJCbG9jazo6bW92ZVJ1
bkluVG9PcmlnaW5hbFBvc2l0aW9uKFJlbmRlck9iamVjdCogcnVuSW4pCiAKIExheW91dFVuaXQg
UmVuZGVyQmxvY2s6OmNvbGxhcHNlTWFyZ2lucyhSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZv
JiBtYXJnaW5JbmZvKQogeworICAgIGJvb2wgY2hpbGREaXNjYXJkTWFyZ2luQmVmb3JlID0gbXVz
dERpc2NhcmRNYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZCk7CisgICAgYm9vbCBjaGlsZERpc2Nh
cmRNYXJnaW5BZnRlciA9IG11c3REaXNjYXJkTWFyZ2luQWZ0ZXJGb3JDaGlsZChjaGlsZCk7CisK
KyAgICAvLyBUaGUgY2hpbGQgZGlzY2FyZHMgdGhlIGJlZm9yZSBtYXJnaW4gd2hlbiB0aGUgdGhl
IGFmdGVyIG1hcmdpbiBoYXMgZGlzY2FyZCBpbiB0aGUgY2FzZSBvZiBhIHNlbGYgY29sbGFwc2lu
ZyBibG9jay4KKyAgICBjaGlsZERpc2NhcmRNYXJnaW5CZWZvcmUgPSBjaGlsZERpc2NhcmRNYXJn
aW5CZWZvcmUgfHwgKGNoaWxkRGlzY2FyZE1hcmdpbkFmdGVyICYmIGNoaWxkLT5pc1NlbGZDb2xs
YXBzaW5nQmxvY2soKSk7CisKICAgICAvLyBHZXQgdGhlIGZvdXIgbWFyZ2luIHZhbHVlcyBmb3Ig
dGhlIGNoaWxkIGFuZCBjYWNoZSB0aGVtLgogICAgIGNvbnN0IE1hcmdpblZhbHVlcyBjaGlsZE1h
cmdpbnMgPSBtYXJnaW5WYWx1ZXNGb3JDaGlsZChjaGlsZCk7CiAKQEAgLTE5NzMsMzEgKzE5ODEs
NDEgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6Y29sbGFwc2VNYXJnaW5zKFJlbmRlckJveCog
Y2hpbGQsIE1hcmdpbkluZm8mIG1hcmdpbkluZm8KICAgICAKICAgICAvLyBTZWUgaWYgdGhlIHRv
cCBtYXJnaW4gaXMgcXVpcmt5LiBXZSBvbmx5IGNhcmUgaWYgdGhpcyBjaGlsZCBoYXMKICAgICAv
LyBtYXJnaW5zIHRoYXQgd2lsbCBjb2xsYXBzZSB3aXRoIHVzLgotICAgIGJvb2wgdG9wUXVpcmsg
PSBjaGlsZC0+aXNNYXJnaW5CZWZvcmVRdWlyaygpIHx8IHN0eWxlKCktPm1hcmdpbkJlZm9yZUNv
bGxhcHNlKCkgPT0gTURJU0NBUkQ7CisgICAgYm9vbCB0b3BRdWlyayA9IGNoaWxkLT5pc01hcmdp
bkJlZm9yZVF1aXJrKCk7CiAKICAgICBpZiAobWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJn
aW5CZWZvcmUoKSkgewotICAgICAgICAvLyBUaGlzIGNoaWxkIGlzIGNvbGxhcHNpbmcgd2l0aCB0
aGUgdG9wIG9mIHRoZQotICAgICAgICAvLyBibG9jay4gIElmIGl0IGhhcyBsYXJnZXIgbWFyZ2lu
IHZhbHVlcywgdGhlbiB3ZSBuZWVkIHRvIHVwZGF0ZQotICAgICAgICAvLyBvdXIgb3duIG1heGlt
YWwgdmFsdWVzLgotICAgICAgICBpZiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFt
YXJnaW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgfHwgIXRvcFF1aXJrKQotICAgICAgICAgICAgc2V0
TWF4TWFyZ2luQmVmb3JlVmFsdWVzKG1heChwb3NUb3AsIG1heFBvc2l0aXZlTWFyZ2luQmVmb3Jl
KCkpLCBtYXgobmVnVG9wLCBtYXhOZWdhdGl2ZU1hcmdpbkJlZm9yZSgpKSk7Ci0KLSAgICAgICAg
Ly8gVGhlIG1pbnV0ZSBhbnkgb2YgdGhlIG1hcmdpbnMgaW52b2x2ZWQgaXNuJ3QgYSBxdWlyaywg
ZG9uJ3QKLSAgICAgICAgLy8gY29sbGFwc2UgaXQgYXdheSwgZXZlbiBpZiB0aGUgbWFyZ2luIGlz
IHNtYWxsZXIgKHd3dy53ZWJyZWZlcmVuY2UuY29tCi0gICAgICAgIC8vIGhhcyBhbiBleGFtcGxl
IG9mIHRoaXMsIGEgPGR0PiB3aXRoIDAuOGVtIGF1dGhvci1zcGVjaWZpZWQgaW5zaWRlCi0gICAg
ICAgIC8vIGEgPGRsPiBpbnNpZGUgYSA8dGQ+LgotICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGV0
ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKCkgJiYgIXRvcFF1aXJrICYmIChwb3NUb3AgLSBuZWdU
b3ApKSB7Ci0gICAgICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayhmYWxzZSk7Ci0gICAgICAg
ICAgICBtYXJnaW5JbmZvLnNldERldGVybWluZWRNYXJnaW5CZWZvcmVRdWlyayh0cnVlKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGlmICghbWFyZ2luSW5mby5kZXRlcm1pbmVkTWFyZ2luQmVmb3Jl
UXVpcmsoKSAmJiB0b3BRdWlyayAmJiAhbWFyZ2luQmVmb3JlKCkpCi0gICAgICAgICAgICAvLyBX
ZSBoYXZlIG5vIHRvcCBtYXJnaW4gYW5kIG91ciB0b3AgY2hpbGQgaGFzIGEgcXVpcmt5IG1hcmdp
bi4KLSAgICAgICAgICAgIC8vIFdlIHdpbGwgcGljayB1cCB0aGlzIHF1aXJreSBtYXJnaW4gYW5k
IHBhc3MgaXQgdGhyb3VnaC4KLSAgICAgICAgICAgIC8vIFRoaXMgZGVhbHMgd2l0aCB0aGUgPHRk
PjxkaXY+PHA+IGNhc2UuCi0gICAgICAgICAgICAvLyBEb24ndCBkbyB0aGlzIGZvciBhIGJsb2Nr
IHRoYXQgc3BsaXQgdHdvIGlubGluZXMgdGhvdWdoLiAgWW91IGRvCi0gICAgICAgICAgICAvLyBz
dGlsbCBhcHBseSBtYXJnaW5zIGluIHRoaXMgY2FzZS4KLSAgICAgICAgICAgIHNldE1hcmdpbkJl
Zm9yZVF1aXJrKHRydWUpOworICAgICAgICBpZiAoIWNoaWxkRGlzY2FyZE1hcmdpbkJlZm9yZSAm
JiAhbWFyZ2luSW5mby5kaXNjYXJkTWFyZ2luKCkpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgY2hp
bGQgaXMgY29sbGFwc2luZyB3aXRoIHRoZSB0b3Agb2YgdGhlCisgICAgICAgICAgICAvLyBibG9j
ay4gSWYgaXQgaGFzIGxhcmdlciBtYXJnaW4gdmFsdWVzLCB0aGVuIHdlIG5lZWQgdG8gdXBkYXRl
CisgICAgICAgICAgICAvLyBvdXIgb3duIG1heGltYWwgdmFsdWVzLgorICAgICAgICAgICAgaWYg
KCFkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSB8fCAhbWFyZ2luSW5mby5xdWlya0NvbnRhaW5l
cigpIHx8ICF0b3BRdWlyaykKKyAgICAgICAgICAgICAgICBzZXRNYXhNYXJnaW5CZWZvcmVWYWx1
ZXMobWF4KHBvc1RvcCwgbWF4UG9zaXRpdmVNYXJnaW5CZWZvcmUoKSksIG1heChuZWdUb3AsIG1h
eE5lZ2F0aXZlTWFyZ2luQmVmb3JlKCkpKTsKKworICAgICAgICAgICAgLy8gVGhlIG1pbnV0ZSBh
bnkgb2YgdGhlIG1hcmdpbnMgaW52b2x2ZWQgaXNuJ3QgYSBxdWlyaywgZG9uJ3QKKyAgICAgICAg
ICAgIC8vIGNvbGxhcHNlIGl0IGF3YXksIGV2ZW4gaWYgdGhlIG1hcmdpbiBpcyBzbWFsbGVyICh3
d3cud2VicmVmZXJlbmNlLmNvbQorICAgICAgICAgICAgLy8gaGFzIGFuIGV4YW1wbGUgb2YgdGhp
cywgYSA8ZHQ+IHdpdGggMC44ZW0gYXV0aG9yLXNwZWNpZmllZCBpbnNpZGUKKyAgICAgICAgICAg
IC8vIGEgPGRsPiBpbnNpZGUgYSA8dGQ+LgorICAgICAgICAgICAgaWYgKCFtYXJnaW5JbmZvLmRl
dGVybWluZWRNYXJnaW5CZWZvcmVRdWlyaygpICYmICF0b3BRdWlyayAmJiAocG9zVG9wIC0gbmVn
VG9wKSkgeworICAgICAgICAgICAgICAgIHNldE1hcmdpbkJlZm9yZVF1aXJrKGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICBtYXJnaW5JbmZvLnNldERldGVybWluZWRNYXJnaW5CZWZvcmVRdWlyayh0
cnVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFtYXJnaW5JbmZvLmRldGVy
bWluZWRNYXJnaW5CZWZvcmVRdWlyaygpICYmIHRvcFF1aXJrICYmICFtYXJnaW5CZWZvcmUoKSkK
KyAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIG5vIHRvcCBtYXJnaW4gYW5kIG91ciB0b3AgY2hp
bGQgaGFzIGEgcXVpcmt5IG1hcmdpbi4KKyAgICAgICAgICAgICAgICAvLyBXZSB3aWxsIHBpY2sg
dXAgdGhpcyBxdWlya3kgbWFyZ2luIGFuZCBwYXNzIGl0IHRocm91Z2guCisgICAgICAgICAgICAg
ICAgLy8gVGhpcyBkZWFscyB3aXRoIHRoZSA8dGQ+PGRpdj48cD4gY2FzZS4KKyAgICAgICAgICAg
ICAgICAvLyBEb24ndCBkbyB0aGlzIGZvciBhIGJsb2NrIHRoYXQgc3BsaXQgdHdvIGlubGluZXMg
dGhvdWdoLiBZb3UgZG8KKyAgICAgICAgICAgICAgICAvLyBzdGlsbCBhcHBseSBtYXJnaW5zIGlu
IHRoaXMgY2FzZS4KKyAgICAgICAgICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayh0cnVlKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAvLyBUaGUgYmVmb3JlIG1hcmdpbiBvZiB0aGUg
Y29udGFpbmVyIHdpbGwgYWxzbyBkaXNjYXJkIGFsbCB0aGUgbWFyZ2lucyBpdCBpcyBjb2xsYXBz
aW5nIHdpdGguCisgICAgICAgICAgICBzZXRNdXN0RGlzY2FyZE1hcmdpbkJlZm9yZSgpOworICAg
IH0KKworICAgIC8vIE9uY2Ugd2UgZmluZCBhIGNoaWxkIHdpdGggZGlzY2FyZE1hcmdpbkJlZm9y
ZSBhbGwgdGhlIG1hcmdpbnMgY29sbGFwc2luZyB3aXRoIHVzIG11c3QgYWxzbyBkaXNjYXJkLiAK
KyAgICBpZiAoY2hpbGREaXNjYXJkTWFyZ2luQmVmb3JlKSB7CisgICAgICAgIG1hcmdpbkluZm8u
c2V0RGlzY2FyZE1hcmdpbih0cnVlKTsKKyAgICAgICAgbWFyZ2luSW5mby5jbGVhck1hcmdpbigp
OwogICAgIH0KIAogICAgIGlmIChtYXJnaW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgJiYgbWFyZ2lu
SW5mby5hdEJlZm9yZVNpZGVPZkJsb2NrKCkgJiYgKHBvc1RvcCAtIG5lZ1RvcCkpCkBAIC0yMDA2
LDQ0ICsyMDI0LDUzIEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmNvbGxhcHNlTWFyZ2lucyhS
ZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJnaW5JbmZvCiAgICAgTGF5b3V0VW5pdCBi
ZWZvcmVDb2xsYXBzZUxvZ2ljYWxUb3AgPSBsb2dpY2FsSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5p
dCBsb2dpY2FsVG9wID0gYmVmb3JlQ29sbGFwc2VMb2dpY2FsVG9wOwogICAgIGlmIChjaGlsZC0+
aXNTZWxmQ29sbGFwc2luZ0Jsb2NrKCkpIHsKLSAgICAgICAgLy8gVGhpcyBjaGlsZCBoYXMgbm8g
aGVpZ2h0LiAgV2UgbmVlZCB0byBjb21wdXRlIG91cgotICAgICAgICAvLyBwb3NpdGlvbiBiZWZv
cmUgd2UgY29sbGFwc2UgdGhlIGNoaWxkJ3MgbWFyZ2lucyB0b2dldGhlciwKLSAgICAgICAgLy8g
c28gdGhhdCB3ZSBjYW4gZ2V0IGFuIGFjY3VyYXRlIHBvc2l0aW9uIGZvciB0aGUgemVyby1oZWln
aHQgYmxvY2suCi0gICAgICAgIExheW91dFVuaXQgY29sbGFwc2VkQmVmb3JlUG9zID0gbWF4KG1h
cmdpbkluZm8ucG9zaXRpdmVNYXJnaW4oKSwgY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQmVm
b3JlKCkpOwotICAgICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZU5lZyA9IG1heChtYXJn
aW5JbmZvLm5lZ2F0aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkJlZm9y
ZSgpKTsKLSAgICAgICAgbWFyZ2luSW5mby5zZXRNYXJnaW4oY29sbGFwc2VkQmVmb3JlUG9zLCBj
b2xsYXBzZWRCZWZvcmVOZWcpOwotICAgICAgICAKLSAgICAgICAgLy8gTm93IGNvbGxhcHNlIHRo
ZSBjaGlsZCdzIG1hcmdpbnMgdG9nZXRoZXIsIHdoaWNoIG1lYW5zIGV4YW1pbmluZyBvdXIKLSAg
ICAgICAgLy8gYm90dG9tIG1hcmdpbiB2YWx1ZXMgYXMgd2VsbC4gCi0gICAgICAgIG1hcmdpbklu
Zm8uc2V0UG9zaXRpdmVNYXJnaW5JZkxhcmdlcihjaGlsZE1hcmdpbnMucG9zaXRpdmVNYXJnaW5B
ZnRlcigpKTsKLSAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdpbklmTGFyZ2VyKGNo
aWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkFmdGVyKCkpOwotCi0gICAgICAgIGlmICghbWFyZ2lu
SW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSkKLSAgICAgICAgICAgIC8vIFdlIG5l
ZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWxmLWNvbGxhcHNpbmcg
YmxvY2sKLSAgICAgICAgICAgIC8vIGlzIGNvcnJlY3QsIHNpbmNlIGl0IGNvdWxkIGhhdmUgb3Zl
cmZsb3dpbmcgY29udGVudAotICAgICAgICAgICAgLy8gdGhhdCBuZWVkcyB0byBiZSBwb3NpdGlv
bmVkIGNvcnJlY3RseSAoZS5nLiwgYSBibG9jayB0aGF0Ci0gICAgICAgICAgICAvLyBoYWQgYSBz
cGVjaWZpZWQgaGVpZ2h0IG9mIDAgYnV0IHRoYXQgYWN0dWFsbHkgaGFkIHN1YmNvbnRlbnQpLgot
ICAgICAgICAgICAgbG9naWNhbFRvcCA9IGxvZ2ljYWxIZWlnaHQoKSArIGNvbGxhcHNlZEJlZm9y
ZVBvcyAtIGNvbGxhcHNlZEJlZm9yZU5lZzsKLSAgICB9Ci0gICAgZWxzZSB7CisgICAgICAgIC8v
IEZvciBhIHNlbGYgY29sbGFwc2luZyBibG9jayBib3RoIHRoZSBiZWZvcmUgYW5kIGFmdGVyIG1h
cmdpbnMgZ2V0IGRpc2NhcmRlZC4gVGhlIGJsb2NrIGRvZXNuJ3QgY29udHJpYnV0ZSBhbnl0aGlu
ZyB0byB0aGUgaGVpZ2h0IG9mIHRoZSBibG9jay4KKyAgICAgICAgLy8gQWxzbywgdGhlIGNoaWxk
J3MgdG9wIHBvc2l0aW9uIGVxdWFscyB0aGUgbG9naWNhbCBoZWlnaHQgb2YgdGhlIGNvbnRhaW5l
ci4KKyAgICAgICAgaWYgKCFjaGlsZERpc2NhcmRNYXJnaW5CZWZvcmUgJiYgIW1hcmdpbkluZm8u
ZGlzY2FyZE1hcmdpbigpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGNoaWxkIGhhcyBubyBoZWln
aHQuIFdlIG5lZWQgdG8gY29tcHV0ZSBvdXIKKyAgICAgICAgICAgIC8vIHBvc2l0aW9uIGJlZm9y
ZSB3ZSBjb2xsYXBzZSB0aGUgY2hpbGQncyBtYXJnaW5zIHRvZ2V0aGVyLAorICAgICAgICAgICAg
Ly8gc28gdGhhdCB3ZSBjYW4gZ2V0IGFuIGFjY3VyYXRlIHBvc2l0aW9uIGZvciB0aGUgemVyby1o
ZWlnaHQgYmxvY2suCisgICAgICAgICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZVBvcyA9
IG1heChtYXJnaW5JbmZvLnBvc2l0aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1h
cmdpbkJlZm9yZSgpKTsKKyAgICAgICAgICAgIExheW91dFVuaXQgY29sbGFwc2VkQmVmb3JlTmVn
ID0gbWF4KG1hcmdpbkluZm8ubmVnYXRpdmVNYXJnaW4oKSwgY2hpbGRNYXJnaW5zLm5lZ2F0aXZl
TWFyZ2luQmVmb3JlKCkpOworICAgICAgICAgICAgbWFyZ2luSW5mby5zZXRNYXJnaW4oY29sbGFw
c2VkQmVmb3JlUG9zLCBjb2xsYXBzZWRCZWZvcmVOZWcpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICAvLyBOb3cgY29sbGFwc2UgdGhlIGNoaWxkJ3MgbWFyZ2lucyB0b2dldGhlciwgd2hpY2gg
bWVhbnMgZXhhbWluaW5nIG91cgorICAgICAgICAgICAgLy8gYm90dG9tIG1hcmdpbiB2YWx1ZXMg
YXMgd2VsbC4gCisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luSWZMYXJn
ZXIoY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSk7CisgICAgICAgICAgICBtYXJn
aW5JbmZvLnNldE5lZ2F0aXZlTWFyZ2luSWZMYXJnZXIoY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFy
Z2luQWZ0ZXIoKSk7CisKKyAgICAgICAgICAgIGlmICghbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdp
dGhNYXJnaW5CZWZvcmUoKSkKKyAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3Vy
ZSB0aGF0IHRoZSBwb3NpdGlvbiBvZiB0aGUgc2VsZi1jb2xsYXBzaW5nIGJsb2NrCisgICAgICAg
ICAgICAgICAgLy8gaXMgY29ycmVjdCwgc2luY2UgaXQgY291bGQgaGF2ZSBvdmVyZmxvd2luZyBj
b250ZW50CisgICAgICAgICAgICAgICAgLy8gdGhhdCBuZWVkcyB0byBiZSBwb3NpdGlvbmVkIGNv
cnJlY3RseSAoZS5nLiwgYSBibG9jayB0aGF0CisgICAgICAgICAgICAgICAgLy8gaGFkIGEgc3Bl
Y2lmaWVkIGhlaWdodCBvZiAwIGJ1dCB0aGF0IGFjdHVhbGx5IGhhZCBzdWJjb250ZW50KS4KKyAg
ICAgICAgICAgICAgICBsb2dpY2FsVG9wID0gbG9naWNhbEhlaWdodCgpICsgY29sbGFwc2VkQmVm
b3JlUG9zIC0gY29sbGFwc2VkQmVmb3JlTmVnOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgLy8gRklYTUU6IFRha2Ugd3JpdGluZyBkaXJlY3Rpb24gaW50byBhY2NvdW50IGZvciBT
RVBBUkFURS4KICAgICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBz
ZSgpID09IE1TRVBBUkFURSkgeworICAgICAgICAgICAgQVNTRVJUKCFtYXJnaW5JbmZvLmRpc2Nh
cmRNYXJnaW4oKSB8fCAobWFyZ2luSW5mby5kaXNjYXJkTWFyZ2luKCkgJiYgIW1hcmdpbkluZm8u
bWFyZ2luKCkpKTsKICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgp
ICsgbWFyZ2luSW5mby5tYXJnaW4oKSArIG1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkKSk7CiAg
ICAgICAgICAgICBsb2dpY2FsVG9wID0gbG9naWNhbEhlaWdodCgpOwotICAgICAgICB9Ci0gICAg
ICAgIGVsc2UgaWYgKCFtYXJnaW5JbmZvLmF0QmVmb3JlU2lkZU9mQmxvY2soKSB8fAotICAgICAg
ICAgICAgKCFtYXJnaW5JbmZvLmNhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aENoaWxkcmVuKCkK
LSAgICAgICAgICAgICAmJiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5J
bmZvLnF1aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQmVmb3JlUXVpcmsoKSkp
KSB7CisgICAgICAgIH0gZWxzZSBpZiAoIW1hcmdpbkluZm8uZGlzY2FyZE1hcmdpbigpICYmICgh
bWFyZ2luSW5mby5hdEJlZm9yZVNpZGVPZkJsb2NrKCkKKyAgICAgICAgICAgIHx8ICghbWFyZ2lu
SW5mby5jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbigpCisgICAgICAgICAgICAm
JiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFp
bmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQmVmb3JlUXVpcmsoKSkpKSkgewogICAgICAgICAg
ICAgLy8gV2UncmUgY29sbGFwc2luZyB3aXRoIGEgcHJldmlvdXMgc2libGluZydzIG1hcmdpbnMg
YW5kIG5vdAogICAgICAgICAgICAgLy8gd2l0aCB0aGUgdG9wIG9mIHRoZSBibG9jay4KICAgICAg
ICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbWF4KG1hcmdpbkluZm8u
cG9zaXRpdmVNYXJnaW4oKSwgcG9zVG9wKSAtIG1heChtYXJnaW5JbmZvLm5lZ2F0aXZlTWFyZ2lu
KCksIG5lZ1RvcCkpOwogICAgICAgICAgICAgbG9naWNhbFRvcCA9IGxvZ2ljYWxIZWlnaHQoKTsK
ICAgICAgICAgfQogCi0gICAgICAgIG1hcmdpbkluZm8uc2V0UG9zaXRpdmVNYXJnaW4oY2hpbGRN
YXJnaW5zLnBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSk7Ci0gICAgICAgIG1hcmdpbkluZm8uc2V0TmVn
YXRpdmVNYXJnaW4oY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQWZ0ZXIoKSk7CisgICAgICAg
IG1hcmdpbkluZm8uc2V0RGlzY2FyZE1hcmdpbihjaGlsZERpc2NhcmRNYXJnaW5BZnRlcik7Cisg
ICAgICAgIAorICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGlzY2FyZE1hcmdpbigpKSB7CisgICAg
ICAgICAgICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luKGNoaWxkTWFyZ2lucy5wb3NpdGl2
ZU1hcmdpbkFmdGVyKCkpOworICAgICAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdp
bihjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJnaW5BZnRlcigpKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2luKCk7CiAKICAgICAgICAgaWYgKG1hcmdp
bkluZm8ubWFyZ2luKCkpCi0gICAgICAgICAgICBtYXJnaW5JbmZvLnNldE1hcmdpbkFmdGVyUXVp
cmsoY2hpbGQtPmlzTWFyZ2luQWZ0ZXJRdWlyaygpIHx8IHN0eWxlKCktPm1hcmdpbkFmdGVyQ29s
bGFwc2UoKSA9PSBNRElTQ0FSRCk7CisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldE1hcmdpbkFm
dGVyUXVpcmsoY2hpbGQtPmlzTWFyZ2luQWZ0ZXJRdWlyaygpKTsKICAgICB9CiAgICAgCiAgICAg
Ly8gSWYgbWFyZ2lucyB3b3VsZCBwdWxsIHVzIHBhc3QgdGhlIHRvcCBvZiB0aGUgbmV4dCBwYWdl
LCB0aGVuIHdlIG5lZWQgdG8gcHVsbCBiYWNrIGFuZCBwcmV0ZW5kIGxpa2UgdGhlIG1hcmdpbnMK
QEAgLTIwNzksMTIgKzIxMDYsMTkgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6Y2xlYXJGbG9h
dHNJZk5lZWRlZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJnaW4KICAgICAgICAg
cmV0dXJuIHlQb3M7CiAKICAgICBpZiAoY2hpbGQtPmlzU2VsZkNvbGxhcHNpbmdCbG9jaygpKSB7
CisgICAgICAgIGJvb2wgY2hpbGREaXNjYXJkTWFyZ2luID0gbXVzdERpc2NhcmRNYXJnaW5CZWZv
cmVGb3JDaGlsZChjaGlsZCkgfHwgbXVzdERpc2NhcmRNYXJnaW5BZnRlckZvckNoaWxkKGNoaWxk
KTsKKwogICAgICAgICAvLyBGb3Igc2VsZi1jb2xsYXBzaW5nIGJsb2NrcyB0aGF0IGNsZWFyLCB0
aGV5IGNhbiBzdGlsbCBjb2xsYXBzZSB0aGVpcgogICAgICAgICAvLyBtYXJnaW5zIHdpdGggZm9s
bG93aW5nIHNpYmxpbmdzLiAgUmVzZXQgdGhlIGN1cnJlbnQgbWFyZ2lucyB0byByZXByZXNlbnQK
ICAgICAgICAgLy8gdGhlIHNlbGYtY29sbGFwc2luZyBibG9jaydzIG1hcmdpbnMgb25seS4KLSAg
ICAgICAgTWFyZ2luVmFsdWVzIGNoaWxkTWFyZ2lucyA9IG1hcmdpblZhbHVlc0ZvckNoaWxkKGNo
aWxkKTsKLSAgICAgICAgbWFyZ2luSW5mby5zZXRQb3NpdGl2ZU1hcmdpbihtYXgoY2hpbGRNYXJn
aW5zLnBvc2l0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkFm
dGVyKCkpKTsKLSAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdpbihtYXgoY2hpbGRN
YXJnaW5zLm5lZ2F0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdp
bkFmdGVyKCkpKTsKKyAgICAgICAgLy8gSWYgRElTQ0FSRCBpcyBzcGVjaWZpZWQgZm9yIC13ZWJr
aXQtbWFyZ2luLWNvbGxhcHNlLCByZXNldCB0aGUgbWFyZ2luIHZhbHVlcy4KKyAgICAgICAgaWYg
KCFjaGlsZERpc2NhcmRNYXJnaW4pIHsKKyAgICAgICAgICAgIE1hcmdpblZhbHVlcyBjaGlsZE1h
cmdpbnMgPSBtYXJnaW5WYWx1ZXNGb3JDaGlsZChjaGlsZCk7CisgICAgICAgICAgICBtYXJnaW5J
bmZvLnNldFBvc2l0aXZlTWFyZ2luKG1heChjaGlsZE1hcmdpbnMucG9zaXRpdmVNYXJnaW5CZWZv
cmUoKSwgY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSkpOworICAgICAgICAgICAg
bWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdpbihtYXgoY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFy
Z2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkFmdGVyKCkpKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2luKCk7CisgICAgICAg
IG1hcmdpbkluZm8uc2V0RGlzY2FyZE1hcmdpbihjaGlsZERpc2NhcmRNYXJnaW4pOwogCiAgICAg
ICAgIC8vIENTUzIuMSBzdGF0ZXM6CiAgICAgICAgIC8vICJJZiB0aGUgdG9wIGFuZCBib3R0b20g
bWFyZ2lucyBvZiBhbiBlbGVtZW50IHdpdGggY2xlYXJhbmNlIGFyZSBhZGpvaW5pbmcsIGl0cyBt
YXJnaW5zIGNvbGxhcHNlIHdpdGggCkBAIC0yMTEwLDYgKzIxNDQsMTEgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJCbG9jazo6Y2xlYXJGbG9hdHNJZk5lZWRlZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5J
bmZvJiBtYXJnaW4KICAgICAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KCkgKyBo
ZWlnaHRJbmNyZWFzZSk7CiAgICAgCiAgICAgaWYgKG1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRo
TWFyZ2luQmVmb3JlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFdoYXQgdG8gZG8gd2l0aCAtd2Vi
a2l0LW1hcmdpbi1jb2xsYXBzZTogZGlzY2FyZD8gSXQgbG9va3MKKyAgICAgICAgLy8gbGlrZSBh
IG5ldyBjaGlja2VuIGFuZCB0aGUgZWdnIGlzc3VlLiBJZiBkaXNjYXJkIGlzIG5vdCBzcGVjaWZp
ZWQKKyAgICAgICAgLy8gb2xkVG9wTWFyZ2luIGNhbiBiZSBvbmx5IFNNQUxMRVIgdGhhbiB0aGUg
Y3VycmVudCBtYXJnaW4uIEhvd2V2ZXIsCisgICAgICAgIC8vIHdpdGggY29sbGFwc2Ugb2xkVG9w
UG9zTWFyZ2luIGNhbiBiZSBMQVJHRVIuIENhbiB0aGlzIGNyZWF0ZSBwcm9ibGVtcz8KKwogICAg
ICAgICAvLyBXZSBjYW4gbm8gbG9uZ2VyIGNvbGxhcHNlIHdpdGggdGhlIHRvcCBvZiB0aGUgYmxv
Y2sgc2luY2UgYSBjbGVhcgogICAgICAgICAvLyBvY2N1cnJlZC4gIFRoZSBlbXB0eSBibG9ja3Mg
Y29sbGFwc2UgaW50byB0aGUgY2xlYXJlZCBibG9jay4KICAgICAgICAgLy8gRklYTUU6IFRoaXMg
aXNuJ3QgcXVpdGUgY29ycmVjdC4gIE5lZWQgY2xhcmlmaWNhdGlvbiBmb3Igd2hhdCB0byBkbwpA
QCAtMjE2Myw4ICsyMjAyLDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bWFyZ2luQmVmb3JlRXN0aW1h
dGVGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0JiBwb3MKICAgICAvLyBNYWtl
IHN1cmUgdG8gdXBkYXRlIHRoZSBibG9jayBtYXJnaW5zIG5vdyBmb3IgdGhlIGdyYW5kY2hpbGQg
Ym94IHNvIHRoYXQgd2UncmUgbG9va2luZyBhdCBjdXJyZW50IHZhbHVlcy4KICAgICBpZiAoZ3Jh
bmRjaGlsZEJveC0+bmVlZHNMYXlvdXQoKSkgewogICAgICAgICBncmFuZGNoaWxkQm94LT5jb21w
dXRlQW5kU2V0QmxvY2tEaXJlY3Rpb25NYXJnaW5zKHRoaXMpOwotICAgICAgICBncmFuZGNoaWxk
Qm94LT5zZXRNYXJnaW5CZWZvcmVRdWlyayhncmFuZGNoaWxkQm94LT5zdHlsZSgpLT5tYXJnaW5C
ZWZvcmUoKS5xdWlyaygpKTsKLSAgICAgICAgZ3JhbmRjaGlsZEJveC0+c2V0TWFyZ2luQWZ0ZXJR
dWlyayhncmFuZGNoaWxkQm94LT5zdHlsZSgpLT5tYXJnaW5BZnRlcigpLnF1aXJrKCkpOworICAg
ICAgICBncmFuZGNoaWxkQm94LT5zZXRNYXJnaW5CZWZvcmVRdWlyayhncmFuZGNoaWxkQm94LT5z
dHlsZSgpLT5pc01hcmdpbkJlZm9yZVF1aXJrKCkpOworICAgICAgICBncmFuZGNoaWxkQm94LT5z
ZXRNYXJnaW5BZnRlclF1aXJrKGdyYW5kY2hpbGRCb3gtPnN0eWxlKCktPmlzTWFyZ2luQWZ0ZXJR
dWlyaygpKTsKICAgICB9CiAKICAgICAvLyBDb2xsYXBzZSB0aGUgbWFyZ2luIG9mIHRoZSBncmFu
ZGNoaWxkIGJveCB3aXRoIG91ciBvd24gdG8gcHJvZHVjZSBhbiBlc3RpbWF0ZS4KQEAgLTIxNzks
NiArMjIxOCw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmVzdGltYXRlTG9naWNhbFRvcFBv
c2l0aW9uKFJlbmRlckJveCogY2hpbGQsIGNvbnN0IE1hcmdpCiAgICAgaWYgKCFtYXJnaW5JbmZv
LmNhbkNvbGxhcHNlV2l0aE1hcmdpbkJlZm9yZSgpKSB7CiAgICAgICAgIExheW91dFVuaXQgcG9z
aXRpdmVNYXJnaW5CZWZvcmUgPSAwOwogICAgICAgICBMYXlvdXRVbml0IG5lZ2F0aXZlTWFyZ2lu
QmVmb3JlID0gMDsKKyAgICAgICAgYm9vbCBkaXNjYXJkTWFyZ2luQmVmb3JlID0gbXVzdERpc2Nh
cmRNYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZCk7CiAgICAgICAgIGlmIChjaGlsZC0+c2VsZk5l
ZWRzTGF5b3V0KCkpIHsKICAgICAgICAgICAgIC8vIFRyeSB0byBkbyBhIGJhc2ljIGVzdGltYXRp
b24gb2YgaG93IHRoZSBjb2xsYXBzZSBpcyBnb2luZyB0byBnby4KICAgICAgICAgICAgIG1hcmdp
bkJlZm9yZUVzdGltYXRlRm9yQ2hpbGQoY2hpbGQsIHBvc2l0aXZlTWFyZ2luQmVmb3JlLCBuZWdh
dGl2ZU1hcmdpbkJlZm9yZSk7CkBAIC0yMTkxLDcgKzIyMzEsOCBAQCBMYXlvdXRVbml0IFJlbmRl
ckJsb2NrOjplc3RpbWF0ZUxvZ2ljYWxUb3BQb3NpdGlvbihSZW5kZXJCb3gqIGNoaWxkLCBjb25z
dCBNYXJnaQogICAgICAgICB9CiAKICAgICAgICAgLy8gQ29sbGFwc2UgdGhlIHJlc3VsdCB3aXRo
IG91ciBjdXJyZW50IG1hcmdpbnMuCi0gICAgICAgIGxvZ2ljYWxUb3BFc3RpbWF0ZSArPSBtYXgo
bWFyZ2luSW5mby5wb3NpdGl2ZU1hcmdpbigpLCBwb3NpdGl2ZU1hcmdpbkJlZm9yZSkgLSBtYXgo
bWFyZ2luSW5mby5uZWdhdGl2ZU1hcmdpbigpLCBuZWdhdGl2ZU1hcmdpbkJlZm9yZSk7CisgICAg
ICAgIGlmICghZGlzY2FyZE1hcmdpbkJlZm9yZSkKKyAgICAgICAgICAgIGxvZ2ljYWxUb3BFc3Rp
bWF0ZSArPSBtYXgobWFyZ2luSW5mby5wb3NpdGl2ZU1hcmdpbigpLCBwb3NpdGl2ZU1hcmdpbkJl
Zm9yZSkgLSBtYXgobWFyZ2luSW5mby5uZWdhdGl2ZU1hcmdpbigpLCBuZWdhdGl2ZU1hcmdpbkJl
Zm9yZSk7CiAgICAgfQogCiAgICAgLy8gQWRqdXN0IGxvZ2ljYWxUb3BFc3RpbWF0ZSBkb3duIHRv
IHRoZSBuZXh0IHBhZ2UgaWYgdGhlIG1hcmdpbnMgYXJlIHNvIGxhcmdlIHRoYXQgd2UgZG9uJ3Qg
Zml0IG9uIHRoZSBjdXJyZW50CkBAIC0yMjY2LDYgKzIzMDcsMTMgQEAgdm9pZCBSZW5kZXJCbG9j
azo6ZGV0ZXJtaW5lTG9naWNhbExlZnRQb3NpdGlvbkZvckNoaWxkKFJlbmRlckJveCogY2hpbGQp
CiB2b2lkIFJlbmRlckJsb2NrOjpzZXRDb2xsYXBzZWRCb3R0b21NYXJnaW4oY29uc3QgTWFyZ2lu
SW5mbyYgbWFyZ2luSW5mbykKIHsKICAgICBpZiAobWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhN
YXJnaW5BZnRlcigpICYmICFtYXJnaW5JbmZvLmNhbkNvbGxhcHNlV2l0aE1hcmdpbkJlZm9yZSgp
KSB7CisgICAgICAgIC8vIFVwZGF0ZSB0aGUgYWZ0ZXIgc2lkZSBtYXJnaW4gb2YgdGhlIGNvbnRh
aW5lciB0byBkaXNjYXJkIGlmIHRoZSBhZnRlciBtYXJnaW4gb2YgdGhlIGxhc3QgY2hpbGQgYWxz
byBkaXNjYXJkcyBhbmQgd2UgY29sbGFwc2Ugd2l0aCBpdC4KKyAgICAgICAgLy8gRG9uJ3QgdXBk
YXRlIHRoZSBtYXggbWFyZ2luIHZhbHVlcyBiZWNhdXNlIHdlIHdvbid0IG5lZWQgdGhlbSBhbnl3
YXkuCisgICAgICAgIGlmIChtYXJnaW5JbmZvLmRpc2NhcmRNYXJnaW4oKSkgeworICAgICAgICAg
ICAgc2V0TXVzdERpc2NhcmRNYXJnaW5BZnRlcigpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKICAgICAgICAgLy8gVXBkYXRlIG91ciBtYXggcG9zL25lZyBib3R0b20gbWFyZ2lu
cywgc2luY2Ugd2UgY29sbGFwc2VkIG91ciBib3R0b20gbWFyZ2lucwogICAgICAgICAvLyB3aXRo
IG91ciBjaGlsZHJlbi4KICAgICAgICAgc2V0TWF4TWFyZ2luQWZ0ZXJWYWx1ZXMobWF4KG1heFBv
c2l0aXZlTWFyZ2luQWZ0ZXIoKSwgbWFyZ2luSW5mby5wb3NpdGl2ZU1hcmdpbigpKSwgbWF4KG1h
eE5lZ2F0aXZlTWFyZ2luQWZ0ZXIoKSwgbWFyZ2luSW5mby5uZWdhdGl2ZU1hcmdpbigpKSk7CkBA
IC0yMjg4LDkgKzIzMzYsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjpoYW5kbGVBZnRlclNpZGVPZkJs
b2NrKExheW91dFVuaXQgYmVmb3JlU2lkZSwgTGF5b3V0VW5pdCBhZnRlcgogICAgIC8vIElmIHdl
IGNhbid0IGNvbGxhcHNlIHdpdGggY2hpbGRyZW4gdGhlbiBnbyBhaGVhZCBhbmQgYWRkIGluIHRo
ZSBib3R0b20gbWFyZ2luLgogICAgIC8vIERvbid0IGRvIHRoaXMgZm9yIG9yZGluYXJ5IGFub255
bW91cyBibG9ja3MgYXMgb25seSB0aGUgZW5jbG9zaW5nIGJveCBzaG91bGQgYWRkIGluCiAgICAg
Ly8gaXRzIG1hcmdpbi4KLSAgICBpZiAoIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2lu
QWZ0ZXIoKSAmJiAhbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKQorICAg
IGlmICghbWFyZ2luSW5mby5kaXNjYXJkTWFyZ2luKCkgJiYgKCFtYXJnaW5JbmZvLmNhbkNvbGxh
cHNlV2l0aE1hcmdpbkFmdGVyKCkgJiYgIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2lu
QmVmb3JlKCkKICAgICAgICAgJiYgKCFpc0Fub255bW91c0Jsb2NrKCkgfHwgaXNBbm9ueW1vdXND
b2x1bW5zQmxvY2soKSB8fCBpc0Fub255bW91c0NvbHVtblNwYW5CbG9jaygpKQotICAgICAgICAm
JiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFp
bmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQWZ0ZXJRdWlyaygpKSkKKyAgICAgICAgJiYgKCFk
b2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSB8fCAhbWFyZ2luSW5mby5xdWlya0NvbnRhaW5lcigp
IHx8ICFtYXJnaW5JbmZvLm1hcmdpbkFmdGVyUXVpcmsoKSkpKQogICAgICAgICBzZXRMb2dpY2Fs
SGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSArIG1hcmdpbkluZm8ubWFyZ2luKCkpOwogICAgICAgICAK
ICAgICAvLyBOb3cgYWRkIGluIG91ciBib3R0b20gYm9yZGVyL3BhZGRpbmcuCkBAIC0yNDEyLDE2
ICsyNDYwLDExIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGQoUmVuZGVyQm94
KiBjaGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbywgTGF5CiAgICAgTGF5b3V0VW5pdCBvbGRQ
b3NNYXJnaW5CZWZvcmUgPSBtYXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpOwogICAgIExheW91dFVu
aXQgb2xkTmVnTWFyZ2luQmVmb3JlID0gbWF4TmVnYXRpdmVNYXJnaW5CZWZvcmUoKTsKIAorICAg
IFJlbmRlclN0eWxlKiBjaGlsZFN0eWxlID0gY2hpbGQtPnN0eWxlKCk7CisKICAgICAvLyBUaGUg
Y2hpbGQgaXMgYSBub3JtYWwgZmxvdyBvYmplY3QuICBDb21wdXRlIHRoZSBtYXJnaW5zIHdlIHdp
bGwgdXNlIGZvciBjb2xsYXBzaW5nIG5vdy4KICAgICBjaGlsZC0+Y29tcHV0ZUFuZFNldEJsb2Nr
RGlyZWN0aW9uTWFyZ2lucyh0aGlzKTsKIAotICAgIC8vIERvIG5vdCBhbGxvdyBhIGNvbGxhcHNl
IGlmIHRoZSBtYXJnaW4tYmVmb3JlLWNvbGxhcHNlIHN0eWxlIGlzIHNldCB0byBTRVBBUkFURS4K
LSAgICBSZW5kZXJTdHlsZSogY2hpbGRTdHlsZSA9IGNoaWxkLT5zdHlsZSgpOwotICAgIGlmIChj
aGlsZFN0eWxlLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1TRVBBUkFURSkgewotICAgICAg
ICBtYXJnaW5JbmZvLnNldEF0QmVmb3JlU2lkZU9mQmxvY2soZmFsc2UpOwotICAgICAgICBtYXJn
aW5JbmZvLmNsZWFyTWFyZ2luKCk7Ci0gICAgfQotCiAgICAgLy8gVHJ5IHRvIGd1ZXNzIG91ciBj
b3JyZWN0IGxvZ2ljYWwgdG9wIHBvc2l0aW9uLiAgSW4gbW9zdCBjYXNlcyB0aGlzIGd1ZXNzIHdp
bGwKICAgICAvLyBiZSBjb3JyZWN0LiAgT25seSBpZiB3ZSdyZSB3cm9uZyAod2hlbiB3ZSBjb21w
dXRlIHRoZSByZWFsIGxvZ2ljYWwgdG9wIHBvc2l0aW9uKQogICAgIC8vIHdpbGwgd2UgaGF2ZSB0
byBwb3RlbnRpYWxseSByZWxheW91dC4KQEAgLTY4MzAsNiArNjg3Myw1NiBAQCB2b2lkIFJlbmRl
ckJsb2NrOjpzZXRNYXhNYXJnaW5BZnRlclZhbHVlcyhMYXlvdXRVbml0IHBvcywgTGF5b3V0VW5p
dCBuZWcpCiAgICAgbV9yYXJlRGF0YS0+bV9tYXJnaW5zLnNldE5lZ2F0aXZlTWFyZ2luQWZ0ZXIo
bmVnKTsKIH0KIAordm9pZCBSZW5kZXJCbG9jazo6c2V0TXVzdERpc2NhcmRNYXJnaW5CZWZvcmUo
KQoreworICAgIGlmIChzdHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1ESVNDQVJE
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fcmFyZURhdGEpCisgICAgICAgIG1fcmFy
ZURhdGEgPSBhZG9wdFB0cihuZXcgUmVuZGVyQmxvY2tSYXJlRGF0YSh0aGlzKSk7CisKKyAgICBt
X3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJnaW5CZWZvcmUgPSB0cnVlOworfQorCit2b2lkIFJlbmRl
ckJsb2NrOjpzZXRNdXN0RGlzY2FyZE1hcmdpbkFmdGVyKCkKK3sKKyAgICBpZiAoc3R5bGUoKS0+
bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1ESVNDQVJEKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIW1fcmFyZURhdGEpCisgICAgICAgIG1fcmFyZURhdGEgPSBhZG9wdFB0cihuZXcgUmVu
ZGVyQmxvY2tSYXJlRGF0YSh0aGlzKSk7CisKKyAgICBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJn
aW5BZnRlciA9IHRydWU7Cit9CisKK2Jvb2wgUmVuZGVyQmxvY2s6Om11c3REaXNjYXJkTWFyZ2lu
QmVmb3JlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFw
c2UoKSA9PSBNRElTQ0FSRCB8fCAobV9yYXJlRGF0YSAmJiBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRN
YXJnaW5CZWZvcmUpOworfQorCitib29sIFJlbmRlckJsb2NrOjptdXN0RGlzY2FyZE1hcmdpbkFm
dGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3R5bGUoKS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgp
ID09IE1ESVNDQVJEIHx8IChtX3JhcmVEYXRhICYmIG1fcmFyZURhdGEtPm1fZGlzY2FyZE1hcmdp
bkFmdGVyKTsKK30KKworYm9vbCBSZW5kZXJCbG9jazo6bXVzdERpc2NhcmRNYXJnaW5CZWZvcmVG
b3JDaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdAoreworICAgIGlmICghY2hpbGQt
PmlzV3JpdGluZ01vZGVSb290KCkpCisgICAgICAgIHJldHVybiBjaGlsZC0+aXNSZW5kZXJCbG9j
aygpID8gdG9SZW5kZXJCbG9jayhjaGlsZCktPm11c3REaXNjYXJkTWFyZ2luQmVmb3JlKCkgOiAo
Y2hpbGQtPnN0eWxlKCktPm1hcmdpbkJlZm9yZUNvbGxhcHNlKCkgPT0gTURJU0NBUkQpOworICAg
IGlmIChjaGlsZC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpKQorICAgICAgICByZXR1cm4gY2hpbGQtPmlzUmVuZGVyQmxvY2soKSA/IHRvUmVu
ZGVyQmxvY2soY2hpbGQpLT5tdXN0RGlzY2FyZE1hcmdpbkFmdGVyKCkgOiAoY2hpbGQtPnN0eWxl
KCktPm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFJlbmRlckJsb2NrOjptdXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQo
Y29uc3QgUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKK3sKKyAgICBpZiAoIWNoaWxkLT5pc1dyaXRp
bmdNb2RlUm9vdCgpKQorICAgICAgICByZXR1cm4gY2hpbGQtPmlzUmVuZGVyQmxvY2soKSA/IHRv
UmVuZGVyQmxvY2soY2hpbGQpLT5tdXN0RGlzY2FyZE1hcmdpbkFmdGVyKCkgOiAoY2hpbGQtPnN0
eWxlKCktPm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7CisgICAgaWYgKGNoaWxk
LT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID09IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkp
CisgICAgICAgIHJldHVybiBjaGlsZC0+aXNSZW5kZXJCbG9jaygpID8gdG9SZW5kZXJCbG9jayhj
aGlsZCktPm11c3REaXNjYXJkTWFyZ2luQmVmb3JlKCkgOiAoY2hpbGQtPnN0eWxlKCktPm1hcmdp
bkJlZm9yZUNvbGxhcHNlKCkgPT0gTURJU0NBUkQpOworICAgIHJldHVybiBmYWxzZTsKK30KKwog
dm9pZCBSZW5kZXJCbG9jazo6c2V0UGFnaW5hdGlvblN0cnV0KExheW91dFVuaXQgc3RydXQpCiB7
CiAgICAgaWYgKCFtX3JhcmVEYXRhKSB7CkBAIC03MTExLDExICs3MjA0LDEyIEBAIExheW91dFVu
aXQgUmVuZGVyQmxvY2s6OmFwcGx5QWZ0ZXJCcmVhayhSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRV
bml0IGxvZ2ljYWxPZmZzCiAgICAgYm9vbCBjaGVja0FmdGVyQWx3YXlzID0gKGNoZWNrQ29sdW1u
QnJlYWtzICYmIGNoaWxkLT5zdHlsZSgpLT5jb2x1bW5CcmVha0FmdGVyKCkgPT0gUEJBTFdBWVMp
IHx8IChjaGVja1BhZ2VCcmVha3MgJiYgY2hpbGQtPnN0eWxlKCktPnBhZ2VCcmVha0FmdGVyKCkg
PT0gUEJBTFdBWVMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGNoZWNrUmVnaW9u
QnJlYWtzICYmIGNoaWxkLT5zdHlsZSgpLT5yZWdpb25CcmVha0FmdGVyKCkgPT0gUEJBTFdBWVMp
OwogICAgIGlmIChjaGVja0FmdGVyQWx3YXlzICYmIGluTm9ybWFsRmxvdyhjaGlsZCkgJiYgaGFz
TmV4dFBhZ2UobG9naWNhbE9mZnNldCwgSW5jbHVkZVBhZ2VCb3VuZGFyeSkpIHsKLSAgICAgICAg
bWFyZ2luSW5mby5zZXRNYXJnaW5BZnRlclF1aXJrKHRydWUpOyAvLyBDYXVzZSBtYXJnaW5zIHRv
IGJlIGRpc2NhcmRlZCBmb3IgYW55IGZvbGxvd2luZyBjb250ZW50LgorICAgICAgICBtYXJnaW5J
bmZvLnNldERpc2NhcmRNYXJnaW4odHJ1ZSk7IC8vIENhdXNlIG1hcmdpbnMgdG8gYmUgZGlzY2Fy
ZGVkIGZvciBhbnkgZm9sbG93aW5nIGNvbnRlbnQuCiAgICAgICAgIGlmIChjaGVja0NvbHVtbkJy
ZWFrcykKICAgICAgICAgICAgIHZpZXcoKS0+bGF5b3V0U3RhdGUoKS0+YWRkRm9yY2VkQ29sdW1u
QnJlYWsoY2hpbGQsIGxvZ2ljYWxPZmZzZXQpOwogICAgICAgICBpZiAoY2hlY2tSZWdpb25CcmVh
a3MpIHsKICAgICAgICAgICAgIExheW91dFVuaXQgbWFyZ2luT2Zmc2V0ID0gbWFyZ2luSW5mby5j
YW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSA/IExheW91dFVuaXQoKSA6IG1hcmdpbkluZm8u
bWFyZ2luKCk7CisgICAgICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2luKCk7CiAgICAgICAg
ICAgICBMYXlvdXRVbml0IG9mZnNldEJyZWFrQWRqdXN0bWVudCA9IDA7CiAgICAgICAgICAgICBp
ZiAoZW5jbG9zaW5nUmVuZGVyRmxvd1RocmVhZCgpLT5hZGRGb3JjZWRSZWdpb25CcmVhayhvZmZz
ZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKCkgKyBsb2dpY2FsT2Zmc2V0ICsgbWFyZ2luT2Zm
c2V0LCBjaGlsZCwgZmFsc2UsICZvZmZzZXRCcmVha0FkanVzdG1lbnQpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBsb2dpY2FsT2Zmc2V0ICsgb2Zmc2V0QnJlYWtBZGp1c3RtZW50OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCAxZWQyMTFjZTgzOGZkM2U2MzM1MTQy
ZjMxNzBkZTE2ZTg1OTcyZDdkLi4zYmFmNWY2ZWZlYWJkNzRiNzJmMzg3MTIwNDViOGMxZjI0ZGYx
ZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNDU1LDEyICs0
NTUsMjUgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TWF4TWFyZ2luQmVmb3JlVmFsdWVzKExh
eW91dFVuaXQgcG9zLCBMYXlvdXRVbml0IG5lZyk7CiAgICAgdm9pZCBzZXRNYXhNYXJnaW5BZnRl
clZhbHVlcyhMYXlvdXRVbml0IHBvcywgTGF5b3V0VW5pdCBuZWcpOwogCisgICAgdm9pZCBzZXRN
dXN0RGlzY2FyZE1hcmdpbkJlZm9yZSgpOworICAgIHZvaWQgc2V0TXVzdERpc2NhcmRNYXJnaW5B
ZnRlcigpOworCisgICAgYm9vbCBtdXN0RGlzY2FyZE1hcmdpbkJlZm9yZSgpIGNvbnN0OworICAg
IGJvb2wgbXVzdERpc2NhcmRNYXJnaW5BZnRlcigpIGNvbnN0OworCisgICAgYm9vbCBtdXN0RGlz
Y2FyZE1hcmdpbkJlZm9yZUZvckNoaWxkKGNvbnN0IFJlbmRlckJveCopIGNvbnN0OworICAgIGJv
b2wgbXVzdERpc2NhcmRNYXJnaW5BZnRlckZvckNoaWxkKGNvbnN0IFJlbmRlckJveCopIGNvbnN0
OworCiAgICAgdm9pZCBpbml0TWF4TWFyZ2luVmFsdWVzKCkKICAgICB7CiAgICAgICAgIGlmICht
X3JhcmVEYXRhKSB7CiAgICAgICAgICAgICBtX3JhcmVEYXRhLT5tX21hcmdpbnMgPSBNYXJnaW5W
YWx1ZXMoUmVuZGVyQmxvY2tSYXJlRGF0YTo6cG9zaXRpdmVNYXJnaW5CZWZvcmVEZWZhdWx0KHRo
aXMpICwgUmVuZGVyQmxvY2tSYXJlRGF0YTo6bmVnYXRpdmVNYXJnaW5CZWZvcmVEZWZhdWx0KHRo
aXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl
bmRlckJsb2NrUmFyZURhdGE6OnBvc2l0aXZlTWFyZ2luQWZ0ZXJEZWZhdWx0KHRoaXMpLCBSZW5k
ZXJCbG9ja1JhcmVEYXRhOjpuZWdhdGl2ZU1hcmdpbkFmdGVyRGVmYXVsdCh0aGlzKSk7CiAgICAg
ICAgICAgICBtX3JhcmVEYXRhLT5tX3BhZ2luYXRpb25TdHJ1dCA9IDA7CisKKyAgICAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgZ2V0IGNhbGxlZCBmb3IgdGFibGUgY2Vs
bHMuIERvZXMgaXQgbWF0dGVyPworICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV9kaXNjYXJkTWFy
Z2luQmVmb3JlID0gZmFsc2U7CisgICAgICAgICAgICBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJn
aW5BZnRlciA9IGZhbHNlOwogICAgICAgICB9CiAgICAgfQogCkBAIC05NTksNiArOTcyLDggQEAg
cHJpdmF0ZToKICAgICAgICAgYm9vbCBtX21hcmdpbkFmdGVyUXVpcmsgOiAxOwogICAgICAgICBi
b29sIG1fZGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrIDogMTsKIAorICAgICAgICBib29sIG1f
ZGlzY2FyZE1hcmdpbiA6IDE7CisKICAgICAgICAgLy8gVGhlc2UgZmxhZ3MgdHJhY2sgdGhlIHBy
ZXZpb3VzIG1heGltYWwgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG1hcmdpbnMuCiAgICAgICAgIExh
eW91dFVuaXQgbV9wb3NpdGl2ZU1hcmdpbjsKICAgICAgICAgTGF5b3V0VW5pdCBtX25lZ2F0aXZl
TWFyZ2luOwpAQCAtOTc2LDMzICs5OTEsMzcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXRN
YXJnaW5CZWZvcmVRdWlyayhib29sIGIpIHsgbV9tYXJnaW5CZWZvcmVRdWlyayA9IGI7IH0KICAg
ICAgICAgdm9pZCBzZXRNYXJnaW5BZnRlclF1aXJrKGJvb2wgYikgeyBtX21hcmdpbkFmdGVyUXVp
cmsgPSBiOyB9CiAgICAgICAgIHZvaWQgc2V0RGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKGJv
b2wgYikgeyBtX2RldGVybWluZWRNYXJnaW5CZWZvcmVRdWlyayA9IGI7IH0KLSAgICAgICAgdm9p
ZCBzZXRQb3NpdGl2ZU1hcmdpbihMYXlvdXRVbml0IHApIHsgbV9wb3NpdGl2ZU1hcmdpbiA9IHA7
IH0KLSAgICAgICAgdm9pZCBzZXROZWdhdGl2ZU1hcmdpbihMYXlvdXRVbml0IG4pIHsgbV9uZWdh
dGl2ZU1hcmdpbiA9IG47IH0KKyAgICAgICAgdm9pZCBzZXRQb3NpdGl2ZU1hcmdpbihMYXlvdXRV
bml0IHApIHsgQVNTRVJUKCFtX2Rpc2NhcmRNYXJnaW4pOyBtX3Bvc2l0aXZlTWFyZ2luID0gcDsg
fQorICAgICAgICB2b2lkIHNldE5lZ2F0aXZlTWFyZ2luKExheW91dFVuaXQgbikgeyBBU1NFUlQo
IW1fZGlzY2FyZE1hcmdpbik7IG1fbmVnYXRpdmVNYXJnaW4gPSBuOyB9CiAgICAgICAgIHZvaWQg
c2V0UG9zaXRpdmVNYXJnaW5JZkxhcmdlcihMYXlvdXRVbml0IHApCiAgICAgICAgIHsKKyAgICAg
ICAgICAgIEFTU0VSVCghbV9kaXNjYXJkTWFyZ2luKTsKICAgICAgICAgICAgIGlmIChwID4gbV9w
b3NpdGl2ZU1hcmdpbikKICAgICAgICAgICAgICAgICBtX3Bvc2l0aXZlTWFyZ2luID0gcDsKICAg
ICAgICAgfQogICAgICAgICB2b2lkIHNldE5lZ2F0aXZlTWFyZ2luSWZMYXJnZXIoTGF5b3V0VW5p
dCBuKQogICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoIW1fZGlzY2FyZE1hcmdpbik7CiAg
ICAgICAgICAgICBpZiAobiA+IG1fbmVnYXRpdmVNYXJnaW4pCiAgICAgICAgICAgICAgICAgbV9u
ZWdhdGl2ZU1hcmdpbiA9IG47CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHNldE1hcmdpbihM
YXlvdXRVbml0IHAsIExheW91dFVuaXQgbikgeyBtX3Bvc2l0aXZlTWFyZ2luID0gcDsgbV9uZWdh
dGl2ZU1hcmdpbiA9IG47IH0KKyAgICAgICAgdm9pZCBzZXRNYXJnaW4oTGF5b3V0VW5pdCBwLCBM
YXlvdXRVbml0IG4pIHsgQVNTRVJUKCFtX2Rpc2NhcmRNYXJnaW4pOyBtX3Bvc2l0aXZlTWFyZ2lu
ID0gcDsgbV9uZWdhdGl2ZU1hcmdpbiA9IG47IH0KKyAgICAgICAgdm9pZCBzZXRDYW5Db2xsYXBz
ZU1hcmdpbkFmdGVyV2l0aENoaWxkcmVuKGJvb2wgY29sbGFwc2UpIHsgbV9jYW5Db2xsYXBzZU1h
cmdpbkFmdGVyV2l0aENoaWxkcmVuID0gY29sbGFwc2U7IH0KKyAgICAgICAgdm9pZCBzZXREaXNj
YXJkTWFyZ2luKGJvb2wgdmFsdWUpIHsgbV9kaXNjYXJkTWFyZ2luID0gdmFsdWU7IH0KIAogICAg
ICAgICBib29sIGF0QmVmb3JlU2lkZU9mQmxvY2soKSBjb25zdCB7IHJldHVybiBtX2F0QmVmb3Jl
U2lkZU9mQmxvY2s7IH0KICAgICAgICAgYm9vbCBjYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUo
KSBjb25zdCB7IHJldHVybiBtX2F0QmVmb3JlU2lkZU9mQmxvY2sgJiYgbV9jYW5Db2xsYXBzZU1h
cmdpbkJlZm9yZVdpdGhDaGlsZHJlbjsgfQogICAgICAgICBib29sIGNhbkNvbGxhcHNlV2l0aE1h
cmdpbkFmdGVyKCkgY29uc3QgeyByZXR1cm4gbV9hdEFmdGVyU2lkZU9mQmxvY2sgJiYgbV9jYW5D
b2xsYXBzZU1hcmdpbkFmdGVyV2l0aENoaWxkcmVuOyB9CiAgICAgICAgIGJvb2wgY2FuQ29sbGFw
c2VNYXJnaW5CZWZvcmVXaXRoQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX2NhbkNvbGxhcHNl
TWFyZ2luQmVmb3JlV2l0aENoaWxkcmVuOyB9CiAgICAgICAgIGJvb2wgY2FuQ29sbGFwc2VNYXJn
aW5BZnRlcldpdGhDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2FuQ29sbGFwc2VNYXJnaW5B
ZnRlcldpdGhDaGlsZHJlbjsgfQotICAgICAgICB2b2lkIHNldENhbkNvbGxhcHNlTWFyZ2luQWZ0
ZXJXaXRoQ2hpbGRyZW4oYm9vbCBjb2xsYXBzZSkgeyBtX2NhbkNvbGxhcHNlTWFyZ2luQWZ0ZXJX
aXRoQ2hpbGRyZW4gPSBjb2xsYXBzZTsgfQogICAgICAgICBib29sIHF1aXJrQ29udGFpbmVyKCkg
Y29uc3QgeyByZXR1cm4gbV9xdWlya0NvbnRhaW5lcjsgfQogICAgICAgICBib29sIGRldGVybWlu
ZWRNYXJnaW5CZWZvcmVRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fZGV0ZXJtaW5lZE1hcmdpbkJl
Zm9yZVF1aXJrOyB9CiAgICAgICAgIGJvb2wgbWFyZ2luQmVmb3JlUXVpcmsoKSBjb25zdCB7IHJl
dHVybiBtX21hcmdpbkJlZm9yZVF1aXJrOyB9CiAgICAgICAgIGJvb2wgbWFyZ2luQWZ0ZXJRdWly
aygpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luQWZ0ZXJRdWlyazsgfQogICAgICAgICBMYXlvdXRV
bml0IHBvc2l0aXZlTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGl2ZU1hcmdpbjsgfQog
ICAgICAgICBMYXlvdXRVbml0IG5lZ2F0aXZlTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gbV9uZWdh
dGl2ZU1hcmdpbjsgfQorICAgICAgICBib29sIGRpc2NhcmRNYXJnaW4oKSBjb25zdCB7IHJldHVy
biBtX2Rpc2NhcmRNYXJnaW47IH0KICAgICAgICAgTGF5b3V0VW5pdCBtYXJnaW4oKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aXZlTWFyZ2luIC0gbV9uZWdhdGl2ZU1hcmdpbjsgfQogICAgIH07CiAK
QEAgLTExODIsOCArMTIwMSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICAsIG1fcGFnaW5h
dGlvblN0cnV0KDApCiAgICAgICAgICAgICAsIG1fcGFnZUxvZ2ljYWxPZmZzZXQoMCkKICAgICAg
ICAgICAgICwgbV9saW5lR3JpZEJveCgwKQotICAgICAgICAgICAgLCBtX3Nob3VsZEJyZWFrQXRM
aW5lVG9Bdm9pZFdpZG93KGZhbHNlKQogICAgICAgICAgICAgLCBtX2xpbmVCcmVha1RvQXZvaWRX
aWRvdygwKQorICAgICAgICAgICAgLCBtX3Nob3VsZEJyZWFrQXRMaW5lVG9Bdm9pZFdpZG93KGZh
bHNlKQorICAgICAgICAgICAgLCBtX2Rpc2NhcmRNYXJnaW5CZWZvcmUoZmFsc2UpCisgICAgICAg
ICAgICAsIG1fZGlzY2FyZE1hcmdpbkFmdGVyKGZhbHNlKQogICAgICAgICB7IAogICAgICAgICB9
CiAKQEAgLTExOTEsNyArMTIxMiw2IEBAIHByb3RlY3RlZDoKICAgICAgICAgeyAKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om1heDxMYXlvdXRVbml0PihibG9jay0+bWFyZ2luQmVmb3JlKCksIDAp
OwogICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBzdGF0aWMgTGF5b3V0VW5pdCBuZWdhdGl2
ZU1hcmdpbkJlZm9yZURlZmF1bHQoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQogICAgICAgICB7
IAogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+KC1ibG9jay0+bWFyZ2lu
QmVmb3JlKCksIDApOwpAQCAtMTIxMSw4ICsxMjMxLDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAg
CiAgICAgICAgIFJvb3RJbmxpbmVCb3gqIG1fbGluZUdyaWRCb3g7CiAKLSAgICAgICAgYm9vbCBt
X3Nob3VsZEJyZWFrQXRMaW5lVG9Bdm9pZFdpZG93OwogICAgICAgICBSb290SW5saW5lQm94KiBt
X2xpbmVCcmVha1RvQXZvaWRXaWRvdzsKKyAgICAgICAgYm9vbCBtX3Nob3VsZEJyZWFrQXRMaW5l
VG9Bdm9pZFdpZG93IDogMTsKKyAgICAgICAgYm9vbCBtX2Rpc2NhcmRNYXJnaW5CZWZvcmUgOiAx
OworICAgICAgICBib29sIG1fZGlzY2FyZE1hcmdpbkFmdGVyIDogMTsKICAgICAgfTsKIAogICAg
IE93blB0cjxSZW5kZXJCbG9ja1JhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBkMDlhNTUxNWQ4MzA1Y2U3YWU2
MDhhOTBkZjdmODg0ZjQ1ZDRlNTBkLi43OWViZTlkM2NhYjJmY2E0ZTZjYjIwN2YzYzVlNzRlZDFk
YWQzYjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aApAQCAtMzc3LDYgKzM3Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0JvcmRlcigpIGNvbnN0
IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIuaGFzQm9yZGVyKCk7IH0KICAgICBib29sIGhhc1Bh
ZGRpbmcoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+cGFkZGluZy5ub25aZXJvKCk7IH0KICAg
ICBib29sIGhhc09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5vZmZzZXQubm9uWmVy
bygpOyB9CisgICAgYm9vbCBpc01hcmdpbkJlZm9yZVF1aXJrKCkgY29uc3QgeyByZXR1cm4gbWFy
Z2luQmVmb3JlKCkucXVpcmsoKTsgfQorICAgIGJvb2wgaXNNYXJnaW5BZnRlclF1aXJrKCkgY29u
c3QgeyByZXR1cm4gbWFyZ2luQWZ0ZXIoKS5xdWlyaygpOyB9CiAKICAgICBib29sIGhhc0JhY2tn
cm91bmRJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLmhh
c0ltYWdlKCk7IH0KICAgICBib29sIGhhc0ZpeGVkQmFja2dyb3VuZEltYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9iYWNrZ3JvdW5kLT5iYWNrZ3JvdW5kKCkuaGFzRml4ZWRJbWFnZSgpOyB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZGUwZTQzNDJkZDg3ZjA1OWJlNzA4ZjY4OWFjYjY4ZGJmNTAwZGUzNy4uMTc3N2ExZDU2OGQx
N2E1ZTljNGU5NTM1MDNiNDQ5NDU0MzFhZDVjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEz
LTAyLTA0ICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCB0aGUgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRl
cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4
MTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgdHdvIHJlZiB0ZXN0cyBjb3ZlcmluZyB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiB0aGUg
LXdlYmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcy4KKworICAgICAgICAqIGZhc3QvYmxv
Y2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFpbmVyLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dl
YmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFpbmVyLmh0bWw6IFRlc3QgZm9yIGJveC1jb250YWlu
ZXIgYmVoYXZpb3IuCisgICAgICAgICogZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0
LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxp
bmdzLmh0bWw6IFRlc3QgZm9yIGJveC1zaWJsaW5nIGJlaGF2aW9yLgorCiAyMDEzLTAyLTA0ICBT
YW1pIEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERpc2FibGUg
LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmcgQ1NTIGF0dHJpYnV0ZSBvbiBDaHJvbWl1bQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1h
cmdpbi1jb2xsYXBzZS1jb250YWluZXItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
YmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFpbmVyLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDdjZDM2YzNiYzI2YTIyODY2N2RiNWUzZTM1YmFkMWYy
NjFjN2UwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2lu
LWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFpbmVyLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwxNjUgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8c3R5bGU+CisJCWRpdiB7CisJ
CQltYXJnaW46IDBweDsKKwkJfQorCisJCS5jb250YWluZXIgeworCQkJYm9yZGVyOiB0aGluIHNv
bGlkIGJsdWU7CisJCQl3aWR0aDogMzUwcHg7CisJCQlmbG9hdDogbGVmdDsKKwkJfQorCisJCS5z
ZWxmX2NvbGxhcHNlIHsKKwkJCW1hcmdpbi10b3A6IDIwcHg7CisJCQltYXJnaW4tYm90dG9tOiA1
MHB4OworCQkJaGVpZ2h0OiAwcHg7CisJCX0KKworCQkubGV2ZWwxIHsKKwkJCW1hcmdpbi10b3A6
IDEwcHg7CisJCQltYXJnaW4tYm90dG9tOiAxMHB4OworCQkJYm9yZGVyOiAxcHggZGFzaGVkIGJs
YWNrOworCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisJCX0KKworCQkubGV2ZWwyIHsKKwkJ
CW1hcmdpbi10b3A6IDMwcHg7CisJCQltYXJnaW4tYm90dG9tOiAyMHB4OworCQkJYmFja2dyb3Vu
ZC1jb2xvcjogb3JhbmdlOworCQl9CisKKwkJLmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiA1MHB4
OworCQkJbWFyZ2luLWJvdHRvbTogNDBweDsKKwkJCWJhY2tncm91bmQtY29sb3I6IHBpbms7CisJ
CX0KKworCQkjdDEgLmxldmVsMiB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCX0KKworCQkjdDEg
LmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCX0KKworCQkjdDIgLmxldmVsMiB7CisJ
CQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjdDIgLmxldmVsMyB7CisJCQltYXJnaW4t
Ym90dG9tOiAwcHg7CisJCX0KKworCQkjdDMgLmxldmVsMiB7CisJCQltYXJnaW4tdG9wOiAwcHg7
CisJCX0KKworCQkjdDMgLmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCX0KKworCQkj
dDQgLmxldmVsMiB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjdDQgLmxldmVs
MyB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjdDUgLmxldmVsMiB7CisJCQlt
YXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjdDUgLmxl
dmVsMyB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0K
KworCQkjdDYgLmxldmVsMiB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9t
OiAwcHg7CisJCX0KKworCQkjdDYgLmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQlt
YXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjdDcgLmxldmVsMyB7CisJCQltYXJnaW4tdG9w
OiAwcHg7CisJCX0KKworCQkjdDggLmxldmVsMyB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJ
CX0KKworCQkjdDkgLmxldmVsMiB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQlwYWRkaW5nLXRv
cDogNTBweDsKKwkJfQorCisJCSN0OSAubGV2ZWwzIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJ
fQorCisJCSN0MTAgLmxldmVsMiB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCQlwYWRkaW5n
LWJvdHRvbTogNDBweDsKKwkJfQorCisJCSN0MTAgLmxldmVsMyB7CisJCQltYXJnaW4tYm90dG9t
OiAwcHg7CisJCX0KKworCQkjdDExIC5sZXZlbDIgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJ
cGFkZGluZy10b3A6IDUwcHg7CisJCX0KKworCQkjdDExIC5sZXZlbDMgeworCQkJbWFyZ2luLXRv
cDogMHB4OworCQl9CisKKwkJI3QxMSB7CisJCQlwYWRkaW5nLXRvcDogMzBweDsKKwkJfQorCisJ
CSN0MTIgLmxldmVsMiB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCQlwYWRkaW5nLWJvdHRv
bTogNDBweDsKKwkJfQorCisJCSN0MTIgLmxldmVsMyB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7
CisJCX0KKworCQkjdDEyIHsKKwkJCXBhZGRpbmctYm90dG9tOiAyMHB4OworCQl9CisKKwkJPC9z
dHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNjgiPkltcGxlbWVudCB0aGUgLXdl
YmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZzwvYT4uPC9w
PgorCQk8cD5UaGlzIHJlZiB0ZXN0IGNvdmVycyBiYXNpYyBjb2xsYXBzaW5nIGJlaGF2aW9yIGJl
dHdlZW4gYSBib3ggYW5kIGl0cyBjb250YWluZXIgd2hlbiB1c2luZyAtd2Via2l0LW1hcmdpbi1j
b2xsYXBzZS48L3A+CisJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisJCQk8ZGl2IGlkPSJ0MSIg
Y2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPlBp
bms6IGRpc2NhcmQgdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0MiIgY2xhc3M9
ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPlBpbms6IGRp
c2NhcmQgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0MyIgY2xhc3M9Imxl
dmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogZGlz
Y2FyZCB0b3A8L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQ0IiBjbGFzcz0ibGV2ZWwx
Ij48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJk
IGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDUiIGNsYXNzPSJsZXZlbDEi
PjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IGRpc2NhcmQg
dG9wLCBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDYiIGNs
YXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5QaW5r
OiBkaXNjYXJkIHRvcCwgZGlzY2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYg
aWQ9InQ3IiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9Imxl
dmVsMyI+T3JhbmdlOiBzZXBhcmF0ZSB0b3AsIFBpbms6IGRpc2NhcmQgdG9wPC9kaXY+PC9kaXY+
PC9kaXY+CisJCQk8ZGl2IGlkPSJ0OCIgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwy
Ij48ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogc2VwYXJhdGUgYm90dG9tLCBQaW5rOiBkaXNj
YXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQk8L2Rpdj4KKwkJPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKwkJCTxkaXYgaWQ9InQ5IiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZl
bDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIHRvcCwgUGluazogc2VwYXJh
dGVfdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0MTAiIGNsYXNzPSJsZXZlbDEi
PjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IGRpc2NhcmQg
Ym90dG9tLCBQaW5rOiBzZXBhcmF0ZSBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYg
aWQ9InQxMSIgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJs
ZXZlbDMiPk9yYW5nZTogc2VwYXJhdGUgdG9wLCBQaW5rOiBzZXBhcmF0ZSB0b3A8L2Rpdj48L2Rp
dj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQxMiIgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2
ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogc2VwYXJhdGUgYm90dG9tLCBQaW5rOiBz
ZXBhcmF0ZSBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJPC9kaXY+CisJPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFp
bmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQt
bWFyZ2luLWNvbGxhcHNlLWNvbnRhaW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlOGQ2YzdmYjY0YzFk
NGM4NDA4YWNkMmYzMmUwNjc2Mjk2MDM3NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWNvbnRh
aW5lci5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8c3R5bGU+CisJ
CWRpdiB7CisJCQltYXJnaW46IDBweDsKKwkJfQorCisJCS5jb250YWluZXIgeworCQkJYm9yZGVy
OiB0aGluIHNvbGlkIGJsdWU7CisJCQl3aWR0aDogMzUwcHg7CisJCQlmbG9hdDogbGVmdDsKKwkJ
fQorCisJCS5zZWxmX2NvbGxhcHNlIHsKKwkJCW1hcmdpbi10b3A6IDIwcHg7CisJCQltYXJnaW4t
Ym90dG9tOiA1MHB4OworCQkJaGVpZ2h0OiAwcHg7CisJCX0KKworCQkubGV2ZWwxIHsKKwkJCW1h
cmdpbi10b3A6IDEwcHg7CisJCQltYXJnaW4tYm90dG9tOiAxMHB4OworCQkJYm9yZGVyOiAxcHgg
ZGFzaGVkIGJsYWNrOworCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisJCX0KKworCQkubGV2
ZWwyIHsKKwkJCW1hcmdpbi10b3A6IDMwcHg7CisJCQltYXJnaW4tYm90dG9tOiAyMHB4OworCQkJ
YmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOworCQl9CisKKwkJLmxldmVsMyB7CisJCQltYXJnaW4t
dG9wOiA1MHB4OworCQkJbWFyZ2luLWJvdHRvbTogNDBweDsKKwkJCWJhY2tncm91bmQtY29sb3I6
IHBpbms7CisJCX0KKworCQkuY29sbGFwc2VfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1j
b2xsYXBzZTogY29sbGFwc2U7CisJCX0KKworCQkuY29sbGFwc2VfYm90dG9tIHsKKwkJCS13ZWJr
aXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBzZTogY29sbGFwc2U7CisJCX0KKworCQkuZGlzY2FyZF90
b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBkaXNjYXJkOworCQl9CisKKwkJ
LmRpc2NhcmRfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBzZTogZGlz
Y2FyZDsKKwkJfQorCisJCS5zZXBhcmF0ZV90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNv
bGxhcHNlOiBzZXBhcmF0ZTsKKwkJfQorCisJCS5zZXBhcmF0ZV9ib3R0b20geworCQkJLXdlYmtp
dC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlOiBzZXBhcmF0ZTsKKwkJfQorCQk8L3N0eWxlPgorCTwv
aGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2OCI+SW1wbGVtZW50IHRoZSAtd2Via2l0LW1hcmdp
bi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJlY3QgcmVuZGVyaW5nPC9hPi48L3A+CisJCTxwPlRo
aXMgcmVmIHRlc3QgY292ZXJzIGJhc2ljIGNvbGxhcHNpbmcgYmVoYXZpb3IgYmV0d2VlbiBhIGJv
eCBhbmQgaXRzIGNvbnRhaW5lciB3aGVuIHVzaW5nIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlLjwv
cD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRp
diBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMgZGlzY2FyZF90b3AiPlBpbms6IGRp
c2NhcmQgdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJsZXZlbDEiPjxkaXYg
Y2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIGRpc2NhcmRfYm90dG9tIj5QaW5rOiBk
aXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48
ZGl2IGNsYXNzPSJsZXZlbDIgZGlzY2FyZF90b3AiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3Jhbmdl
OiBkaXNjYXJkIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48
ZGl2IGNsYXNzPSJsZXZlbDIgZGlzY2FyZF9ib3R0b20iPjxkaXYgY2xhc3M9ImxldmVsMyI+T3Jh
bmdlOiBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2
ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgZGlzY2FyZF90b3AgZGlzY2FyZF9ib3R0b20iPjxkaXYg
Y2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIHRvcCwgZGlzY2FyZCBib3R0b208L2Rpdj48
L2Rpdj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48
ZGl2IGNsYXNzPSJsZXZlbDMgZGlzY2FyZF90b3AgZGlzY2FyZF9ib3R0b20iPlBpbms6IGRpc2Nh
cmQgdG9wLCBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0i
bGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgc2VwYXJhdGVfdG9wIj48ZGl2IGNsYXNzPSJsZXZl
bDMgZGlzY2FyZF90b3AiPk9yYW5nZTogc2VwYXJhdGUgdG9wLCBQaW5rOiBkaXNjYXJkIHRvcDwv
ZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZl
bDIgc2VwYXJhdGVfYm90dG9tIj48ZGl2IGNsYXNzPSJsZXZlbDMgZGlzY2FyZF9ib3R0b20iPk9y
YW5nZTogc2VwYXJhdGUgYm90dG9tLCBQaW5rOiBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2Pjwv
ZGl2PgorCQk8L2Rpdj4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKwkJCTxkaXYgY2xhc3M9
ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIGRpc2NhcmRfdG9wIj48ZGl2IGNsYXNzPSJsZXZl
bDMgc2VwYXJhdGVfdG9wIj5PcmFuZ2U6IGRpc2NhcmQgdG9wLCBQaW5rOiBzZXBhcmF0ZV90b3A8
L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2
ZWwyIGRpc2NhcmRfYm90dG9tIj48ZGl2IGNsYXNzPSJsZXZlbDMgc2VwYXJhdGVfYm90dG9tIj5P
cmFuZ2U6IGRpc2NhcmQgYm90dG9tLCBQaW5rOiBzZXBhcmF0ZSBib3R0b208L2Rpdj48L2Rpdj48
L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIHNlcGFyYXRl
X3RvcCI+PGRpdiBjbGFzcz0ibGV2ZWwzIHNlcGFyYXRlX3RvcCI+T3JhbmdlOiBzZXBhcmF0ZSB0
b3AsIFBpbms6IHNlcGFyYXRlIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0i
bGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgc2VwYXJhdGVfYm90dG9tIj48ZGl2IGNsYXNzPSJs
ZXZlbDMgc2VwYXJhdGVfYm90dG9tIj5PcmFuZ2U6IHNlcGFyYXRlIGJvdHRvbSwgUGluazogc2Vw
YXJhdGUgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCTwvZGl2PgorCTwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdz
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93
ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGZlNzJlNzVmYjc5MzQ4MjhmZGU5N2ZjZjkyZmNiMDJmNTM5MjJjYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4t
Y29sbGFwc2Utc2libGluZ3MtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkzIEBACis8aHRtbD4K
Kwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYgeworCQkJbWFyZ2luOiAwcHg7CisJCX0KKworCQku
Y29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhpbiBzb2xpZCBibHVlOworCQkJd2lkdGg6IDMwMHB4
OworCQl9CisKKwkJLmJsb2NrIHsKKwkJCWJhY2tncm91bmQtY29sb3I6IGdyZWVuOworCQkJbWFy
Z2luLXRvcDogMjBweDsKKwkJCW1hcmdpbi1ib3R0b206IDMwcHg7CisJCQlib3JkZXI6IDFweCBk
YXNoZWQgYmxhY2s7CisJCX0KKworCQkuY29sbGFwc2VfdG9wOmJlZm9yZSwgLmNvbGxhcHNlX2Jv
dHRvbTphZnRlciB7CisJCQljb250ZW50OiAiQ29sbGFwc2UiOworCQl9CisKKwkJLmRpc2NhcmRf
dG9wOmJlZm9yZSwgLmRpc2NhcmRfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJEaXNjYXJk
IjsKKwkJfQorCisJCS5zZXBhcmF0ZV90b3A6YmVmb3JlLCAuc2VwYXJhdGVfYm90dG9tOmFmdGVy
IHsKKwkJCWNvbnRlbnQ6ICJTZXBhcmF0ZSI7CisJCX0KKworCQkjYjIgeworCQkJbWFyZ2luLXRv
cDogMzBweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNiMyB7CisJCQltYXJn
aW4tdG9wOiA1MHB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI2I0IHsKKwkJ
CW1hcmdpbi10b3A6IDBweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNiNSB7
CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkj
YjYgeworCQkJbWFyZ2luLXRvcDogMjBweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQor
CisJCSNiNyB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJ
CX0KKworCQkjYjggeworCQkJbWFyZ2luLXRvcDogNTBweDsKKwkJCW1hcmdpbi1ib3R0b206IDBw
eDsKKwkJfQorCisJCSNiOSB7CisJCQltYXJnaW4tdG9wOiA3MHB4OworCQkJbWFyZ2luLWJvdHRv
bTogMzBweDsKKwkJfQorCisJCSNiMTAgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQl9CisJCTwv
c3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBsZW1lbnQgdGhlIC13
ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5kZXJpbmc8L2E+Ljwv
cD4KKwkJPHA+VGhpcyByZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2luZyBiZWhhdmlvciBi
ZXR3ZWVuIHNpYmxpbmcgYm94ZXMgd2hlbiB1c2luZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS48
L3A+CisJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisJCQk8ZGl2IGlkPSJiMSIgY2xhc3M9ImJs
b2NrIGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlk
PSJiMiIgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+PC9k
aXY+CisJCQk8ZGl2IGlkPSJiMyIgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBjb2xsYXBzZV9i
b3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiNCIgY2xhc3M9ImJsb2NrIGRpc2NhcmRf
dG9wIGRpc2NhcmRfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjUiIGNsYXNzPSJi
bG9jayBjb2xsYXBzZV90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlk
PSJiNiIgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48L2Rp
dj4KKwkJCTxkaXYgaWQ9ImI3IiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3Agc2VwYXJhdGVfYm90
dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjgiIGNsYXNzPSJibG9jayBjb2xsYXBzZV90
b3Agc2VwYXJhdGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjkiIGNsYXNzPSJi
bG9jayBzZXBhcmF0ZV90b3Agc2VwYXJhdGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBp
ZD0iYjEwIiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwv
ZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uv
d2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9i
bG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI2ZDI4ODgxZmY2NmNiYjAwZGQ2NDY0MGQ2ZGM3NWNhNGFhOWYwNzUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93
ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPGh0
bWw+CisJPGhlYWQ+CisJCTxzdHlsZT4KKwkJZGl2IHsKKwkJCW1hcmdpbjogMHB4OworCQl9CisK
KwkJLmNvbnRhaW5lciB7CisJCQlib3JkZXI6IHRoaW4gc29saWQgYmx1ZTsKKwkJCXdpZHRoOiAz
MDBweDsKKwkJfQorCisJCS5ibG9jayB7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKwkJ
CW1hcmdpbi10b3A6IDIwcHg7CisJCQltYXJnaW4tYm90dG9tOiAzMHB4OworCQkJYm9yZGVyOiAx
cHggZGFzaGVkIGJsYWNrOworCQl9CisKKwkJLnNlbGZfY29sbGFwc2UgeworCQkJbWFyZ2luLXRv
cDogMTBweDsKKwkJCW1hcmdpbi1ib3R0b206IDIwcHg7CisJCQloZWlnaHQ6IDBweDsKKwkJfQor
CisJCS5jb2xsYXBzZV90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBjb2xs
YXBzZTsKKwkJfQorCisJCS5jb2xsYXBzZV9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90
dG9tLWNvbGxhcHNlOiBjb2xsYXBzZTsKKwkJfQorCisJCS5jb2xsYXBzZV90b3A6YmVmb3JlLCAu
Y29sbGFwc2VfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJDb2xsYXBzZSI7CisJCX0KKwor
CQkuZGlzY2FyZF90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBkaXNjYXJk
OworCQl9CisKKwkJLmRpc2NhcmRfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1j
b2xsYXBzZTogZGlzY2FyZDsKKwkJfQorCisJCS5kaXNjYXJkX3RvcDpiZWZvcmUsIC5kaXNjYXJk
X2JvdHRvbTphZnRlciB7CisJCQljb250ZW50OiAiRGlzY2FyZCI7CisJCX0KKworCQkuc2VwYXJh
dGVfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogc2VwYXJhdGU7CisJCX0K
KworCQkuc2VwYXJhdGVfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBz
ZTogc2VwYXJhdGU7CisJCX0KKworCQkuc2VwYXJhdGVfdG9wOmJlZm9yZSwgLnNlcGFyYXRlX2Jv
dHRvbTphZnRlciB7CisJCQljb250ZW50OiAiU2VwYXJhdGUiOworCQl9CisJCTwvc3R5bGU+CisJ
PC9oZWFkPgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBsZW1lbnQgdGhlIC13ZWJraXQtbWFy
Z2luLWNvbGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5kZXJpbmc8L2E+LjwvcD4KKwkJPHA+
VGhpcyByZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2luZyBiZWhhdmlvciBiZXR3ZWVuIHNp
YmxpbmcgYm94ZXMgd2hlbiB1c2luZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS48L3A+CisJCTxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3Ag
Y29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBz
ZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90
dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJ
CQk8ZGl2IGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwv
ZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNz
PSJibG9jayBkaXNjYXJkX3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYg
Y2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgY29sbGFw
c2VfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9j
b2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3AgZGlzY2Fy
ZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rp
dj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJy
Lz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBj
bGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJ
CTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sg
c2VwYXJhdGVfdG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9
InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3Ag
Y29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186860</attachid>
            <date>2013-02-06 08:26:56 -0800</date>
            <delta_ts>2013-02-06 12:31:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108168-20130206182332.patch</filename>
            <type>text/plain</type>
            <size>60772</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmY2Q1Yzg5ZjlmYmNj
N2RlZjllNDNlNmMzYTVmMjViZmViNzcwNC4uNGEwNmMxY2M1ZTgyMjQ1ZDhjNDJjOWFkOTI2ZTZh
NWVkMDI4ODJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEzLTAyLTA2ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgLXdl
YmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHBhdGNoIGltcGxl
bWVudHMgdGhlIGNvcnJlY3QgYmVoYXZpb3IgZm9yIHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBz
ZSBwcm9wZXJ0aWVzOgorICAgICAgICAtIGEgdmFsdWUgb2YgImRpc2NhcmQiIG9uIGEgbWFyZ2lu
IHdpbGwgdHJ1bmNhdGUgYWxsIHRoZSBtYXJnaW5zIGNvbGxhcHNpbmcgd2l0aCBpdDsKKyAgICAg
ICAgLSBhIHZhbHVlIG9mICJzZXBhcmF0ZSIgd2lsbCBwcmV2ZW50IHRoZSBtYXJnaW4gdG8gY29s
bGFwc2U7CisgICAgICAgIC0gYSB2YWx1ZSBvZiAiY29sbGFwc2UiIGlzIHRoZSBkZWZhdWx0IGNv
bGxhcHNlIGJlaGF2aW9yLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhd2FyZSBv
ZiBtdWx0aXBsZSB3cml0aW5nLW1vZGVzOgorICAgICAgICAtIGlmIHRoZSB3cml0aW5nIG1vZGUg
b2YgYSBjaGlsZCBpcyBwYXJhbGxlbCB3aXRoIHRoZSB3cml0aW5nIG1vZGUgb2YgdGhlIGNvbnRh
aW5lciBhbmQgaGFzIHRoZSBzYW1lIGRpcmVjdGlvbiwKKyAgICAgICAgdGhlIC13ZWJraXQtbWFy
Z2luLWNvbGxhcHNlIHByb3BlcnRpZXMgb24gdGhlIGNoaWxkIGFyZSBsZWZ0IGFzIGlzOworICAg
ICAgICAtIGlmIHRoZSB3cml0aW5nIG1vZGUgb2YgYSBjaGlsZCBpcyBwYXJhbGxlbCB3aXRoIHRo
ZSB3cml0aW5nIG1vZGUgb2YgdGhlIGNvbnRhaW5lciBidXQgaGFzIGEgZGlmZmVyZW50IGRpcmVj
dGlvbiwKKyAgICAgICAgdGhlIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgb24g
dGhlIGNoaWxkIGFyZSByZXZlcnNlZDsKKyAgICAgICAgLSBpZiB0aGUgd3JpdGluZyBtb2RlIG9m
IGEgY2hpbGQgaXMgcGVycGVuZGljdWxhciBvbiB0aGUgd3JpdGluZyBtb2RlIG9mIHRoZSBjb250
YWluZXIsCisgICAgICAgIHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIG9u
IHRoZSBjaGlsZCBhcmUgaWdub3JlZDsKKworICAgICAgICBJLiBUaGUgImRpc2NhcmQiIHZhbHVl
IGltcGxlbWVudGF0aW9uCisgICAgICAgIFRoZXJlIGFyZSB0d28gbmV3IGJpdHMgKGJlZm9yZSBh
bmQgYWZ0ZXIpIGFkZGVkIG9uIHRoZSBSZW5kZXJCbG9ja1JhcmVEYXRhIHN0cnVjdHVyZSBzcGVj
aWZ5aW5nIGlmIHRoZSBtYXJnaW5zCisgICAgICAgIG9mIHRoZSBibG9jayB3aWxsIGJlIGRpc2Nh
cmRlZCBvciBub3QuIFdlIGNhbid0IHJlbHkgb25seSBvbiB0aGUgdmFsdWUgZnJvbSBzdHlsZSgp
IGJlY2F1c2UKKyAgICAgICAgaXQncyBwb3NzaWJsZSBhIGJsb2NrIHRvIGRpc2NhcmQgaXQncyBt
YXJnaW5zIGJlY2F1c2UgaXQgaGFzIGNvbGxhcHNlZCB3aXRoIGEgY2hpbGRyZW4gdGhhdAorICAg
ICAgICBzcGVjaWZpZWQgImRpc2NhcmQiIGZvciAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS4gSG93
ZXZlciwgdGhlIGJpdHMgYXJlIHNldCBvbmx5IGlmIGl0IGlzCisgICAgICAgIHJlcXVpcmVkLgor
ICAgICAgICBBbm90aGVyIGJpdCBpcyBhZGRlZCBvbiB0aGUgTWFyZ2luSW5mbyBzdHJ1Y3R1cmUg
c3BlY2lmeWluZyBpZiB0aGUgbWFyZ2luIGhhcyB0byBiZSBkaXNjYXJkZWQgb3Igbm90LiBXaGVu
CisgICAgICAgIGNvbGxhcHNpbmcgYXQgdGhlIGJlZm9yZSBzaWRlIG9mIGEgYmxvY2sgaXQgd2ls
bCBob2xkIGluZm9ybWF0aW9uIGlmIHRoZSBjb250YWluZXIgYmxvY2sgbmVlZHMgdG8gZGlzY2Fy
ZAorICAgICAgICBvciBub3QuIElmIHRoZSBjb2xsYXBzaW5nIGhhcHBlbnMgYmV0d2VlbiBzaWJs
aW5ncy93aXRoIGFmdGVyIHNpZGUgb2YgdGhlIGNvbnRhaW5lciBpdCB3aWxsIHRlbGwgaWYgdGhl
IHByZXZpb3VzCisgICAgICAgIGNoaWxkIGRpc2NhcmRzIHRoZSBtYXJnaW4gb3Igbm90LiBUaGUg
c2VsZiBjb2xsYXBzaW5nIGJsb2NrcyBhcmUgYSBzcGVjaWFsIGNhc2UuIElmIGFueSBvZiBpdHMg
bWFyZ2lucworICAgICAgICBkaXNjYXJkcyB0aGVuIGJvdGggaXRzIG1hcmdpbnMgZGlzY2FyZCBh
bmQgYWxsIHRoZSBvdGhlciBtYXJnaW5zIGNvbGxhcHNpbmcgd2l0aCBpdC4KKyAgICAgICAgVG8g
ZW5zdXJlIGFuIG9wdGltYWwgYmVoYXZpb3IgaXQgaXMgYXNzZXJ0ZWQgbWFyZ2luIHZhbHVlcyBj
YW4ndCBiZSBzZXQgb24gdGhlIE1hcmdpbkluZm8gb2JqZWN0IGlmIHRoZQorICAgICAgICBkaXNj
YXJkIGZsYWcgaXMgYWN0aXZlLiBJZiB0aGlzIGhhcHBlbnMgaXQgbWF5IGluZGljYXRlIHNvbWVv
bmUgaWdub3JlZCB0aGUgcG9zc2liaWxpdHkgb2YgdGhlIG1hcmdpbiBiZWluZworICAgICAgICBk
aXNjYXJkZWQgYWx0b2dldGhlciBhbmQgaW5jb3JyZWN0bHkgdXBkYXRlZCB0aGUgbWFyZ2luIHZh
bHVlcy4KKyAgICAgICAgRmxvYXQgY2xlYXJpbmcgYWxzbyBuZWVkcyB0byBjaGFuZ2UgYmVjYXVz
ZSBpdCBtYXkgZm9yY2UgbWFyZ2lucyB0byBzdG9wIGNvbGxhcHNpbmcuIElmIHRoaXMgaGFwcGVu
cyB0aGUgZGlzY2FyZAorICAgICAgICBmbGFncyBhbmQgbWFyZ2lucyBuZWVkcyB0byBiZSByZXN0
b3JlZCB0byB0aGVpciB2YWx1ZXMgYmVmb3JlIHRoZSBjb2xsYXBzZS4KKworICAgICAgICBJSS4g
VGhlICJzZXBhcmF0ZSIgdmFsdWUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgVGhlIGltcGxlbWVu
dGF0aW9uIGZvciBzZXBhcmF0ZSB3YXMgbm90IGNoYW5nZWQgdG9vIG11Y2guIEkndmUgYWRkZWQg
bmV3IGFjY2Vzc29yIG1ldGhvZHMgZm9yIHRoZSBwcm9wZXJ0eQorICAgICAgICB0aGF0IHRha2Ug
d3JpdGluZyBtb2RlIGludG8gY29uc2lkZXJhdGlvbiBhbmQgSSd2ZSByZW1vdmVkIHNvbWUgY29k
ZSB0aGF0IGRpZG4ndCB3b3JrIGNvcnJlY3RseSBpbiBsYXlvdXRCbG9ja0NoaWxkLgorICAgICAg
ICBUaGUgcHJvYmxlbSB3YXMgdGhlIG1hcmdpbkluZm8gc3RydWN0dXJlIHdhcyBjbGVhcmVkIGlm
IHRoZSBjaGlsZCB3YXMgc3BlY2lmeWluZyB0aGUgInNlcGFyYXRlIiB2YWx1ZSBmb3IgYmVmb3Jl
LgorICAgICAgICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgeW91IGxvc2UgdGhlIG1hcmdpbiBpbmZv
cm1hdGlvbiBvZiB0aGUgcHJldmlvdXMgY2hpbGQvYmVmb3JlIHNpZGUuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29u
dGFpbmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dl
YmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvYmxv
Y2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdp
bi1jb2xsYXBzZS1zaWJsaW5ncy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1hcmdpbkluZm86Ok1hcmdp
bkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNsZWFyRmxvYXRzSWZOZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUVzdGltYXRlRm9yQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmVzdGltYXRlTG9naWNhbFRvcFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzZXRDb2xsYXBzZWRCb3R0b21NYXJnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmhhbmRsZUFmdGVyU2lkZU9mQmxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE11c3REaXNjYXJkTWFyZ2luQmVmb3JlKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE11c3RE
aXNjYXJkTWFyZ2luQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Om11c3RE
aXNjYXJkTWFyZ2luQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0
RGlzY2FyZE1hcmdpbkFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0
RGlzY2FyZE1hcmdpbkJlZm9yZUZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjptdXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6Om11c3RTZXBhcmF0ZU1hcmdpbkJlZm9yZUZvckNoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0U2VwYXJhdGVNYXJnaW5BZnRlckZvckNoaWxkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFJlbmRlckJsb2Nr
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbml0TWF4TWFyZ2luVmFsdWVzKToK
KyAgICAgICAgKE1hcmdpbkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1h
cmdpbkluZm86OnNldFBvc2l0aXZlTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpNYXJnaW5JbmZvOjpzZXROZWdhdGl2ZU1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0UG9zaXRpdmVNYXJnaW5JZkxhcmdlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0TmVnYXRpdmVNYXJnaW5J
Zkxhcmdlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0
TWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpzZXRD
YW5Db2xsYXBzZU1hcmdpbkFmdGVyV2l0aENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpNYXJnaW5JbmZvOjpzZXREaXNjYXJkTWFyZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpkaXNjYXJkTWFyZ2luKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRhOjpSZW5kZXJCbG9ja1JhcmVE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRh
Ojpwb3NpdGl2ZU1hcmdpbkJlZm9yZURlZmF1bHQpOgorICAgICAgICAoUmVuZGVyQmxvY2tSYXJl
RGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKIDIwMTMt
MDItMDYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGlt
aXplIEdseXBoUGFnZSBmb3IgY2FzZSB3aGVyZSBhbGwgZ2x5cGhzIGFyZSBhdmFpbGFibGUgaW4g
dGhlIHNhbWUgZm9udC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmlu
ZGV4IDVhNGE4M2Q5NTk0MjU3MzRiMjY2MTQ0NzRlM2RjZDc2ZTBkMDQ3YjEuLjlkNzBmMTBkOTlk
OTQ4ZWVlMzMwYjllNzdjY2M3YjQyMTczZGIzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcApAQCAtMTY5LDYgKzE2OSw3IEBAIFJlbmRlckJsb2NrOjpNYXJnaW5J
bmZvOjpNYXJnaW5JbmZvKFJlbmRlckJsb2NrKiBibG9jaywgTGF5b3V0VW5pdCBiZWZvcmVCb3Jk
ZXJQCiAgICAgLCBtX21hcmdpbkJlZm9yZVF1aXJrKGZhbHNlKQogICAgICwgbV9tYXJnaW5BZnRl
clF1aXJrKGZhbHNlKQogICAgICwgbV9kZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsoZmFsc2Up
CisgICAgLCBtX2Rpc2NhcmRNYXJnaW4oZmFsc2UpCiB7CiAgICAgUmVuZGVyU3R5bGUqIGJsb2Nr
U3R5bGUgPSBibG9jay0+c3R5bGUoKTsKICAgICBBU1NFUlQoYmxvY2stPmlzUmVuZGVyVmlldygp
IHx8IGJsb2NrLT5wYXJlbnQoKSk7CkBAIC0xODYsMTEgKzE4NywxMiBAQCBSZW5kZXJCbG9jazo6
TWFyZ2luSW5mbzo6TWFyZ2luSW5mbyhSZW5kZXJCbG9jayogYmxvY2ssIExheW91dFVuaXQgYmVm
b3JlQm9yZGVyUAogICAgIG1fY2FuQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhDaGlsZHJlbiA9IG1f
Y2FuQ29sbGFwc2VXaXRoQ2hpbGRyZW4gJiYgKGFmdGVyQm9yZGVyUGFkZGluZyA9PSAwKSAmJgog
ICAgICAgICAoYmxvY2tTdHlsZS0+bG9naWNhbEhlaWdodCgpLmlzQXV0bygpICYmICFibG9ja1N0
eWxlLT5sb2dpY2FsSGVpZ2h0KCkudmFsdWUoKSkgJiYgYmxvY2tTdHlsZS0+bWFyZ2luQWZ0ZXJD
b2xsYXBzZSgpICE9IE1TRVBBUkFURTsKICAgICAKLSAgICBtX3F1aXJrQ29udGFpbmVyID0gYmxv
Y2stPmlzVGFibGVDZWxsKCkgfHwgYmxvY2stPmlzQm9keSgpIHx8IGJsb2NrU3R5bGUtPm1hcmdp
bkJlZm9yZUNvbGxhcHNlKCkgPT0gTURJU0NBUkQKLSAgICAgICAgfHwgYmxvY2tTdHlsZS0+bWFy
Z2luQWZ0ZXJDb2xsYXBzZSgpID09IE1ESVNDQVJEOworICAgIG1fcXVpcmtDb250YWluZXIgPSBi
bG9jay0+aXNUYWJsZUNlbGwoKSB8fCBibG9jay0+aXNCb2R5KCk7CiAKLSAgICBtX3Bvc2l0aXZl
TWFyZ2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiA/IGJsb2NrLT5t
YXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpIDogTGF5b3V0VW5pdCgpOwotICAgIG1fbmVnYXRpdmVN
YXJnaW4gPSBtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aENoaWxkcmVuID8gYmxvY2stPm1h
eE5lZ2F0aXZlTWFyZ2luQmVmb3JlKCkgOiBMYXlvdXRVbml0KCk7CisgICAgbV9kaXNjYXJkTWFy
Z2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiAmJiBibG9jay0+bXVz
dERpc2NhcmRNYXJnaW5CZWZvcmUoKTsKKworICAgIG1fcG9zaXRpdmVNYXJnaW4gPSAobV9jYW5D
b2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiAmJiAhYmxvY2stPm11c3REaXNjYXJkTWFy
Z2luQmVmb3JlKCkpID8gYmxvY2stPm1heFBvc2l0aXZlTWFyZ2luQmVmb3JlKCkgOiBMYXlvdXRV
bml0KCk7CisgICAgbV9uZWdhdGl2ZU1hcmdpbiA9IChtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3Jl
V2l0aENoaWxkcmVuICYmICFibG9jay0+bXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKSkgPyBibG9j
ay0+bWF4TmVnYXRpdmVNYXJnaW5CZWZvcmUoKSA6IExheW91dFVuaXQoKTsKIH0KIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTUyNiw4ICsx
NTI4LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxk
cmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gKICAgICBpZiAoIWlzQ2VsbCkgewogICAg
ICAgICBpbml0TWF4TWFyZ2luVmFsdWVzKCk7CiAgICAgICAgIAotICAgICAgICBzZXRNYXJnaW5C
ZWZvcmVRdWlyayhzdHlsZVRvVXNlLT5tYXJnaW5CZWZvcmUoKS5xdWlyaygpKTsKLSAgICAgICAg
c2V0TWFyZ2luQWZ0ZXJRdWlyayhzdHlsZVRvVXNlLT5tYXJnaW5BZnRlcigpLnF1aXJrKCkpOwor
ICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayhzdHlsZVRvVXNlLT5pc01hcmdpbkJlZm9yZVF1
aXJrKCkpOworICAgICAgICBzZXRNYXJnaW5BZnRlclF1aXJrKHN0eWxlVG9Vc2UtPmlzTWFyZ2lu
QWZ0ZXJRdWlyaygpKTsKICAgICAgICAgc2V0UGFnaW5hdGlvblN0cnV0KDApOwogICAgIH0KIApA
QCAtMTk1Nyw2ICsxOTU5LDEzIEBAIHZvaWQgUmVuZGVyQmxvY2s6Om1vdmVSdW5JblRvT3JpZ2lu
YWxQb3NpdGlvbihSZW5kZXJPYmplY3QqIHJ1bkluKQogCiBMYXlvdXRVbml0IFJlbmRlckJsb2Nr
Ojpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5m
bykKIHsKKyAgICBib29sIGNoaWxkRGlzY2FyZE1hcmdpbkJlZm9yZSA9IG11c3REaXNjYXJkTWFy
Z2luQmVmb3JlRm9yQ2hpbGQoY2hpbGQpOworICAgIGJvb2wgY2hpbGREaXNjYXJkTWFyZ2luQWZ0
ZXIgPSBtdXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQoY2hpbGQpOworICAgIGJvb2wgY2hp
bGRJc1NlbGZDb2xsYXBzaW5nID0gY2hpbGQtPmlzU2VsZkNvbGxhcHNpbmdCbG9jaygpOworCisg
ICAgLy8gVGhlIGNoaWxkIGRpc2NhcmRzIHRoZSBiZWZvcmUgbWFyZ2luIHdoZW4gdGhlIHRoZSBh
ZnRlciBtYXJnaW4gaGFzIGRpc2NhcmQgaW4gdGhlIGNhc2Ugb2YgYSBzZWxmIGNvbGxhcHNpbmcg
YmxvY2suCisgICAgY2hpbGREaXNjYXJkTWFyZ2luQmVmb3JlID0gY2hpbGREaXNjYXJkTWFyZ2lu
QmVmb3JlIHx8IChjaGlsZERpc2NhcmRNYXJnaW5BZnRlciAmJiBjaGlsZElzU2VsZkNvbGxhcHNp
bmcpOworCiAgICAgLy8gR2V0IHRoZSBmb3VyIG1hcmdpbiB2YWx1ZXMgZm9yIHRoZSBjaGlsZCBh
bmQgY2FjaGUgdGhlbS4KICAgICBjb25zdCBNYXJnaW5WYWx1ZXMgY2hpbGRNYXJnaW5zID0gbWFy
Z2luVmFsdWVzRm9yQ2hpbGQoY2hpbGQpOwogCkBAIC0xOTY2LDM4ICsxOTc1LDQ4IEBAIExheW91
dFVuaXQgUmVuZGVyQmxvY2s6OmNvbGxhcHNlTWFyZ2lucyhSZW5kZXJCb3gqIGNoaWxkLCBNYXJn
aW5JbmZvJiBtYXJnaW5JbmZvCiAKICAgICAvLyBGb3Igc2VsZi1jb2xsYXBzaW5nIGJsb2Nrcywg
Y29sbGFwc2Ugb3VyIGJvdHRvbSBtYXJnaW5zIGludG8gb3VyCiAgICAgLy8gdG9wIHRvIGdldCBu
ZXcgcG9zVG9wIGFuZCBuZWdUb3AgdmFsdWVzLgotICAgIGlmIChjaGlsZC0+aXNTZWxmQ29sbGFw
c2luZ0Jsb2NrKCkpIHsKKyAgICBpZiAoY2hpbGRJc1NlbGZDb2xsYXBzaW5nKSB7CiAgICAgICAg
IHBvc1RvcCA9IG1heChwb3NUb3AsIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkFmdGVyKCkp
OwogICAgICAgICBuZWdUb3AgPSBtYXgobmVnVG9wLCBjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJn
aW5BZnRlcigpKTsKICAgICB9CiAgICAgCiAgICAgLy8gU2VlIGlmIHRoZSB0b3AgbWFyZ2luIGlz
IHF1aXJreS4gV2Ugb25seSBjYXJlIGlmIHRoaXMgY2hpbGQgaGFzCiAgICAgLy8gbWFyZ2lucyB0
aGF0IHdpbGwgY29sbGFwc2Ugd2l0aCB1cy4KLSAgICBib29sIHRvcFF1aXJrID0gY2hpbGQtPmlz
TWFyZ2luQmVmb3JlUXVpcmsoKSB8fCBzdHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09
IE1ESVNDQVJEOworICAgIGJvb2wgdG9wUXVpcmsgPSBjaGlsZC0+aXNNYXJnaW5CZWZvcmVRdWly
aygpOwogCiAgICAgaWYgKG1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVmb3JlKCkp
IHsKLSAgICAgICAgLy8gVGhpcyBjaGlsZCBpcyBjb2xsYXBzaW5nIHdpdGggdGhlIHRvcCBvZiB0
aGUKLSAgICAgICAgLy8gYmxvY2suICBJZiBpdCBoYXMgbGFyZ2VyIG1hcmdpbiB2YWx1ZXMsIHRo
ZW4gd2UgbmVlZCB0byB1cGRhdGUKLSAgICAgICAgLy8gb3VyIG93biBtYXhpbWFsIHZhbHVlcy4K
LSAgICAgICAgaWYgKCFkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSB8fCAhbWFyZ2luSW5mby5x
dWlya0NvbnRhaW5lcigpIHx8ICF0b3BRdWlyaykKLSAgICAgICAgICAgIHNldE1heE1hcmdpbkJl
Zm9yZVZhbHVlcyhtYXgocG9zVG9wLCBtYXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpKSwgbWF4KG5l
Z1RvcCwgbWF4TmVnYXRpdmVNYXJnaW5CZWZvcmUoKSkpOwotCi0gICAgICAgIC8vIFRoZSBtaW51
dGUgYW55IG9mIHRoZSBtYXJnaW5zIGludm9sdmVkIGlzbid0IGEgcXVpcmssIGRvbid0Ci0gICAg
ICAgIC8vIGNvbGxhcHNlIGl0IGF3YXksIGV2ZW4gaWYgdGhlIG1hcmdpbiBpcyBzbWFsbGVyICh3
d3cud2VicmVmZXJlbmNlLmNvbQotICAgICAgICAvLyBoYXMgYW4gZXhhbXBsZSBvZiB0aGlzLCBh
IDxkdD4gd2l0aCAwLjhlbSBhdXRob3Itc3BlY2lmaWVkIGluc2lkZQotICAgICAgICAvLyBhIDxk
bD4gaW5zaWRlIGEgPHRkPi4KLSAgICAgICAgaWYgKCFtYXJnaW5JbmZvLmRldGVybWluZWRNYXJn
aW5CZWZvcmVRdWlyaygpICYmICF0b3BRdWlyayAmJiAocG9zVG9wIC0gbmVnVG9wKSkgewotICAg
ICAgICAgICAgc2V0TWFyZ2luQmVmb3JlUXVpcmsoZmFsc2UpOwotICAgICAgICAgICAgbWFyZ2lu
SW5mby5zZXREZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsodHJ1ZSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKCkgJiYg
dG9wUXVpcmsgJiYgIW1hcmdpbkJlZm9yZSgpKQotICAgICAgICAgICAgLy8gV2UgaGF2ZSBubyB0
b3AgbWFyZ2luIGFuZCBvdXIgdG9wIGNoaWxkIGhhcyBhIHF1aXJreSBtYXJnaW4uCi0gICAgICAg
ICAgICAvLyBXZSB3aWxsIHBpY2sgdXAgdGhpcyBxdWlya3kgbWFyZ2luIGFuZCBwYXNzIGl0IHRo
cm91Z2guCi0gICAgICAgICAgICAvLyBUaGlzIGRlYWxzIHdpdGggdGhlIDx0ZD48ZGl2PjxwPiBj
YXNlLgotICAgICAgICAgICAgLy8gRG9uJ3QgZG8gdGhpcyBmb3IgYSBibG9jayB0aGF0IHNwbGl0
IHR3byBpbmxpbmVzIHRob3VnaC4gIFlvdSBkbwotICAgICAgICAgICAgLy8gc3RpbGwgYXBwbHkg
bWFyZ2lucyBpbiB0aGlzIGNhc2UuCi0gICAgICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayh0
cnVlKTsKKyAgICAgICAgaWYgKCFjaGlsZERpc2NhcmRNYXJnaW5CZWZvcmUgJiYgIW1hcmdpbklu
Zm8uZGlzY2FyZE1hcmdpbigpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGNoaWxkIGlzIGNvbGxh
cHNpbmcgd2l0aCB0aGUgdG9wIG9mIHRoZQorICAgICAgICAgICAgLy8gYmxvY2suIElmIGl0IGhh
cyBsYXJnZXIgbWFyZ2luIHZhbHVlcywgdGhlbiB3ZSBuZWVkIHRvIHVwZGF0ZQorICAgICAgICAg
ICAgLy8gb3VyIG93biBtYXhpbWFsIHZhbHVlcy4KKyAgICAgICAgICAgIGlmICghZG9jdW1lbnQo
KS0+aW5RdWlya3NNb2RlKCkgfHwgIW1hcmdpbkluZm8ucXVpcmtDb250YWluZXIoKSB8fCAhdG9w
UXVpcmspCisgICAgICAgICAgICAgICAgc2V0TWF4TWFyZ2luQmVmb3JlVmFsdWVzKG1heChwb3NU
b3AsIG1heFBvc2l0aXZlTWFyZ2luQmVmb3JlKCkpLCBtYXgobmVnVG9wLCBtYXhOZWdhdGl2ZU1h
cmdpbkJlZm9yZSgpKSk7CisKKyAgICAgICAgICAgIC8vIFRoZSBtaW51dGUgYW55IG9mIHRoZSBt
YXJnaW5zIGludm9sdmVkIGlzbid0IGEgcXVpcmssIGRvbid0CisgICAgICAgICAgICAvLyBjb2xs
YXBzZSBpdCBhd2F5LCBldmVuIGlmIHRoZSBtYXJnaW4gaXMgc21hbGxlciAod3d3LndlYnJlZmVy
ZW5jZS5jb20KKyAgICAgICAgICAgIC8vIGhhcyBhbiBleGFtcGxlIG9mIHRoaXMsIGEgPGR0PiB3
aXRoIDAuOGVtIGF1dGhvci1zcGVjaWZpZWQgaW5zaWRlCisgICAgICAgICAgICAvLyBhIDxkbD4g
aW5zaWRlIGEgPHRkPi4KKyAgICAgICAgICAgIGlmICghbWFyZ2luSW5mby5kZXRlcm1pbmVkTWFy
Z2luQmVmb3JlUXVpcmsoKSAmJiAhdG9wUXVpcmsgJiYgKHBvc1RvcCAtIG5lZ1RvcCkpIHsKKyAg
ICAgICAgICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayhmYWxzZSk7CisgICAgICAgICAgICAg
ICAgbWFyZ2luSW5mby5zZXREZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsodHJ1ZSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghbWFyZ2luSW5mby5kZXRlcm1pbmVkTWFyZ2lu
QmVmb3JlUXVpcmsoKSAmJiB0b3BRdWlyayAmJiAhbWFyZ2luQmVmb3JlKCkpCisgICAgICAgICAg
ICAgICAgLy8gV2UgaGF2ZSBubyB0b3AgbWFyZ2luIGFuZCBvdXIgdG9wIGNoaWxkIGhhcyBhIHF1
aXJreSBtYXJnaW4uCisgICAgICAgICAgICAgICAgLy8gV2Ugd2lsbCBwaWNrIHVwIHRoaXMgcXVp
cmt5IG1hcmdpbiBhbmQgcGFzcyBpdCB0aHJvdWdoLgorICAgICAgICAgICAgICAgIC8vIFRoaXMg
ZGVhbHMgd2l0aCB0aGUgPHRkPjxkaXY+PHA+IGNhc2UuCisgICAgICAgICAgICAgICAgLy8gRG9u
J3QgZG8gdGhpcyBmb3IgYSBibG9jayB0aGF0IHNwbGl0IHR3byBpbmxpbmVzIHRob3VnaC4gWW91
IGRvCisgICAgICAgICAgICAgICAgLy8gc3RpbGwgYXBwbHkgbWFyZ2lucyBpbiB0aGlzIGNhc2Uu
CisgICAgICAgICAgICAgICAgc2V0TWFyZ2luQmVmb3JlUXVpcmsodHJ1ZSk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgLy8gVGhlIGJlZm9yZSBtYXJnaW4gb2YgdGhlIGNvbnRhaW5lciB3
aWxsIGFsc28gZGlzY2FyZCBhbGwgdGhlIG1hcmdpbnMgaXQgaXMgY29sbGFwc2luZyB3aXRoLgor
ICAgICAgICAgICAgc2V0TXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKTsKKyAgICB9CisKKyAgICAv
LyBPbmNlIHdlIGZpbmQgYSBjaGlsZCB3aXRoIGRpc2NhcmRNYXJnaW5CZWZvcmUgYWxsIHRoZSBt
YXJnaW5zIGNvbGxhcHNpbmcgd2l0aCB1cyBtdXN0IGFsc28gZGlzY2FyZC4gCisgICAgaWYgKGNo
aWxkRGlzY2FyZE1hcmdpbkJlZm9yZSkgeworICAgICAgICBtYXJnaW5JbmZvLnNldERpc2NhcmRN
YXJnaW4odHJ1ZSk7CisgICAgICAgIG1hcmdpbkluZm8uY2xlYXJNYXJnaW4oKTsKICAgICB9CiAK
ICAgICBpZiAobWFyZ2luSW5mby5xdWlya0NvbnRhaW5lcigpICYmIG1hcmdpbkluZm8uYXRCZWZv
cmVTaWRlT2ZCbG9jaygpICYmIChwb3NUb3AgLSBuZWdUb3ApKQpAQCAtMjAwNSw0NSArMjAyNCw1
MyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQm94KiBj
aGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbwogCiAgICAgTGF5b3V0VW5pdCBiZWZvcmVDb2xs
YXBzZUxvZ2ljYWxUb3AgPSBsb2dpY2FsSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2Fs
VG9wID0gYmVmb3JlQ29sbGFwc2VMb2dpY2FsVG9wOwotICAgIGlmIChjaGlsZC0+aXNTZWxmQ29s
bGFwc2luZ0Jsb2NrKCkpIHsKLSAgICAgICAgLy8gVGhpcyBjaGlsZCBoYXMgbm8gaGVpZ2h0LiAg
V2UgbmVlZCB0byBjb21wdXRlIG91cgotICAgICAgICAvLyBwb3NpdGlvbiBiZWZvcmUgd2UgY29s
bGFwc2UgdGhlIGNoaWxkJ3MgbWFyZ2lucyB0b2dldGhlciwKLSAgICAgICAgLy8gc28gdGhhdCB3
ZSBjYW4gZ2V0IGFuIGFjY3VyYXRlIHBvc2l0aW9uIGZvciB0aGUgemVyby1oZWlnaHQgYmxvY2su
Ci0gICAgICAgIExheW91dFVuaXQgY29sbGFwc2VkQmVmb3JlUG9zID0gbWF4KG1hcmdpbkluZm8u
cG9zaXRpdmVNYXJnaW4oKSwgY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQmVmb3JlKCkpOwot
ICAgICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZU5lZyA9IG1heChtYXJnaW5JbmZvLm5l
Z2F0aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkJlZm9yZSgpKTsKLSAg
ICAgICAgbWFyZ2luSW5mby5zZXRNYXJnaW4oY29sbGFwc2VkQmVmb3JlUG9zLCBjb2xsYXBzZWRC
ZWZvcmVOZWcpOwotICAgICAgICAKLSAgICAgICAgLy8gTm93IGNvbGxhcHNlIHRoZSBjaGlsZCdz
IG1hcmdpbnMgdG9nZXRoZXIsIHdoaWNoIG1lYW5zIGV4YW1pbmluZyBvdXIKLSAgICAgICAgLy8g
Ym90dG9tIG1hcmdpbiB2YWx1ZXMgYXMgd2VsbC4gCi0gICAgICAgIG1hcmdpbkluZm8uc2V0UG9z
aXRpdmVNYXJnaW5JZkxhcmdlcihjaGlsZE1hcmdpbnMucG9zaXRpdmVNYXJnaW5BZnRlcigpKTsK
LSAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdpbklmTGFyZ2VyKGNoaWxkTWFyZ2lu
cy5uZWdhdGl2ZU1hcmdpbkFmdGVyKCkpOwotCi0gICAgICAgIGlmICghbWFyZ2luSW5mby5jYW5D
b2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSkKLSAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gbWFr
ZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWxmLWNvbGxhcHNpbmcgYmxvY2sKLSAg
ICAgICAgICAgIC8vIGlzIGNvcnJlY3QsIHNpbmNlIGl0IGNvdWxkIGhhdmUgb3ZlcmZsb3dpbmcg
Y29udGVudAotICAgICAgICAgICAgLy8gdGhhdCBuZWVkcyB0byBiZSBwb3NpdGlvbmVkIGNvcnJl
Y3RseSAoZS5nLiwgYSBibG9jayB0aGF0Ci0gICAgICAgICAgICAvLyBoYWQgYSBzcGVjaWZpZWQg
aGVpZ2h0IG9mIDAgYnV0IHRoYXQgYWN0dWFsbHkgaGFkIHN1YmNvbnRlbnQpLgotICAgICAgICAg
ICAgbG9naWNhbFRvcCA9IGxvZ2ljYWxIZWlnaHQoKSArIGNvbGxhcHNlZEJlZm9yZVBvcyAtIGNv
bGxhcHNlZEJlZm9yZU5lZzsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChjaGlsZC0+
c3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNU0VQQVJBVEUpIHsKKyAgICBpZiAo
Y2hpbGRJc1NlbGZDb2xsYXBzaW5nKSB7CisgICAgICAgIC8vIEZvciBhIHNlbGYgY29sbGFwc2lu
ZyBibG9jayBib3RoIHRoZSBiZWZvcmUgYW5kIGFmdGVyIG1hcmdpbnMgZ2V0IGRpc2NhcmRlZC4g
VGhlIGJsb2NrIGRvZXNuJ3QgY29udHJpYnV0ZSBhbnl0aGluZyB0byB0aGUgaGVpZ2h0IG9mIHRo
ZSBibG9jay4KKyAgICAgICAgLy8gQWxzbywgdGhlIGNoaWxkJ3MgdG9wIHBvc2l0aW9uIGVxdWFs
cyB0aGUgbG9naWNhbCBoZWlnaHQgb2YgdGhlIGNvbnRhaW5lci4KKyAgICAgICAgaWYgKCFjaGls
ZERpc2NhcmRNYXJnaW5CZWZvcmUgJiYgIW1hcmdpbkluZm8uZGlzY2FyZE1hcmdpbigpKSB7Cisg
ICAgICAgICAgICAvLyBUaGlzIGNoaWxkIGhhcyBubyBoZWlnaHQuIFdlIG5lZWQgdG8gY29tcHV0
ZSBvdXIKKyAgICAgICAgICAgIC8vIHBvc2l0aW9uIGJlZm9yZSB3ZSBjb2xsYXBzZSB0aGUgY2hp
bGQncyBtYXJnaW5zIHRvZ2V0aGVyLAorICAgICAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gZ2V0
IGFuIGFjY3VyYXRlIHBvc2l0aW9uIGZvciB0aGUgemVyby1oZWlnaHQgYmxvY2suCisgICAgICAg
ICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZVBvcyA9IG1heChtYXJnaW5JbmZvLnBvc2l0
aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkJlZm9yZSgpKTsKKyAgICAg
ICAgICAgIExheW91dFVuaXQgY29sbGFwc2VkQmVmb3JlTmVnID0gbWF4KG1hcmdpbkluZm8ubmVn
YXRpdmVNYXJnaW4oKSwgY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQmVmb3JlKCkpOworICAg
ICAgICAgICAgbWFyZ2luSW5mby5zZXRNYXJnaW4oY29sbGFwc2VkQmVmb3JlUG9zLCBjb2xsYXBz
ZWRCZWZvcmVOZWcpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3cgY29sbGFwc2Ug
dGhlIGNoaWxkJ3MgbWFyZ2lucyB0b2dldGhlciwgd2hpY2ggbWVhbnMgZXhhbWluaW5nIG91cgor
ICAgICAgICAgICAgLy8gYm90dG9tIG1hcmdpbiB2YWx1ZXMgYXMgd2VsbC4gCisgICAgICAgICAg
ICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luSWZMYXJnZXIoY2hpbGRNYXJnaW5zLnBvc2l0
aXZlTWFyZ2luQWZ0ZXIoKSk7CisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldE5lZ2F0aXZlTWFy
Z2luSWZMYXJnZXIoY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQWZ0ZXIoKSk7CisKKyAgICAg
ICAgICAgIGlmICghbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSkKKyAg
ICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwb3NpdGlvbiBv
ZiB0aGUgc2VsZi1jb2xsYXBzaW5nIGJsb2NrCisgICAgICAgICAgICAgICAgLy8gaXMgY29ycmVj
dCwgc2luY2UgaXQgY291bGQgaGF2ZSBvdmVyZmxvd2luZyBjb250ZW50CisgICAgICAgICAgICAg
ICAgLy8gdGhhdCBuZWVkcyB0byBiZSBwb3NpdGlvbmVkIGNvcnJlY3RseSAoZS5nLiwgYSBibG9j
ayB0aGF0CisgICAgICAgICAgICAgICAgLy8gaGFkIGEgc3BlY2lmaWVkIGhlaWdodCBvZiAwIGJ1
dCB0aGF0IGFjdHVhbGx5IGhhZCBzdWJjb250ZW50KS4KKyAgICAgICAgICAgICAgICBsb2dpY2Fs
VG9wID0gbG9naWNhbEhlaWdodCgpICsgY29sbGFwc2VkQmVmb3JlUG9zIC0gY29sbGFwc2VkQmVm
b3JlTmVnOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG11c3RTZXBhcmF0
ZU1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkKSkgeworICAgICAgICAgICAgQVNTRVJUKCFtYXJn
aW5JbmZvLmRpc2NhcmRNYXJnaW4oKSB8fCAobWFyZ2luSW5mby5kaXNjYXJkTWFyZ2luKCkgJiYg
IW1hcmdpbkluZm8ubWFyZ2luKCkpKTsKICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9n
aWNhbEhlaWdodCgpICsgbWFyZ2luSW5mby5tYXJnaW4oKSArIG1hcmdpbkJlZm9yZUZvckNoaWxk
KGNoaWxkKSk7CiAgICAgICAgICAgICBsb2dpY2FsVG9wID0gbG9naWNhbEhlaWdodCgpOwotICAg
ICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKCFtYXJnaW5JbmZvLmF0QmVmb3JlU2lkZU9mQmxvY2so
KSB8fAotICAgICAgICAgICAgKCFtYXJnaW5JbmZvLmNhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0
aENoaWxkcmVuKCkKLSAgICAgICAgICAgICAmJiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgp
IHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQmVm
b3JlUXVpcmsoKSkpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoIW1hcmdpbkluZm8uZGlzY2FyZE1h
cmdpbigpICYmICghbWFyZ2luSW5mby5hdEJlZm9yZVNpZGVPZkJsb2NrKCkKKyAgICAgICAgICAg
IHx8ICghbWFyZ2luSW5mby5jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbigpCisg
ICAgICAgICAgICAmJiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZv
LnF1aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQmVmb3JlUXVpcmsoKSkpKSkg
ewogICAgICAgICAgICAgLy8gV2UncmUgY29sbGFwc2luZyB3aXRoIGEgcHJldmlvdXMgc2libGlu
ZydzIG1hcmdpbnMgYW5kIG5vdAogICAgICAgICAgICAgLy8gd2l0aCB0aGUgdG9wIG9mIHRoZSBi
bG9jay4KICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbWF4
KG1hcmdpbkluZm8ucG9zaXRpdmVNYXJnaW4oKSwgcG9zVG9wKSAtIG1heChtYXJnaW5JbmZvLm5l
Z2F0aXZlTWFyZ2luKCksIG5lZ1RvcCkpOwogICAgICAgICAgICAgbG9naWNhbFRvcCA9IGxvZ2lj
YWxIZWlnaHQoKTsKICAgICAgICAgfQogCi0gICAgICAgIG1hcmdpbkluZm8uc2V0UG9zaXRpdmVN
YXJnaW4oY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSk7Ci0gICAgICAgIG1hcmdp
bkluZm8uc2V0TmVnYXRpdmVNYXJnaW4oY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQWZ0ZXIo
KSk7CisgICAgICAgIG1hcmdpbkluZm8uc2V0RGlzY2FyZE1hcmdpbihjaGlsZERpc2NhcmRNYXJn
aW5BZnRlcik7CisgICAgICAgIAorICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGlzY2FyZE1hcmdp
bigpKSB7CisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luKGNoaWxkTWFy
Z2lucy5wb3NpdGl2ZU1hcmdpbkFmdGVyKCkpOworICAgICAgICAgICAgbWFyZ2luSW5mby5zZXRO
ZWdhdGl2ZU1hcmdpbihjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJnaW5BZnRlcigpKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2luKCk7CiAKICAgICAg
ICAgaWYgKG1hcmdpbkluZm8ubWFyZ2luKCkpCi0gICAgICAgICAgICBtYXJnaW5JbmZvLnNldE1h
cmdpbkFmdGVyUXVpcmsoY2hpbGQtPmlzTWFyZ2luQWZ0ZXJRdWlyaygpIHx8IHN0eWxlKCktPm1h
cmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7CisgICAgICAgICAgICBtYXJnaW5JbmZv
LnNldE1hcmdpbkFmdGVyUXVpcmsoY2hpbGQtPmlzTWFyZ2luQWZ0ZXJRdWlyaygpKTsKICAgICB9
CiAgICAgCiAgICAgLy8gSWYgbWFyZ2lucyB3b3VsZCBwdWxsIHVzIHBhc3QgdGhlIHRvcCBvZiB0
aGUgbmV4dCBwYWdlLCB0aGVuIHdlIG5lZWQgdG8gcHVsbCBiYWNrIGFuZCBwcmV0ZW5kIGxpa2Ug
dGhlIG1hcmdpbnMKQEAgLTIwNzksMTIgKzIxMDYsMTkgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9j
azo6Y2xlYXJGbG9hdHNJZk5lZWRlZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJn
aW4KICAgICAgICAgcmV0dXJuIHlQb3M7CiAKICAgICBpZiAoY2hpbGQtPmlzU2VsZkNvbGxhcHNp
bmdCbG9jaygpKSB7CisgICAgICAgIGJvb2wgY2hpbGREaXNjYXJkTWFyZ2luID0gbXVzdERpc2Nh
cmRNYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZCkgfHwgbXVzdERpc2NhcmRNYXJnaW5BZnRlckZv
ckNoaWxkKGNoaWxkKTsKKwogICAgICAgICAvLyBGb3Igc2VsZi1jb2xsYXBzaW5nIGJsb2NrcyB0
aGF0IGNsZWFyLCB0aGV5IGNhbiBzdGlsbCBjb2xsYXBzZSB0aGVpcgogICAgICAgICAvLyBtYXJn
aW5zIHdpdGggZm9sbG93aW5nIHNpYmxpbmdzLiAgUmVzZXQgdGhlIGN1cnJlbnQgbWFyZ2lucyB0
byByZXByZXNlbnQKICAgICAgICAgLy8gdGhlIHNlbGYtY29sbGFwc2luZyBibG9jaydzIG1hcmdp
bnMgb25seS4KLSAgICAgICAgTWFyZ2luVmFsdWVzIGNoaWxkTWFyZ2lucyA9IG1hcmdpblZhbHVl
c0ZvckNoaWxkKGNoaWxkKTsKLSAgICAgICAgbWFyZ2luSW5mby5zZXRQb3NpdGl2ZU1hcmdpbiht
YXgoY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5wb3Np
dGl2ZU1hcmdpbkFmdGVyKCkpKTsKLSAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdp
bihtYXgoY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5u
ZWdhdGl2ZU1hcmdpbkFmdGVyKCkpKTsKKyAgICAgICAgLy8gSWYgRElTQ0FSRCBpcyBzcGVjaWZp
ZWQgZm9yIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlLCByZXNldCB0aGUgbWFyZ2luIHZhbHVlcy4K
KyAgICAgICAgaWYgKCFjaGlsZERpc2NhcmRNYXJnaW4pIHsKKyAgICAgICAgICAgIE1hcmdpblZh
bHVlcyBjaGlsZE1hcmdpbnMgPSBtYXJnaW5WYWx1ZXNGb3JDaGlsZChjaGlsZCk7CisgICAgICAg
ICAgICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luKG1heChjaGlsZE1hcmdpbnMucG9zaXRp
dmVNYXJnaW5CZWZvcmUoKSwgY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSkpOwor
ICAgICAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdpbihtYXgoY2hpbGRNYXJnaW5z
Lm5lZ2F0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkFmdGVy
KCkpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2lu
KCk7CisgICAgICAgIG1hcmdpbkluZm8uc2V0RGlzY2FyZE1hcmdpbihjaGlsZERpc2NhcmRNYXJn
aW4pOwogCiAgICAgICAgIC8vIENTUzIuMSBzdGF0ZXM6CiAgICAgICAgIC8vICJJZiB0aGUgdG9w
IGFuZCBib3R0b20gbWFyZ2lucyBvZiBhbiBlbGVtZW50IHdpdGggY2xlYXJhbmNlIGFyZSBhZGpv
aW5pbmcsIGl0cyBtYXJnaW5zIGNvbGxhcHNlIHdpdGggCkBAIC0yMTE3LDYgKzIxNTEsOSBAQCBM
YXlvdXRVbml0IFJlbmRlckJsb2NrOjpjbGVhckZsb2F0c0lmTmVlZGVkKFJlbmRlckJveCogY2hp
bGQsIE1hcmdpbkluZm8mIG1hcmdpbgogICAgICAgICAvLyBtYXJnaW5zIGludm9sdmVkLgogICAg
ICAgICBzZXRNYXhNYXJnaW5CZWZvcmVWYWx1ZXMob2xkVG9wUG9zTWFyZ2luLCBvbGRUb3BOZWdN
YXJnaW4pOwogICAgICAgICBtYXJnaW5JbmZvLnNldEF0QmVmb3JlU2lkZU9mQmxvY2soZmFsc2Up
OworCisgICAgICAgIC8vIEluIGNhc2UgdGhlIGNoaWxkIGRpc2NhcmRlZCB0aGUgYmVmb3JlIG1h
cmdpbiBvZiB0aGUgYmxvY2sgd2UgbmVlZCB0byByZXNldCB0aGUgbXVzdERpc2NhcmRNYXJnaW5C
ZWZvcmUgZmxhZyB0byB0aGUgaW5pdGlhbCB2YWx1ZS4KKyAgICAgICAgc2V0TXVzdERpc2NhcmRN
YXJnaW5CZWZvcmUoc3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7
CiAgICAgfQogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wID0geVBvcyArIGhlaWdodEluY3Jl
YXNlOwpAQCAtMjEzMCwxMCArMjE2NywxNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpjbGVh
ckZsb2F0c0lmTmVlZGVkKFJlbmRlckJveCogY2hpbGQsIE1hcmdpbkluZm8mIG1hcmdpbgogCiB2
b2lkIFJlbmRlckJsb2NrOjptYXJnaW5CZWZvcmVFc3RpbWF0ZUZvckNoaWxkKFJlbmRlckJveCog
Y2hpbGQsIExheW91dFVuaXQmIHBvc2l0aXZlTWFyZ2luQmVmb3JlLCBMYXlvdXRVbml0JiBuZWdh
dGl2ZU1hcmdpbkJlZm9yZSkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRlYWwg
d2l0aCB0aGUgbWFyZ2luLWNvbGxhcHNlLSogc3R5bGUgZXh0ZW5zaW9ucyB0aGF0IHByZXZlbnQg
Y29sbGFwc2luZyBhbmQgdGhhdCBkaXNjYXJkIG1hcmdpbnMuCiAgICAgLy8gR2l2ZSB1cCBpZiBp
biBxdWlya3MgbW9kZSBhbmQgd2UncmUgYSBib2R5L3RhYmxlIGNlbGwgYW5kIHRoZSB0b3AgbWFy
Z2luIG9mIHRoZSBjaGlsZCBib3ggaXMgcXVpcmt5LgotICAgIGlmIChkb2N1bWVudCgpLT5pblF1
aXJrc01vZGUoKSAmJiBjaGlsZC0+aXNNYXJnaW5CZWZvcmVRdWlyaygpICYmIChpc1RhYmxlQ2Vs
bCgpIHx8IGlzQm9keSgpKSkKKyAgICAvLyBHaXZlIHVwIGlmIHRoZSBjaGlsZCBzcGVjaWZpZWQg
LXdlYmtpdC1tYXJnaW4tY29sbGFwc2U6IHNlcGFyYXRlIHRoYXQgcHJldmVudHMgY29sbGFwc2lu
Zy4KKyAgICBpZiAoKGRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpICYmIGNoaWxkLT5pc01hcmdp
bkJlZm9yZVF1aXJrKCkgJiYgKGlzVGFibGVDZWxsKCkgfHwgaXNCb2R5KCkpKSB8fCBtdXN0U2Vw
YXJhdGVNYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZCkpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIFRoZSBtYXJnaW5zIGFyZSBkaXNjYXJkZWQgYnkgYSBjaGlsZCB0aGF0IHNwZWNpZmllZCAt
d2Via2l0LW1hcmdpbi1jb2xsYXBzZTogZGlzY2FyZC4KKyAgICBpZiAobXVzdERpc2NhcmRNYXJn
aW5CZWZvcmVGb3JDaGlsZChjaGlsZCkpIHsKKyAgICAgICAgcG9zaXRpdmVNYXJnaW5CZWZvcmUg
PSAwOworICAgICAgICBuZWdhdGl2ZU1hcmdpbkJlZm9yZSA9IDA7CiAgICAgICAgIHJldHVybjsK
KyAgICB9CiAKICAgICBMYXlvdXRVbml0IGJlZm9yZUNoaWxkTWFyZ2luID0gbWFyZ2luQmVmb3Jl
Rm9yQ2hpbGQoY2hpbGQpOwogICAgIHBvc2l0aXZlTWFyZ2luQmVmb3JlID0gbWF4KHBvc2l0aXZl
TWFyZ2luQmVmb3JlLCBiZWZvcmVDaGlsZE1hcmdpbik7CkBAIC0yMTYzLDIyICsyMjA3LDIzIEBA
IHZvaWQgUmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUVzdGltYXRlRm9yQ2hpbGQoUmVuZGVyQm94
KiBjaGlsZCwgTGF5b3V0VW5pdCYgcG9zCiAgICAgLy8gTWFrZSBzdXJlIHRvIHVwZGF0ZSB0aGUg
YmxvY2sgbWFyZ2lucyBub3cgZm9yIHRoZSBncmFuZGNoaWxkIGJveCBzbyB0aGF0IHdlJ3JlIGxv
b2tpbmcgYXQgY3VycmVudCB2YWx1ZXMuCiAgICAgaWYgKGdyYW5kY2hpbGRCb3gtPm5lZWRzTGF5
b3V0KCkpIHsKICAgICAgICAgZ3JhbmRjaGlsZEJveC0+Y29tcHV0ZUFuZFNldEJsb2NrRGlyZWN0
aW9uTWFyZ2lucyh0aGlzKTsKLSAgICAgICAgZ3JhbmRjaGlsZEJveC0+c2V0TWFyZ2luQmVmb3Jl
UXVpcmsoZ3JhbmRjaGlsZEJveC0+c3R5bGUoKS0+bWFyZ2luQmVmb3JlKCkucXVpcmsoKSk7Ci0g
ICAgICAgIGdyYW5kY2hpbGRCb3gtPnNldE1hcmdpbkFmdGVyUXVpcmsoZ3JhbmRjaGlsZEJveC0+
c3R5bGUoKS0+bWFyZ2luQWZ0ZXIoKS5xdWlyaygpKTsKKyAgICAgICAgZ3JhbmRjaGlsZEJveC0+
c2V0TWFyZ2luQmVmb3JlUXVpcmsoZ3JhbmRjaGlsZEJveC0+c3R5bGUoKS0+aXNNYXJnaW5CZWZv
cmVRdWlyaygpKTsKKyAgICAgICAgZ3JhbmRjaGlsZEJveC0+c2V0TWFyZ2luQWZ0ZXJRdWlyayhn
cmFuZGNoaWxkQm94LT5zdHlsZSgpLT5pc01hcmdpbkFmdGVyUXVpcmsoKSk7CiAgICAgfQogCiAg
ICAgLy8gQ29sbGFwc2UgdGhlIG1hcmdpbiBvZiB0aGUgZ3JhbmRjaGlsZCBib3ggd2l0aCBvdXIg
b3duIHRvIHByb2R1Y2UgYW4gZXN0aW1hdGUuCiAgICAgY2hpbGRCbG9jay0+bWFyZ2luQmVmb3Jl
RXN0aW1hdGVGb3JDaGlsZChncmFuZGNoaWxkQm94LCBwb3NpdGl2ZU1hcmdpbkJlZm9yZSwgbmVn
YXRpdmVNYXJnaW5CZWZvcmUpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJsb2NrOjplc3RpbWF0
ZUxvZ2ljYWxUb3BQb3NpdGlvbihSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBNYXJnaW5JbmZvJiBt
YXJnaW5JbmZvLCBMYXlvdXRVbml0JiBlc3RpbWF0ZVdpdGhvdXRQYWdpbmF0aW9uKQorTGF5b3V0
VW5pdCBSZW5kZXJCbG9jazo6ZXN0aW1hdGVMb2dpY2FsVG9wUG9zaXRpb24oUmVuZGVyQm94KiBj
aGlsZCwgY29uc3QgTWFyZ2luSW5mbyYgLyptYXJnaW5JbmZvKi8sIExheW91dFVuaXQmIGVzdGlt
YXRlV2l0aG91dFBhZ2luYXRpb24pCiB7CiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gZWxpbWlu
YXRlIHRoZSBlc3RpbWF0aW9uIG9mIHZlcnRpY2FsIHBvc2l0aW9uLCBiZWNhdXNlIHdoZW4gaXQn
cyB3cm9uZyB3ZSBzb21ldGltZXMgdHJpZ2dlciBhIHBhdGhvbG9naWNhbAogICAgIC8vIHJlbGF5
b3V0IGlmIHRoZXJlIGFyZSBpbnRydWRpbmcgZmxvYXRzLgogICAgIExheW91dFVuaXQgbG9naWNh
bFRvcEVzdGltYXRlID0gbG9naWNhbEhlaWdodCgpOwotICAgIGlmICghbWFyZ2luSW5mby5jYW5D
b2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSkgeworICAgIC8qaWYgKCFtYXJnaW5JbmZvLmNhbkNv
bGxhcHNlV2l0aE1hcmdpbkJlZm9yZSgpKSB7CiAgICAgICAgIExheW91dFVuaXQgcG9zaXRpdmVN
YXJnaW5CZWZvcmUgPSAwOwogICAgICAgICBMYXlvdXRVbml0IG5lZ2F0aXZlTWFyZ2luQmVmb3Jl
ID0gMDsKKyAgICAgICAgYm9vbCBkaXNjYXJkTWFyZ2luQmVmb3JlID0gbXVzdERpc2NhcmRNYXJn
aW5CZWZvcmVGb3JDaGlsZChjaGlsZCk7CiAgICAgICAgIGlmIChjaGlsZC0+c2VsZk5lZWRzTGF5
b3V0KCkpIHsKICAgICAgICAgICAgIC8vIFRyeSB0byBkbyBhIGJhc2ljIGVzdGltYXRpb24gb2Yg
aG93IHRoZSBjb2xsYXBzZSBpcyBnb2luZyB0byBnby4KICAgICAgICAgICAgIG1hcmdpbkJlZm9y
ZUVzdGltYXRlRm9yQ2hpbGQoY2hpbGQsIHBvc2l0aXZlTWFyZ2luQmVmb3JlLCBuZWdhdGl2ZU1h
cmdpbkJlZm9yZSk7CkBAIC0yMTkxLDggKzIyMzYsOSBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2Nr
Ojplc3RpbWF0ZUxvZ2ljYWxUb3BQb3NpdGlvbihSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBNYXJn
aQogICAgICAgICB9CiAKICAgICAgICAgLy8gQ29sbGFwc2UgdGhlIHJlc3VsdCB3aXRoIG91ciBj
dXJyZW50IG1hcmdpbnMuCi0gICAgICAgIGxvZ2ljYWxUb3BFc3RpbWF0ZSArPSBtYXgobWFyZ2lu
SW5mby5wb3NpdGl2ZU1hcmdpbigpLCBwb3NpdGl2ZU1hcmdpbkJlZm9yZSkgLSBtYXgobWFyZ2lu
SW5mby5uZWdhdGl2ZU1hcmdpbigpLCBuZWdhdGl2ZU1hcmdpbkJlZm9yZSk7Ci0gICAgfQorICAg
ICAgICBpZiAoIWRpc2NhcmRNYXJnaW5CZWZvcmUpCisgICAgICAgICAgICBsb2dpY2FsVG9wRXN0
aW1hdGUgKz0gbWF4KG1hcmdpbkluZm8ucG9zaXRpdmVNYXJnaW4oKSwgcG9zaXRpdmVNYXJnaW5C
ZWZvcmUpIC0gbWF4KG1hcmdpbkluZm8ubmVnYXRpdmVNYXJnaW4oKSwgbmVnYXRpdmVNYXJnaW5C
ZWZvcmUpOworICAgIH0qLwogCiAgICAgLy8gQWRqdXN0IGxvZ2ljYWxUb3BFc3RpbWF0ZSBkb3du
IHRvIHRoZSBuZXh0IHBhZ2UgaWYgdGhlIG1hcmdpbnMgYXJlIHNvIGxhcmdlIHRoYXQgd2UgZG9u
J3QgZml0IG9uIHRoZSBjdXJyZW50CiAgICAgLy8gcGFnZS4KQEAgLTIyNjYsNiArMjMxMiwxMyBA
QCB2b2lkIFJlbmRlckJsb2NrOjpkZXRlcm1pbmVMb2dpY2FsTGVmdFBvc2l0aW9uRm9yQ2hpbGQo
UmVuZGVyQm94KiBjaGlsZCkKIHZvaWQgUmVuZGVyQmxvY2s6OnNldENvbGxhcHNlZEJvdHRvbU1h
cmdpbihjb25zdCBNYXJnaW5JbmZvJiBtYXJnaW5JbmZvKQogewogICAgIGlmIChtYXJnaW5JbmZv
LmNhbkNvbGxhcHNlV2l0aE1hcmdpbkFmdGVyKCkgJiYgIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VX
aXRoTWFyZ2luQmVmb3JlKCkpIHsKKyAgICAgICAgLy8gVXBkYXRlIHRoZSBhZnRlciBzaWRlIG1h
cmdpbiBvZiB0aGUgY29udGFpbmVyIHRvIGRpc2NhcmQgaWYgdGhlIGFmdGVyIG1hcmdpbiBvZiB0
aGUgbGFzdCBjaGlsZCBhbHNvIGRpc2NhcmRzIGFuZCB3ZSBjb2xsYXBzZSB3aXRoIGl0LgorICAg
ICAgICAvLyBEb24ndCB1cGRhdGUgdGhlIG1heCBtYXJnaW4gdmFsdWVzIGJlY2F1c2Ugd2Ugd29u
J3QgbmVlZCB0aGVtIGFueXdheS4KKyAgICAgICAgaWYgKG1hcmdpbkluZm8uZGlzY2FyZE1hcmdp
bigpKSB7CisgICAgICAgICAgICBzZXRNdXN0RGlzY2FyZE1hcmdpbkFmdGVyKCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICAvLyBVcGRhdGUgb3VyIG1heCBwb3Mv
bmVnIGJvdHRvbSBtYXJnaW5zLCBzaW5jZSB3ZSBjb2xsYXBzZWQgb3VyIGJvdHRvbSBtYXJnaW5z
CiAgICAgICAgIC8vIHdpdGggb3VyIGNoaWxkcmVuLgogICAgICAgICBzZXRNYXhNYXJnaW5BZnRl
clZhbHVlcyhtYXgobWF4UG9zaXRpdmVNYXJnaW5BZnRlcigpLCBtYXJnaW5JbmZvLnBvc2l0aXZl
TWFyZ2luKCkpLCBtYXgobWF4TmVnYXRpdmVNYXJnaW5BZnRlcigpLCBtYXJnaW5JbmZvLm5lZ2F0
aXZlTWFyZ2luKCkpKTsKQEAgLTIyODgsOSArMjM0MSw5IEBAIHZvaWQgUmVuZGVyQmxvY2s6Omhh
bmRsZUFmdGVyU2lkZU9mQmxvY2soTGF5b3V0VW5pdCBiZWZvcmVTaWRlLCBMYXlvdXRVbml0IGFm
dGVyCiAgICAgLy8gSWYgd2UgY2FuJ3QgY29sbGFwc2Ugd2l0aCBjaGlsZHJlbiB0aGVuIGdvIGFo
ZWFkIGFuZCBhZGQgaW4gdGhlIGJvdHRvbSBtYXJnaW4uCiAgICAgLy8gRG9uJ3QgZG8gdGhpcyBm
b3Igb3JkaW5hcnkgYW5vbnltb3VzIGJsb2NrcyBhcyBvbmx5IHRoZSBlbmNsb3NpbmcgYm94IHNo
b3VsZCBhZGQgaW4KICAgICAvLyBpdHMgbWFyZ2luLgotICAgIGlmICghbWFyZ2luSW5mby5jYW5D
b2xsYXBzZVdpdGhNYXJnaW5BZnRlcigpICYmICFtYXJnaW5JbmZvLmNhbkNvbGxhcHNlV2l0aE1h
cmdpbkJlZm9yZSgpCisgICAgaWYgKCFtYXJnaW5JbmZvLmRpc2NhcmRNYXJnaW4oKSAmJiAoIW1h
cmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2luQWZ0ZXIoKSAmJiAhbWFyZ2luSW5mby5jYW5D
b2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKQogICAgICAgICAmJiAoIWlzQW5vbnltb3VzQmxvY2so
KSB8fCBpc0Fub255bW91c0NvbHVtbnNCbG9jaygpIHx8IGlzQW5vbnltb3VzQ29sdW1uU3BhbkJs
b2NrKCkpCi0gICAgICAgICYmICghZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkgfHwgIW1hcmdp
bkluZm8ucXVpcmtDb250YWluZXIoKSB8fCAhbWFyZ2luSW5mby5tYXJnaW5BZnRlclF1aXJrKCkp
KQorICAgICAgICAmJiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZv
LnF1aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQWZ0ZXJRdWlyaygpKSkpCiAg
ICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbWFyZ2luSW5mby5tYXJn
aW4oKSk7CiAgICAgICAgIAogICAgIC8vIE5vdyBhZGQgaW4gb3VyIGJvdHRvbSBib3JkZXIvcGFk
ZGluZy4KQEAgLTI0MTUsMTMgKzI0NjgsNiBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9j
a0NoaWxkKFJlbmRlckJveCogY2hpbGQsIE1hcmdpbkluZm8mIG1hcmdpbkluZm8sIExheQogICAg
IC8vIFRoZSBjaGlsZCBpcyBhIG5vcm1hbCBmbG93IG9iamVjdC4gIENvbXB1dGUgdGhlIG1hcmdp
bnMgd2Ugd2lsbCB1c2UgZm9yIGNvbGxhcHNpbmcgbm93LgogICAgIGNoaWxkLT5jb21wdXRlQW5k
U2V0QmxvY2tEaXJlY3Rpb25NYXJnaW5zKHRoaXMpOwogCi0gICAgLy8gRG8gbm90IGFsbG93IGEg
Y29sbGFwc2UgaWYgdGhlIG1hcmdpbi1iZWZvcmUtY29sbGFwc2Ugc3R5bGUgaXMgc2V0IHRvIFNF
UEFSQVRFLgotICAgIFJlbmRlclN0eWxlKiBjaGlsZFN0eWxlID0gY2hpbGQtPnN0eWxlKCk7Ci0g
ICAgaWYgKGNoaWxkU3R5bGUtPm1hcmdpbkJlZm9yZUNvbGxhcHNlKCkgPT0gTVNFUEFSQVRFKSB7
Ci0gICAgICAgIG1hcmdpbkluZm8uc2V0QXRCZWZvcmVTaWRlT2ZCbG9jayhmYWxzZSk7Ci0gICAg
ICAgIG1hcmdpbkluZm8uY2xlYXJNYXJnaW4oKTsKLSAgICB9Ci0KICAgICAvLyBUcnkgdG8gZ3Vl
c3Mgb3VyIGNvcnJlY3QgbG9naWNhbCB0b3AgcG9zaXRpb24uICBJbiBtb3N0IGNhc2VzIHRoaXMg
Z3Vlc3Mgd2lsbAogICAgIC8vIGJlIGNvcnJlY3QuICBPbmx5IGlmIHdlJ3JlIHdyb25nICh3aGVu
IHdlIGNvbXB1dGUgdGhlIHJlYWwgbG9naWNhbCB0b3AgcG9zaXRpb24pCiAgICAgLy8gd2lsbCB3
ZSBoYXZlIHRvIHBvdGVudGlhbGx5IHJlbGF5b3V0LgpAQCAtMjUxNSw3ICsyNTYxLDcgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5J
bmZvJiBtYXJnaW5JbmZvLCBMYXkKIAogICAgIC8vIFVwZGF0ZSBvdXIgaGVpZ2h0IG5vdyB0aGF0
IHRoZSBjaGlsZCBoYXMgYmVlbiBwbGFjZWQgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb24uCiAgICAg
c2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsSGVpZ2h0Rm9yQ2hpbGQo
Y2hpbGQpKTsKLSAgICBpZiAoY2hpbGRTdHlsZS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1T
RVBBUkFURSkgeworICAgIGlmIChtdXN0U2VwYXJhdGVNYXJnaW5BZnRlckZvckNoaWxkKGNoaWxk
KSkgewogICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSArIG1hcmdpbkFm
dGVyRm9yQ2hpbGQoY2hpbGQpKTsKICAgICAgICAgbWFyZ2luSW5mby5jbGVhck1hcmdpbigpOwog
ICAgIH0KQEAgLTY4MzAsNiArNjg3Niw4NiBAQCB2b2lkIFJlbmRlckJsb2NrOjpzZXRNYXhNYXJn
aW5BZnRlclZhbHVlcyhMYXlvdXRVbml0IHBvcywgTGF5b3V0VW5pdCBuZWcpCiAgICAgbV9yYXJl
RGF0YS0+bV9tYXJnaW5zLnNldE5lZ2F0aXZlTWFyZ2luQWZ0ZXIobmVnKTsKIH0KIAordm9pZCBS
ZW5kZXJCbG9jazo6c2V0TXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoYm9vbCB2YWx1ZSkKK3sKKyAg
ICBpZiAoc3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCkgeworICAg
ICAgICBBU1NFUlQodmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlm
ICghbV9yYXJlRGF0YSAmJiAhdmFsdWUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9y
YXJlRGF0YSkKKyAgICAgICAgbV9yYXJlRGF0YSA9IGFkb3B0UHRyKG5ldyBSZW5kZXJCbG9ja1Jh
cmVEYXRhKHRoaXMpKTsKKworICAgIG1fcmFyZURhdGEtPm1fZGlzY2FyZE1hcmdpbkJlZm9yZSA9
IHZhbHVlOworfQorCit2b2lkIFJlbmRlckJsb2NrOjpzZXRNdXN0RGlzY2FyZE1hcmdpbkFmdGVy
KGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHN0eWxlKCktPm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9
PSBNRElTQ0FSRCkgeworICAgICAgICBBU1NFUlQodmFsdWUpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKCFtX3JhcmVEYXRhICYmICF2YWx1ZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKCFtX3JhcmVEYXRhKQorICAgICAgICBtX3JhcmVEYXRhID0gYWRvcHRQdHIobmV3
IFJlbmRlckJsb2NrUmFyZURhdGEodGhpcykpOworCisgICAgbV9yYXJlRGF0YS0+bV9kaXNjYXJk
TWFyZ2luQWZ0ZXIgPSB2YWx1ZTsKK30KKworYm9vbCBSZW5kZXJCbG9jazo6bXVzdERpc2NhcmRN
YXJnaW5CZWZvcmUoKSBjb25zdAoreworICAgIHJldHVybiBzdHlsZSgpLT5tYXJnaW5CZWZvcmVD
b2xsYXBzZSgpID09IE1ESVNDQVJEIHx8IChtX3JhcmVEYXRhICYmIG1fcmFyZURhdGEtPm1fZGlz
Y2FyZE1hcmdpbkJlZm9yZSk7Cit9CisKK2Jvb2wgUmVuZGVyQmxvY2s6Om11c3REaXNjYXJkTWFy
Z2luQWZ0ZXIoKSBjb25zdAoreworICAgIHJldHVybiBzdHlsZSgpLT5tYXJnaW5BZnRlckNvbGxh
cHNlKCkgPT0gTURJU0NBUkQgfHwgKG1fcmFyZURhdGEgJiYgbV9yYXJlRGF0YS0+bV9kaXNjYXJk
TWFyZ2luQWZ0ZXIpOworfQorCitib29sIFJlbmRlckJsb2NrOjptdXN0RGlzY2FyZE1hcmdpbkJl
Zm9yZUZvckNoaWxkKGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0Cit7CisgICAgaWYgKCFj
aGlsZC0+aXNXcml0aW5nTW9kZVJvb3QoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkLT5pc1JlbmRl
ckJsb2NrKCkgPyB0b1JlbmRlckJsb2NrKGNoaWxkKS0+bXVzdERpc2NhcmRNYXJnaW5CZWZvcmUo
KSA6IChjaGlsZC0+c3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7
CisgICAgaWYgKGNoaWxkLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID09IGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHJldHVybiBjaGlsZC0+aXNSZW5kZXJCbG9jaygpID8g
dG9SZW5kZXJCbG9jayhjaGlsZCktPm11c3REaXNjYXJkTWFyZ2luQWZ0ZXIoKSA6IChjaGlsZC0+
c3R5bGUoKS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1ESVNDQVJEKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgUmVuZGVyQmxvY2s6Om11c3REaXNjYXJkTWFyZ2luQWZ0ZXJGb3JD
aGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdAoreworICAgIGlmICghY2hpbGQtPmlz
V3JpdGluZ01vZGVSb290KCkpCisgICAgICAgIHJldHVybiBjaGlsZC0+aXNSZW5kZXJCbG9jaygp
ID8gdG9SZW5kZXJCbG9jayhjaGlsZCktPm11c3REaXNjYXJkTWFyZ2luQWZ0ZXIoKSA6IChjaGls
ZC0+c3R5bGUoKS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1ESVNDQVJEKTsKKyAgICBpZiAo
Y2hpbGQtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPT0gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkLT5pc1JlbmRlckJsb2NrKCkgPyB0b1JlbmRlckJs
b2NrKGNoaWxkKS0+bXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKSA6IChjaGlsZC0+c3R5bGUoKS0+
bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFJlbmRlckJsb2NrOjptdXN0U2VwYXJhdGVNYXJnaW5CZWZvcmVGb3JDaGlsZChj
b25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdAoreworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBj
aGlsZFN0eWxlID0gY2hpbGQtPnN0eWxlKCk7CisgICAgaWYgKCFjaGlsZC0+aXNXcml0aW5nTW9k
ZVJvb3QoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkU3R5bGUtPm1hcmdpbkJlZm9yZUNvbGxhcHNl
KCkgPT0gTVNFUEFSQVRFOworICAgIGlmIChjaGlsZC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA9PSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICByZXR1cm4gY2hpbGRTdHls
ZS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1TRVBBUkFURTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgUmVuZGVyQmxvY2s6Om11c3RTZXBhcmF0ZU1hcmdpbkFmdGVyRm9yQ2hpbGQo
Y29uc3QgUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKK3sKKyAgICBjb25zdCBSZW5kZXJTdHlsZSog
Y2hpbGRTdHlsZSA9IGNoaWxkLT5zdHlsZSgpOworICAgIGlmICghY2hpbGQtPmlzV3JpdGluZ01v
ZGVSb290KCkpCisgICAgICAgIHJldHVybiBjaGlsZFN0eWxlLT5tYXJnaW5BZnRlckNvbGxhcHNl
KCkgPT0gTVNFUEFSQVRFOworICAgIGlmIChjaGlsZC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSA9PSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICByZXR1cm4gY2hpbGRTdHls
ZS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNU0VQQVJBVEU7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCiB2b2lkIFJlbmRlckJsb2NrOjpzZXRQYWdpbmF0aW9uU3RydXQoTGF5b3V0VW5pdCBz
dHJ1dCkKIHsKICAgICBpZiAoIW1fcmFyZURhdGEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmgKaW5kZXggMWVkMjExY2U4MzhmZDNlNjMzNTE0MmYzMTcwZGUxNmU4NTk3MmQ3
ZC4uMjdjOWNlMTJjZWU5NGI5ZjI3YzAyODRhNzYxOWIyNmIwMTljMzRiMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTQ1NSwxMiArNDU1LDI3IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHNldE1heE1hcmdpbkJlZm9yZVZhbHVlcyhMYXlvdXRVbml0IHBvcywgTGF5
b3V0VW5pdCBuZWcpOwogICAgIHZvaWQgc2V0TWF4TWFyZ2luQWZ0ZXJWYWx1ZXMoTGF5b3V0VW5p
dCBwb3MsIExheW91dFVuaXQgbmVnKTsKIAorICAgIHZvaWQgc2V0TXVzdERpc2NhcmRNYXJnaW5C
ZWZvcmUoYm9vbCA9IHRydWUpOworICAgIHZvaWQgc2V0TXVzdERpc2NhcmRNYXJnaW5BZnRlcihi
b29sID0gdHJ1ZSk7CisKKyAgICBib29sIG11c3REaXNjYXJkTWFyZ2luQmVmb3JlKCkgY29uc3Q7
CisgICAgYm9vbCBtdXN0RGlzY2FyZE1hcmdpbkFmdGVyKCkgY29uc3Q7CisKKyAgICBib29sIG11
c3REaXNjYXJkTWFyZ2luQmVmb3JlRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KikgY29uc3Q7Cisg
ICAgYm9vbCBtdXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94Kikg
Y29uc3Q7CisKKyAgICBib29sIG11c3RTZXBhcmF0ZU1hcmdpbkJlZm9yZUZvckNoaWxkKGNvbnN0
IFJlbmRlckJveCopIGNvbnN0OworICAgIGJvb2wgbXVzdFNlcGFyYXRlTWFyZ2luQWZ0ZXJGb3JD
aGlsZChjb25zdCBSZW5kZXJCb3gqKSBjb25zdDsKKwogICAgIHZvaWQgaW5pdE1heE1hcmdpblZh
bHVlcygpCiAgICAgewogICAgICAgICBpZiAobV9yYXJlRGF0YSkgewogICAgICAgICAgICAgbV9y
YXJlRGF0YS0+bV9tYXJnaW5zID0gTWFyZ2luVmFsdWVzKFJlbmRlckJsb2NrUmFyZURhdGE6OnBv
c2l0aXZlTWFyZ2luQmVmb3JlRGVmYXVsdCh0aGlzKSAsIFJlbmRlckJsb2NrUmFyZURhdGE6Om5l
Z2F0aXZlTWFyZ2luQmVmb3JlRGVmYXVsdCh0aGlzKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZW5kZXJCbG9ja1JhcmVEYXRhOjpwb3NpdGl2ZU1h
cmdpbkFmdGVyRGVmYXVsdCh0aGlzKSwgUmVuZGVyQmxvY2tSYXJlRGF0YTo6bmVnYXRpdmVNYXJn
aW5BZnRlckRlZmF1bHQodGhpcykpOwogICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV9wYWdpbmF0
aW9uU3RydXQgPSAwOworCisgICAgICAgICAgICBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJnaW5C
ZWZvcmUgPSBmYWxzZTsKKyAgICAgICAgICAgIG1fcmFyZURhdGEtPm1fZGlzY2FyZE1hcmdpbkFm
dGVyID0gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTk1OSw2ICs5NzQsOCBAQCBwcml2
YXRlOgogICAgICAgICBib29sIG1fbWFyZ2luQWZ0ZXJRdWlyayA6IDE7CiAgICAgICAgIGJvb2wg
bV9kZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsgOiAxOwogCisgICAgICAgIGJvb2wgbV9kaXNj
YXJkTWFyZ2luIDogMTsKKwogICAgICAgICAvLyBUaGVzZSBmbGFncyB0cmFjayB0aGUgcHJldmlv
dXMgbWF4aW1hbCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgbWFyZ2lucy4KICAgICAgICAgTGF5b3V0
VW5pdCBtX3Bvc2l0aXZlTWFyZ2luOwogICAgICAgICBMYXlvdXRVbml0IG1fbmVnYXRpdmVNYXJn
aW47CkBAIC05NzYsMzMgKzk5MywzNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldE1hcmdp
bkJlZm9yZVF1aXJrKGJvb2wgYikgeyBtX21hcmdpbkJlZm9yZVF1aXJrID0gYjsgfQogICAgICAg
ICB2b2lkIHNldE1hcmdpbkFmdGVyUXVpcmsoYm9vbCBiKSB7IG1fbWFyZ2luQWZ0ZXJRdWlyayA9
IGI7IH0KICAgICAgICAgdm9pZCBzZXREZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsoYm9vbCBi
KSB7IG1fZGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrID0gYjsgfQotICAgICAgICB2b2lkIHNl
dFBvc2l0aXZlTWFyZ2luKExheW91dFVuaXQgcCkgeyBtX3Bvc2l0aXZlTWFyZ2luID0gcDsgfQot
ICAgICAgICB2b2lkIHNldE5lZ2F0aXZlTWFyZ2luKExheW91dFVuaXQgbikgeyBtX25lZ2F0aXZl
TWFyZ2luID0gbjsgfQorICAgICAgICB2b2lkIHNldFBvc2l0aXZlTWFyZ2luKExheW91dFVuaXQg
cCkgeyBBU1NFUlQoIW1fZGlzY2FyZE1hcmdpbik7IG1fcG9zaXRpdmVNYXJnaW4gPSBwOyB9Cisg
ICAgICAgIHZvaWQgc2V0TmVnYXRpdmVNYXJnaW4oTGF5b3V0VW5pdCBuKSB7IEFTU0VSVCghbV9k
aXNjYXJkTWFyZ2luKTsgbV9uZWdhdGl2ZU1hcmdpbiA9IG47IH0KICAgICAgICAgdm9pZCBzZXRQ
b3NpdGl2ZU1hcmdpbklmTGFyZ2VyKExheW91dFVuaXQgcCkKICAgICAgICAgeworICAgICAgICAg
ICAgQVNTRVJUKCFtX2Rpc2NhcmRNYXJnaW4pOwogICAgICAgICAgICAgaWYgKHAgPiBtX3Bvc2l0
aXZlTWFyZ2luKQogICAgICAgICAgICAgICAgIG1fcG9zaXRpdmVNYXJnaW4gPSBwOwogICAgICAg
ICB9CiAgICAgICAgIHZvaWQgc2V0TmVnYXRpdmVNYXJnaW5JZkxhcmdlcihMYXlvdXRVbml0IG4p
CiAgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCghbV9kaXNjYXJkTWFyZ2luKTsKICAgICAg
ICAgICAgIGlmIChuID4gbV9uZWdhdGl2ZU1hcmdpbikKICAgICAgICAgICAgICAgICBtX25lZ2F0
aXZlTWFyZ2luID0gbjsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgc2V0TWFyZ2luKExheW91
dFVuaXQgcCwgTGF5b3V0VW5pdCBuKSB7IG1fcG9zaXRpdmVNYXJnaW4gPSBwOyBtX25lZ2F0aXZl
TWFyZ2luID0gbjsgfQorICAgICAgICB2b2lkIHNldE1hcmdpbihMYXlvdXRVbml0IHAsIExheW91
dFVuaXQgbikgeyBBU1NFUlQoIW1fZGlzY2FyZE1hcmdpbik7IG1fcG9zaXRpdmVNYXJnaW4gPSBw
OyBtX25lZ2F0aXZlTWFyZ2luID0gbjsgfQorICAgICAgICB2b2lkIHNldENhbkNvbGxhcHNlTWFy
Z2luQWZ0ZXJXaXRoQ2hpbGRyZW4oYm9vbCBjb2xsYXBzZSkgeyBtX2NhbkNvbGxhcHNlTWFyZ2lu
QWZ0ZXJXaXRoQ2hpbGRyZW4gPSBjb2xsYXBzZTsgfQorICAgICAgICB2b2lkIHNldERpc2NhcmRN
YXJnaW4oYm9vbCB2YWx1ZSkgeyBtX2Rpc2NhcmRNYXJnaW4gPSB2YWx1ZTsgfQogCiAgICAgICAg
IGJvb2wgYXRCZWZvcmVTaWRlT2ZCbG9jaygpIGNvbnN0IHsgcmV0dXJuIG1fYXRCZWZvcmVTaWRl
T2ZCbG9jazsgfQogICAgICAgICBib29sIGNhbkNvbGxhcHNlV2l0aE1hcmdpbkJlZm9yZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYXRCZWZvcmVTaWRlT2ZCbG9jayAmJiBtX2NhbkNvbGxhcHNlTWFyZ2lu
QmVmb3JlV2l0aENoaWxkcmVuOyB9CiAgICAgICAgIGJvb2wgY2FuQ29sbGFwc2VXaXRoTWFyZ2lu
QWZ0ZXIoKSBjb25zdCB7IHJldHVybiBtX2F0QWZ0ZXJTaWRlT2ZCbG9jayAmJiBtX2NhbkNvbGxh
cHNlTWFyZ2luQWZ0ZXJXaXRoQ2hpbGRyZW47IH0KICAgICAgICAgYm9vbCBjYW5Db2xsYXBzZU1h
cmdpbkJlZm9yZVdpdGhDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2FuQ29sbGFwc2VNYXJn
aW5CZWZvcmVXaXRoQ2hpbGRyZW47IH0KICAgICAgICAgYm9vbCBjYW5Db2xsYXBzZU1hcmdpbkFm
dGVyV2l0aENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Db2xsYXBzZU1hcmdpbkFmdGVy
V2l0aENoaWxkcmVuOyB9Ci0gICAgICAgIHZvaWQgc2V0Q2FuQ29sbGFwc2VNYXJnaW5BZnRlcldp
dGhDaGlsZHJlbihib29sIGNvbGxhcHNlKSB7IG1fY2FuQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhD
aGlsZHJlbiA9IGNvbGxhcHNlOyB9CiAgICAgICAgIGJvb2wgcXVpcmtDb250YWluZXIoKSBjb25z
dCB7IHJldHVybiBtX3F1aXJrQ29udGFpbmVyOyB9CiAgICAgICAgIGJvb2wgZGV0ZXJtaW5lZE1h
cmdpbkJlZm9yZVF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9kZXRlcm1pbmVkTWFyZ2luQmVmb3Jl
UXVpcms7IH0KICAgICAgICAgYm9vbCBtYXJnaW5CZWZvcmVRdWlyaygpIGNvbnN0IHsgcmV0dXJu
IG1fbWFyZ2luQmVmb3JlUXVpcms7IH0KICAgICAgICAgYm9vbCBtYXJnaW5BZnRlclF1aXJrKCkg
Y29uc3QgeyByZXR1cm4gbV9tYXJnaW5BZnRlclF1aXJrOyB9CiAgICAgICAgIExheW91dFVuaXQg
cG9zaXRpdmVNYXJnaW4oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aXZlTWFyZ2luOyB9CiAgICAg
ICAgIExheW91dFVuaXQgbmVnYXRpdmVNYXJnaW4oKSBjb25zdCB7IHJldHVybiBtX25lZ2F0aXZl
TWFyZ2luOyB9CisgICAgICAgIGJvb2wgZGlzY2FyZE1hcmdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
ZGlzY2FyZE1hcmdpbjsgfQogICAgICAgICBMYXlvdXRVbml0IG1hcmdpbigpIGNvbnN0IHsgcmV0
dXJuIG1fcG9zaXRpdmVNYXJnaW4gLSBtX25lZ2F0aXZlTWFyZ2luOyB9CiAgICAgfTsKIApAQCAt
MTE4Miw4ICsxMjAzLDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgICwgbV9wYWdpbmF0aW9u
U3RydXQoMCkKICAgICAgICAgICAgICwgbV9wYWdlTG9naWNhbE9mZnNldCgwKQogICAgICAgICAg
ICAgLCBtX2xpbmVHcmlkQm94KDApCi0gICAgICAgICAgICAsIG1fc2hvdWxkQnJlYWtBdExpbmVU
b0F2b2lkV2lkb3coZmFsc2UpCiAgICAgICAgICAgICAsIG1fbGluZUJyZWFrVG9Bdm9pZFdpZG93
KDApCisgICAgICAgICAgICAsIG1fc2hvdWxkQnJlYWtBdExpbmVUb0F2b2lkV2lkb3coZmFsc2Up
CisgICAgICAgICAgICAsIG1fZGlzY2FyZE1hcmdpbkJlZm9yZShmYWxzZSkKKyAgICAgICAgICAg
ICwgbV9kaXNjYXJkTWFyZ2luQWZ0ZXIoZmFsc2UpCiAgICAgICAgIHsgCiAgICAgICAgIH0KIApA
QCAtMTE5MSw3ICsxMjE0LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICB7IAogICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+KGJsb2NrLT5tYXJnaW5CZWZvcmUoKSwgMCk7CiAg
ICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIHN0YXRpYyBMYXlvdXRVbml0IG5lZ2F0aXZlTWFy
Z2luQmVmb3JlRGVmYXVsdChjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCiAgICAgICAgIHsgCiAg
ICAgICAgICAgICByZXR1cm4gc3RkOjptYXg8TGF5b3V0VW5pdD4oLWJsb2NrLT5tYXJnaW5CZWZv
cmUoKSwgMCk7CkBAIC0xMjExLDggKzEyMzMsMTAgQEAgcHJvdGVjdGVkOgogICAgICAgICAKICAg
ICAgICAgUm9vdElubGluZUJveCogbV9saW5lR3JpZEJveDsKIAotICAgICAgICBib29sIG1fc2hv
dWxkQnJlYWtBdExpbmVUb0F2b2lkV2lkb3c7CiAgICAgICAgIFJvb3RJbmxpbmVCb3gqIG1fbGlu
ZUJyZWFrVG9Bdm9pZFdpZG93OworICAgICAgICBib29sIG1fc2hvdWxkQnJlYWtBdExpbmVUb0F2
b2lkV2lkb3cgOiAxOworICAgICAgICBib29sIG1fZGlzY2FyZE1hcmdpbkJlZm9yZSA6IDE7Cisg
ICAgICAgIGJvb2wgbV9kaXNjYXJkTWFyZ2luQWZ0ZXIgOiAxOwogICAgICB9OwogCiAgICAgT3du
UHRyPFJlbmRlckJsb2NrUmFyZURhdGE+IG1fcmFyZURhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGY1ZTVjZDM3Y2JmZDlmZTgzOGQxMDQy
OTc0NGFiMzVjOWNkZDhlYmMuLjBiZmQ5NDFmYWUwMWNiMDY3MDllMjk1NzQ5ZWNkMzNkOGZhMTU3
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC0zNzcsNiArMzc3LDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzQm9yZGVyKCkgY29uc3QgeyBy
ZXR1cm4gc3Vycm91bmQtPmJvcmRlci5oYXNCb3JkZXIoKTsgfQogICAgIGJvb2wgaGFzUGFkZGlu
ZygpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5wYWRkaW5nLm5vblplcm8oKTsgfQogICAgIGJv
b2wgaGFzT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPm9mZnNldC5ub25aZXJvKCk7
IH0KKyAgICBib29sIGlzTWFyZ2luQmVmb3JlUXVpcmsoKSBjb25zdCB7IHJldHVybiBtYXJnaW5C
ZWZvcmUoKS5xdWlyaygpOyB9CisgICAgYm9vbCBpc01hcmdpbkFmdGVyUXVpcmsoKSBjb25zdCB7
IHJldHVybiBtYXJnaW5BZnRlcigpLnF1aXJrKCk7IH0KIAogICAgIGJvb2wgaGFzQmFja2dyb3Vu
ZEltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kLT5iYWNrZ3JvdW5kKCkuaGFzSW1h
Z2UoKTsgfQogICAgIGJvb2wgaGFzRml4ZWRCYWNrZ3JvdW5kSW1hZ2UoKSBjb25zdCB7IHJldHVy
biBtX2JhY2tncm91bmQtPmJhY2tncm91bmQoKS5oYXNGaXhlZEltYWdlKCk7IH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2
YTBlOGNiYTM4YmJlZjZlMTJiYTA5YjI2MjE2NzE5NTUzYmFiZGE5Li5mMThjMzlkYjYyNjgxYTMz
YzVjN2M3NWIyNzU3ZTg3M2U2OThmMGI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDIt
MDYgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJlY3QgcmVuZGVyaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3VyIG5l
dyB0ZXN0cyBjb3ZlcmluZyB0aGUgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydHkgYmFz
aWMgYmVoYXZpb3I6IGNvbGxhcHNpbmcKKyAgICAgICAgYmV0d2VlbiBhIGJsb2NrIGNvbnRhaW5l
ciBhbmQgaXRzIGNoaWxkcmVuLCBjb2xsYXBzaW5nIGJldHdlZW4gc2libGluZyBib3hlcyBpbiBi
b3RoIFRUQgorICAgICAgICBhbmQgQlRUIGRpcmVjdGlvbi4gVGhlIGxhc3QgdGVzdCB2ZXJpZmll
cyBpZiBhIGNvbnRhaW5lcidzIGJlZm9yZSBtYXJnaW4gY29ycmVjdGx5IHJlc2V0cworICAgICAg
ICB0aGUgZGlzY2FyZCB2YWx1ZSBhZnRlciBhIGNsZWFyIG9mIHRoZSBjaGlsZCB0aGF0IGluaXRh
bGx5IGNhdXNlZCBpdC4KKworICAgICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dl
YmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFpbmVyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Ut
Y29udGFpbmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxh
cHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFw
c2UtZmxvYXRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxh
cHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1j
b2xsYXBzZS1zaWJsaW5ncy1idC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Jsb2NrL21h
cmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1t
YXJnaW4tY29sbGFwc2Utc2libGluZ3MuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMDYgIE1hcmph
IEjDtmx0dMOkICA8bWFyamFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtXSzJdIE5ldyB0ZXN0
cyBpbnRyb2R1Y2VkIGluIHIxMDA4OTUgZmFpbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1jb250YWluZXIt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dl
YmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFpbmVyLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDJlMzI4NTFmZGE3ODcxYzFjODMyNjdhM2M1ZjZlOTA0M2VlMzI0NQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4t
Y29sbGFwc2UtY29udGFpbmVyLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNTkgQEAKKzxodG1s
PgorCTxoZWFkPgorCQk8c3R5bGU+CisJCWRpdiB7CisJCQltYXJnaW46IDBweDsKKwkJfQorCisJ
CS5jb250YWluZXIgeworCQkJYm9yZGVyOiB0aGluIHNvbGlkIGJsdWU7CisJCQl3aWR0aDogMzUw
cHg7CisJCQlmbG9hdDogbGVmdDsKKwkJfQorCisJCS5sZXZlbDEgeworCQkJbWFyZ2luLXRvcDog
MTBweDsKKwkJCW1hcmdpbi1ib3R0b206IDEwcHg7CisJCQlib3JkZXI6IDFweCBkYXNoZWQgYmxh
Y2s7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKwkJfQorCisJCS5sZXZlbDIgeworCQkJ
bWFyZ2luLXRvcDogMjVweDsKKwkJCW1hcmdpbi1ib3R0b206IDIwcHg7CisJCQliYWNrZ3JvdW5k
LWNvbG9yOiBvcmFuZ2U7CisJCX0KKworCQkubGV2ZWwzIHsKKwkJCW1hcmdpbi10b3A6IDMwcHg7
CisJCQltYXJnaW4tYm90dG9tOiAzMHB4OworCQkJYmFja2dyb3VuZC1jb2xvcjogcGluazsKKwkJ
fQorCisJCSN0MSAubGV2ZWwyIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJfQorCisJCSN0MSAu
bGV2ZWwzIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJfQorCisJCSN0MiAubGV2ZWwyIHsKKwkJ
CW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSN0MiAubGV2ZWwzIHsKKwkJCW1hcmdpbi1i
b3R0b206IDBweDsKKwkJfQorCisJCSN0MyAubGV2ZWwyIHsKKwkJCW1hcmdpbi10b3A6IDBweDsK
KwkJfQorCisJCSN0MyAubGV2ZWwzIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJfQorCisJCSN0
NCAubGV2ZWwyIHsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSN0NCAubGV2ZWwz
IHsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSN0NSAubGV2ZWwyIHsKKwkJCW1h
cmdpbi10b3A6IDBweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSN0NSAubGV2
ZWwzIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQor
CisJCSN0NiAubGV2ZWwyIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCW1hcmdpbi1ib3R0b206
IDBweDsKKwkJfQorCisJCSN0NiAubGV2ZWwzIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCW1h
cmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSN0NyAubGV2ZWwzIHsKKwkJCW1hcmdpbi10b3A6
IDBweDsKKwkJfQorCisJCSN0OCAubGV2ZWwzIHsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJ
fQorCisJCSN0OSAubGV2ZWwyIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCXBhZGRpbmctdG9w
OiAzMHB4OworCQl9CisKKwkJI3Q5IC5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQl9
CisKKwkJI3QxMCAubGV2ZWwyIHsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJCXBhZGRpbmct
Ym90dG9tOiAzMHB4OworCQl9CisKKwkJI3QxMCAubGV2ZWwzIHsKKwkJCW1hcmdpbi1ib3R0b206
IDBweDsKKwkJfQorCisJCSN0MTEgLmxldmVsMiB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQlw
YWRkaW5nLXRvcDogMzBweDsKKwkJfQorCisJCSN0MTEgLmxldmVsMyB7CisJCQltYXJnaW4tdG9w
OiAwcHg7CisJCX0KKworCQkjdDExIHsKKwkJCXBhZGRpbmctdG9wOiAyNXB4OworCQl9CisKKwkJ
I3QxMiAubGV2ZWwyIHsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJCXBhZGRpbmctYm90dG9t
OiAzMHB4OworCQl9CisKKwkJI3QxMiAubGV2ZWwzIHsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsK
KwkJfQorCisJCSN0MTIgeworCQkJcGFkZGluZy1ib3R0b206IDIwcHg7CisJCX0KKworCQk8L3N0
eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2OCI+SW1wbGVtZW50IHRoZSAtd2Vi
a2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJlY3QgcmVuZGVyaW5nPC9hPi48L3A+
CisJCTxwPlRoaXMgcmVmIHRlc3QgY292ZXJzIGJhc2ljIGNvbGxhcHNpbmcgYmVoYXZpb3IgYmV0
d2VlbiBhIGJveCBhbmQgaXRzIGNvbnRhaW5lciB3aGVuIHVzaW5nIC13ZWJraXQtbWFyZ2luLWNv
bGxhcHNlLjwvcD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKwkJCTxkaXYgaWQ9InQxIiBj
bGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+UGlu
azogZGlzY2FyZCB0b3A8L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQyIiBjbGFzcz0i
bGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+UGluazogZGlz
Y2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQzIiBjbGFzcz0ibGV2
ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNj
YXJkIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDQiIGNsYXNzPSJsZXZlbDEi
PjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IGRpc2NhcmQg
Ym90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0NSIgY2xhc3M9ImxldmVsMSI+
PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogZGlzY2FyZCB0
b3AsIGRpc2NhcmQgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0NiIgY2xh
c3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPlBpbms6
IGRpc2NhcmQgdG9wLCBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBp
ZD0idDciIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2
ZWwzIj5PcmFuZ2U6IHNlcGFyYXRlIHRvcCwgUGluazogZGlzY2FyZCB0b3A8L2Rpdj48L2Rpdj48
L2Rpdj4KKwkJCTxkaXYgaWQ9InQ4IiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIi
PjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBzZXBhcmF0ZSBib3R0b20sIFBpbms6IGRpc2Nh
cmQgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCTwvZGl2PgorCQk8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorCQkJPGRpdiBpZD0idDkiIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVs
MiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IGRpc2NhcmQgdG9wLCBQaW5rOiBzZXBhcmF0
ZSB0b3A8L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQxMCIgY2xhc3M9ImxldmVsMSI+
PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogZGlzY2FyZCBi
b3R0b20sIFBpbms6IHNlcGFyYXRlIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBp
ZD0idDExIiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9Imxl
dmVsMyI+T3JhbmdlOiBzZXBhcmF0ZSB0b3AsIFBpbms6IHNlcGFyYXRlIHRvcDwvZGl2PjwvZGl2
PjwvZGl2PgorCQkJPGRpdiBpZD0idDEyIiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZl
bDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBzZXBhcmF0ZSBib3R0b20sIFBpbms6IHNl
cGFyYXRlIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1jb250YWlu
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1t
YXJnaW4tY29sbGFwc2UtY29udGFpbmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNkODZjYTQzOWJmMDYy
Y2QwOTlmNWVmMjJlZjU2YTk2ZjZmY2Y5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFp
bmVyLmh0bWwKQEAgLTAsMCArMSw3OCBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTxzdHlsZT4KKwkJ
ZGl2IHsKKwkJCW1hcmdpbjogMHB4OworCQl9CisKKwkJLmNvbnRhaW5lciB7CisJCQlib3JkZXI6
IHRoaW4gc29saWQgYmx1ZTsKKwkJCXdpZHRoOiAzNTBweDsKKwkJCWZsb2F0OiBsZWZ0OworCQl9
CisKKwkJLmxldmVsMSB7CisJCQltYXJnaW4tdG9wOiAxMHB4OworCQkJbWFyZ2luLWJvdHRvbTog
MTBweDsKKwkJCWJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKKwkJCWJhY2tncm91bmQtY29sb3I6
IGdyZWVuOworCQl9CisKKwkJLmxldmVsMiB7CisJCQltYXJnaW4tdG9wOiAyNXB4OworCQkJbWFy
Z2luLWJvdHRvbTogMjBweDsKKwkJCWJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKwkJfQorCisJ
CS5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMzBweDsKKwkJCW1hcmdpbi1ib3R0b206IDMwcHg7
CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBwaW5rOworCQl9CisKKwkJLmNvbGxhcHNlX3RvcCB7CisJ
CQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IGNvbGxhcHNlOworCQl9CisKKwkJLmNvbGxh
cHNlX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdpbi1ib3R0b20tY29sbGFwc2U6IGNvbGxhcHNl
OworCQl9CisKKwkJLmRpc2NhcmRfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBz
ZTogZGlzY2FyZDsKKwkJfQorCisJCS5kaXNjYXJkX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdp
bi1ib3R0b20tY29sbGFwc2U6IGRpc2NhcmQ7CisJCX0KKworCQkuc2VwYXJhdGVfdG9wIHsKKwkJ
CS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogc2VwYXJhdGU7CisJCX0KKworCQkuc2VwYXJh
dGVfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBzZTogc2VwYXJhdGU7
CisJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxwPlRlc3QgZm9yIDxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNjgiPkltcGxl
bWVudCB0aGUgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRl
cmluZzwvYT4uPC9wPgorCQk8cD5UaGlzIHJlZiB0ZXN0IGNvdmVycyBiYXNpYyBjb2xsYXBzaW5n
IGJlaGF2aW9yIGJldHdlZW4gYSBib3ggYW5kIGl0cyBjb250YWluZXIgd2hlbiB1c2luZyAtd2Vi
a2l0LW1hcmdpbi1jb2xsYXBzZS48L3A+CisJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisJCQk8
ZGl2IGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwz
IGRpc2NhcmRfdG9wIj5QaW5rOiBkaXNjYXJkIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRp
diBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyBk
aXNjYXJkX2JvdHRvbSI+UGluazogZGlzY2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJ
CTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIGRpc2NhcmRfdG9wIj48ZGl2
IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogZGlzY2FyZCB0b3A8L2Rpdj48L2Rpdj48L2Rpdj4KKwkJ
CTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIGRpc2NhcmRfYm90dG9tIj48
ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogZGlzY2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rp
dj4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIGRpc2NhcmRfdG9w
IGRpc2NhcmRfYm90dG9tIj48ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogZGlzY2FyZCB0b3As
IGRpc2NhcmQgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJsZXZlbDEi
PjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIGRpc2NhcmRfdG9wIGRpc2Nh
cmRfYm90dG9tIj5QaW5rOiBkaXNjYXJkIHRvcCwgZGlzY2FyZCBib3R0b208L2Rpdj48L2Rpdj48
L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIHNlcGFyYXRl
X3RvcCI+PGRpdiBjbGFzcz0ibGV2ZWwzIGRpc2NhcmRfdG9wIj5PcmFuZ2U6IHNlcGFyYXRlIHRv
cCwgUGluazogZGlzY2FyZCB0b3A8L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9Imxl
dmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIHNlcGFyYXRlX2JvdHRvbSI+PGRpdiBjbGFzcz0ibGV2
ZWwzIGRpc2NhcmRfYm90dG9tIj5PcmFuZ2U6IHNlcGFyYXRlIGJvdHRvbSwgUGluazogZGlzY2Fy
ZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJPC9kaXY+CisJCTxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisJCQk8ZGl2IGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiBkaXNjYXJk
X3RvcCI+PGRpdiBjbGFzcz0ibGV2ZWwzIHNlcGFyYXRlX3RvcCI+T3JhbmdlOiBkaXNjYXJkIHRv
cCwgUGluazogc2VwYXJhdGUgdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJs
ZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiBkaXNjYXJkX2JvdHRvbSI+PGRpdiBjbGFzcz0ibGV2
ZWwzIHNlcGFyYXRlX2JvdHRvbSI+T3JhbmdlOiBkaXNjYXJkIGJvdHRvbSwgUGluazogc2VwYXJh
dGUgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJsZXZlbDEiPjxkaXYg
Y2xhc3M9ImxldmVsMiBzZXBhcmF0ZV90b3AiPjxkaXYgY2xhc3M9ImxldmVsMyBzZXBhcmF0ZV90
b3AiPk9yYW5nZTogc2VwYXJhdGUgdG9wLCBQaW5rOiBzZXBhcmF0ZSB0b3A8L2Rpdj48L2Rpdj48
L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIHNlcGFyYXRl
X2JvdHRvbSI+PGRpdiBjbGFzcz0ibGV2ZWwzIHNlcGFyYXRlX2JvdHRvbSI+T3JhbmdlOiBzZXBh
cmF0ZSBib3R0b20sIFBpbms6IHNlcGFyYXRlIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQk8
L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1h
cmdpbi1jb2xsYXBzZS1mbG9hdHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYmxv
Y2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmNhMWQzOTVkMjEwMDdhOWEwYTk1N2VhZjlmYTNiYWNjYjE2MjE2
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxh
cHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSw0MSBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTxzdHlsZT4KKwkJZGl2IHsKKwkJCW1hcmdpbjog
MHB4OworCQl9CisKKwkJLmNvbnRhaW5lciB7CisJCQlib3JkZXI6IHRoaW4gc29saWQgYmx1ZTsK
KwkJCXdpZHRoOiA2MDBweDsKKwkJfQorCisJCSNmbG9hdCB7CisJCQlmbG9hdDogbGVmdDsKKwkJ
CXdpZHRoOiAyMDBweDsKKwkJCWhlaWdodDogMjAwcHg7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKKwkJfQorCisJCSNwYXJlbnQgeworCQkJbWFyZ2luLXRvcDogNTBweDsKKwkJfQorCisJ
CSNjb250ZW50IHsKKwkJCW1hcmdpbi10b3A6IDUwcHg7CisJCQljbGVhcjogbGVmdDsKKwkJfQor
CQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2OCI+SW1wbGVtZW50IHRo
ZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJlY3QgcmVuZGVyaW5nPC9h
Pi48L3A+CisJCTxwPlRoaXMgcmVmIHRlc3QgY292ZXJzIGJhc2ljIGNvbGxhcHNpbmcgYmVoYXZp
b3Igd2hlbiBhIGNoaWxkIHdpdGggYSBkaXNjYXJkIHRvcCBtYXJnaW4gaXMgY2xlYXJlZCBhbmQg
aXRzIHRvcCBtYXJnaW4gZG9lc24ndCBjb2xsYXBzZSB3aXRoIHRoZSB0b3AgbWFyZ2luIG9mIHRo
ZSBjb250YWluaW5nIGJsb2NrIGFueSBtb3JlLgorCQkJVGhlIHRvcCBtYXJnaW4gb2YgdGhlIGNv
bnRhaW5pbmcgYmxvY2sgbmVlZHMgdG8gYmUgcmVzdG9yZWQuPC9wPgorCQk8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorCQkJPGRpdiBpZD0icGFyZW50Ij4KKwkJCQk8ZGl2IGlkPSJmbG9hdCI+PC9k
aXY+CisJCQkJPGRpdiBpZD0iY29udGVudCI+Q2xhc3MgYXB0ZW50IHRhY2l0aSBzb2Npb3NxdSBh
ZCBsaXRvcmEgdG9ycXVlbnQgcGVyIGNvbnViaWEgbm9zdHJhLCBwZXIgaW5jZXB0b3MgaGltZW5h
ZW9zLiBOdW5jIG9yY2kgbWF1cmlzLCB1bHRyaWNlcyBub24gYmxhbmRpdCBub24sIGZlcm1lbnR1
bSBhIGxpYmVyby4gTW9yYmkgYW50ZSBlbGl0LCBmYXVjaWJ1cyB2ZWwgZGlnbmlzc2ltIHF1aXMs
IGV1aXNtb2QgYSBhcmN1LiBTZWQgdGVtcHVzIHN1c2NpcGl0IG51bGxhLCB2aXRhZSB2YXJpdXMg
ZWxpdCBzdXNjaXBpdCBldC4gUGVsbGVudGVzcXVlIGNvbnNlcXVhdCBsb2JvcnRpcyBibGFuZGl0
LiBWaXZhbXVzIGEgdGVtcHVzIGRpYW0uIFN1c3BlbmRpc3NlIG51bGxhIGxlY3R1cywgY29uc2Vx
dWF0IHF1aXMgdGVtcG9yIHZpdGFlLCBwbGFjZXJhdCBzZWQgbG9yZW0uIFBoYXNlbGx1cyBhdCBk
b2xvciBmZWxpcywgdXQgdWx0cmljaWVzIGxhY3VzLiBQcmFlc2VudCB2ZWwgdHVycGlzIGxhY3Vz
LiBOYW0gdWx0cmljaWVzIGF1Z3VlIGluIGVyYXQgY29uZ3VlIGFjIHRlbXBvciBuZXF1ZSBjdXJz
dXMuPC9kaXY+CisJCQk8L2Rpdj4KKwkJPC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2sv
bWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNl
LWZsb2F0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmOWE0OWEwYWViNDRlYmZhZGM2ODU4YTIyYmE5NDli
OTI0YTJlZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdp
bi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWZsb2F0cy5odG1sCkBAIC0wLDAgKzEs
NDUgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8c3R5bGU+CisJCWRpdiB7CisJCQltYXJnaW46IDBw
eDsKKwkJfQorCisJCS5jb250YWluZXIgeworCQkJYm9yZGVyOiB0aGluIHNvbGlkIGJsdWU7CisJ
CQl3aWR0aDogNjAwcHg7CisJCX0KKworCQkuZGlzY2FyZF90b3AgeworCQkJLXdlYmtpdC1tYXJn
aW4tdG9wLWNvbGxhcHNlOiBkaXNjYXJkOworCQl9CisKKwkJI2Zsb2F0IHsKKwkJCWZsb2F0OiBs
ZWZ0OworCQkJd2lkdGg6IDIwMHB4OworCQkJaGVpZ2h0OiAyMDBweDsKKwkJCWJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOworCQl9CisKKwkJI3BhcmVudCB7CisJCQltYXJnaW4tdG9wOiA1MHB4Owor
CQl9CisKKwkJI2NvbnRlbnQgeworCQkJbWFyZ2luLXRvcDogNTBweDsKKwkJCWNsZWFyOiBsZWZ0
OworCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBs
ZW1lbnQgdGhlIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5k
ZXJpbmc8L2E+LjwvcD4KKwkJPHA+VGhpcyByZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2lu
ZyBiZWhhdmlvciB3aGVuIGEgY2hpbGQgd2l0aCBhIGRpc2NhcmQgdG9wIG1hcmdpbiBpcyBjbGVh
cmVkIGFuZCBpdHMgdG9wIG1hcmdpbiBkb2Vzbid0IGNvbGxhcHNlIHdpdGggdGhlIHRvcCBtYXJn
aW4gb2YgdGhlIGNvbnRhaW5pbmcgYmxvY2sgYW55IG1vcmUuCisJCQlUaGUgdG9wIG1hcmdpbiBv
ZiB0aGUgY29udGFpbmluZyBibG9jayBuZWVkcyB0byBiZSByZXN0b3JlZC48L3A+CisJCTxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisJCQk8ZGl2IGlkPSJwYXJlbnQiPgorCQkJCTxkaXYgaWQ9ImZs
b2F0Ij48L2Rpdj4KKwkJCQk8ZGl2IGlkPSJjb250ZW50IiBjbGFzcz0iZGlzY2FyZF90b3AiPkNs
YXNzIGFwdGVudCB0YWNpdGkgc29jaW9zcXUgYWQgbGl0b3JhIHRvcnF1ZW50IHBlciBjb251Ymlh
IG5vc3RyYSwgcGVyIGluY2VwdG9zIGhpbWVuYWVvcy4gTnVuYyBvcmNpIG1hdXJpcywgdWx0cmlj
ZXMgbm9uIGJsYW5kaXQgbm9uLCBmZXJtZW50dW0gYSBsaWJlcm8uIE1vcmJpIGFudGUgZWxpdCwg
ZmF1Y2lidXMgdmVsIGRpZ25pc3NpbSBxdWlzLCBldWlzbW9kIGEgYXJjdS4gU2VkIHRlbXB1cyBz
dXNjaXBpdCBudWxsYSwgdml0YWUgdmFyaXVzIGVsaXQgc3VzY2lwaXQgZXQuIFBlbGxlbnRlc3F1
ZSBjb25zZXF1YXQgbG9ib3J0aXMgYmxhbmRpdC4gVml2YW11cyBhIHRlbXB1cyBkaWFtLiBTdXNw
ZW5kaXNzZSBudWxsYSBsZWN0dXMsIGNvbnNlcXVhdCBxdWlzIHRlbXBvciB2aXRhZSwgcGxhY2Vy
YXQgc2VkIGxvcmVtLiBQaGFzZWxsdXMgYXQgZG9sb3IgZmVsaXMsIHV0IHVsdHJpY2llcyBsYWN1
cy4gUHJhZXNlbnQgdmVsIHR1cnBpcyBsYWN1cy4gTmFtIHVsdHJpY2llcyBhdWd1ZSBpbiBlcmF0
IGNvbmd1ZSBhYyB0ZW1wb3IgbmVxdWUgY3Vyc3VzLjwvZGl2PgorCQkJPC9kaXY+CisJCTwvZGl2
PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2lu
LWNvbGxhcHNlLXNpYmxpbmdzLWJ0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWJ0LWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI1M2QyNThmNzhkZGZmNDNlZjA5MmY3NWVjYzdiNGJi
NzNhOWUyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2lu
LWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQtZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDk1IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYgewor
CQkJbWFyZ2luOiAwcHg7CisJCX0KKworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhpbiBz
b2xpZCBibHVlOworCQkJd2lkdGg6IDMwMHB4OworCQl9CisKKwkJLmJsb2NrIHsKKwkJCWJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworCQkJbWFyZ2luLXRvcDogNHB4OworCQkJbWFyZ2luLWJvdHRv
bTogNnB4OworCQkJYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOworCQkJLXdlYmtpdC13cml0aW5n
LW1vZGU6IGhvcml6b250YWwtYnQ7CisJCX0KKworCQkuY29sbGFwc2VfdG9wOmJlZm9yZSwgLmNv
bGxhcHNlX2JvdHRvbTphZnRlciB7CisJCQljb250ZW50OiAiQ29sbGFwc2UiOworCQl9CisKKwkJ
LmRpc2NhcmRfdG9wOmJlZm9yZSwgLmRpc2NhcmRfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6
ICJEaXNjYXJkIjsKKwkJfQorCisJCS5zZXBhcmF0ZV90b3A6YmVmb3JlLCAuc2VwYXJhdGVfYm90
dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJTZXBhcmF0ZSI7CisJCX0KKworCQkjYjIgeworCQkJ
bWFyZ2luLXRvcDogNnB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI2IzIHsK
KwkJCW1hcmdpbi10b3A6IDZweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNi
NCB7CisJCQltYXJnaW4tdG9wOiA2cHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKwor
CQkjYjUgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9
CisKKwkJI2I2IHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsK
KwkJfQorCisJCSNiNyB7CisJCQltYXJnaW4tdG9wOiAxNHB4OworCQkJbWFyZ2luLWJvdHRvbTog
MHB4OworCQl9CisKKwkJI2I4IHsKKwkJCW1hcmdpbi10b3A6IDRweDsKKwkJCW1hcmdpbi1ib3R0
b206IDBweDsKKwkJfQorCisJCSNiOSB7CisJCQltYXJnaW4tdG9wOiAxMHB4OworCQkJbWFyZ2lu
LWJvdHRvbTogMTBweDsKKwkJfQorCisJCSNiMTAgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJ
bWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5Pgor
CQk8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA4MTY4Ij5JbXBsZW1lbnQgdGhlIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3Bl
cnRpZXMgY29ycmVjdCByZW5kZXJpbmc8L2E+LjwvcD4KKwkJPHA+VGhpcyByZWYgdGVzdCBjb3Zl
cnMgYmFzaWMgY29sbGFwc2luZyBiZWhhdmlvciBiZXR3ZWVuIHNpYmxpbmcgYm94ZXMgd2hlbiB1
c2luZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS4gVGhlIGJsb2NrcyBoYXZlIGxyLWJ0IHdyaXRp
bmcgbW9kZS48L3A+CisJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisJCQk8ZGl2IGlkPSJiMSIg
Y2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJ
CQk8ZGl2IGlkPSJiMiIgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20i
Pjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiMyIgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBj
b2xsYXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiNCIgY2xhc3M9ImJsb2Nr
IGRpc2NhcmRfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjUi
IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJ
CQk8ZGl2IGlkPSJiNiIgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBkaXNjYXJkX2JvdHRvbSI+
PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI3IiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3Agc2Vw
YXJhdGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjgiIGNsYXNzPSJibG9jayBj
b2xsYXBzZV90b3Agc2VwYXJhdGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjki
IGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3Agc2VwYXJhdGVfYm90dG9tIj48YnIvPjwvZGl2Pgor
CQkJPGRpdiBpZD0iYjEwIiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3AgY29sbGFwc2VfYm90dG9t
Ij48YnIvPjwvZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4t
Y29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1idC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1z
aWJsaW5ncy1idC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4YTMwZTFhMzJkZDhiMGU0ZDVlNjM5MzlmOGEw
ZGI0YzY5NTQxZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21h
cmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWJ0Lmh0bWwKQEAg
LTAsMCArMSw4OSBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTxzdHlsZT4KKwkJZGl2IHsKKwkJCW1h
cmdpbjogMHB4OworCQl9CisKKwkJLmNvbnRhaW5lciB7CisJCQlib3JkZXI6IHRoaW4gc29saWQg
Ymx1ZTsKKwkJCXdpZHRoOiAzMDBweDsKKwkJfQorCisJCS5ibG9jayB7CisJCQliYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKKwkJCW1hcmdpbi10b3A6IDRweDsKKwkJCW1hcmdpbi1ib3R0b206IDZw
eDsKKwkJCWJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKKwkJCS13ZWJraXQtd3JpdGluZy1tb2Rl
OiBob3Jpem9udGFsLWJ0OworCQl9CisKKwkJLnNlbGZfY29sbGFwc2UgeworCQkJbWFyZ2luLXRv
cDogMnB4OworCQkJbWFyZ2luLWJvdHRvbTogNHB4OworCQkJaGVpZ2h0OiAwcHg7CisJCX0KKwor
CQkuY29sbGFwc2VfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogY29sbGFw
c2U7CisJCX0KKworCQkuY29sbGFwc2VfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRv
bS1jb2xsYXBzZTogY29sbGFwc2U7CisJCX0KKworCQkuY29sbGFwc2VfdG9wOmJlZm9yZSwgLmNv
bGxhcHNlX2JvdHRvbTphZnRlciB7CisJCQljb250ZW50OiAiQ29sbGFwc2UiOworCQl9CisKKwkJ
LmRpc2NhcmRfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogZGlzY2FyZDsK
KwkJfQorCisJCS5kaXNjYXJkX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdpbi1ib3R0b20tY29s
bGFwc2U6IGRpc2NhcmQ7CisJCX0KKworCQkuZGlzY2FyZF90b3A6YmVmb3JlLCAuZGlzY2FyZF9i
b3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIkRpc2NhcmQiOworCQl9CisKKwkJLnNlcGFyYXRl
X3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IHNlcGFyYXRlOworCQl9CisK
KwkJLnNlcGFyYXRlX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdpbi1ib3R0b20tY29sbGFwc2U6
IHNlcGFyYXRlOworCQl9CisKKwkJLnNlcGFyYXRlX3RvcDpiZWZvcmUsIC5zZXBhcmF0ZV9ib3R0
b206YWZ0ZXIgeworCQkJY29udGVudDogIlNlcGFyYXRlIjsKKwkJfQorCQk8L3N0eWxlPgorCTwv
aGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2OCI+SW1wbGVtZW50IHRoZSAtd2Via2l0LW1hcmdp
bi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJlY3QgcmVuZGVyaW5nPC9hPi48L3A+CisJCTxwPlRo
aXMgcmVmIHRlc3QgY292ZXJzIGJhc2ljIGNvbGxhcHNpbmcgYmVoYXZpb3IgYmV0d2VlbiBzaWJs
aW5nIGJveGVzIHdoZW4gdXNpbmcgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UuIFRoZSBibG9ja3Mg
aGF2ZSBsci1idCB3cml0aW5nIG1vZGUuPC9wPgorCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
CQkJPGRpdiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48
L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFz
cz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxk
aXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgc2Vw
YXJhdGVfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNl
bGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3AgZGlz
Y2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48
L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBkaXNjYXJkX2JvdHRvbSI+
PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRp
diBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIvPjwvZGl2Pgor
CQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9j
ayBkaXNjYXJkX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNz
PSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3Rv
cCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxh
cHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBzZXBhcmF0ZV9i
b3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4K
KwkJCTxkaXYgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48
L2Rpdj4KKwkJPC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNl
L3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2li
bGluZ3MtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MmZkMjkzZTQ3MzI2MjkwYjBhYjIyMGZl
ZGRiY2YxNmQwMjRjOWM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9j
ay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8c3R5bGU+CisJCWRp
diB7CisJCQltYXJnaW46IDBweDsKKwkJfQorCisJCS5jb250YWluZXIgeworCQkJYm9yZGVyOiB0
aGluIHNvbGlkIGJsdWU7CisJCQl3aWR0aDogMzAwcHg7CisJCX0KKworCQkuYmxvY2sgeworCQkJ
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisJCQltYXJnaW4tdG9wOiA0cHg7CisJCQltYXJnaW4t
Ym90dG9tOiA2cHg7CisJCQlib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7CisJCX0KKworCQkuY29s
bGFwc2VfdG9wOmJlZm9yZSwgLmNvbGxhcHNlX2JvdHRvbTphZnRlciB7CisJCQljb250ZW50OiAi
Q29sbGFwc2UiOworCQl9CisKKwkJLmRpc2NhcmRfdG9wOmJlZm9yZSwgLmRpc2NhcmRfYm90dG9t
OmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJEaXNjYXJkIjsKKwkJfQorCisJCS5zZXBhcmF0ZV90b3A6
YmVmb3JlLCAuc2VwYXJhdGVfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJTZXBhcmF0ZSI7
CisJCX0KKworCQkjYjIgeworCQkJbWFyZ2luLXRvcDogNnB4OworCQkJbWFyZ2luLWJvdHRvbTog
MHB4OworCQl9CisKKwkJI2IzIHsKKwkJCW1hcmdpbi10b3A6IDEwcHg7CisJCQltYXJnaW4tYm90
dG9tOiAwcHg7CisJCX0KKworCQkjYjQgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2lu
LWJvdHRvbTogMHB4OworCQl9CisKKwkJI2I1IHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCW1h
cmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNiNiB7CisJCQltYXJnaW4tdG9wOiA0cHg7CisJ
CQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjYjcgeworCQkJbWFyZ2luLXRvcDogMHB4
OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI2I4IHsKKwkJCW1hcmdpbi10b3A6
IDEwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjYjkgeworCQkJbWFyZ2lu
LXRvcDogMTRweDsKKwkJCW1hcmdpbi1ib3R0b206IDZweDsKKwkJfQorCisJCSNiMTAgeworCQkJ
bWFyZ2luLXRvcDogMHB4OworCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQk8
cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA4MTY4Ij5JbXBsZW1lbnQgdGhlIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRp
ZXMgY29ycmVjdCByZW5kZXJpbmc8L2E+LjwvcD4KKwkJPHA+VGhpcyByZWYgdGVzdCBjb3ZlcnMg
YmFzaWMgY29sbGFwc2luZyBiZWhhdmlvciBiZXR3ZWVuIHNpYmxpbmcgYm94ZXMgd2hlbiB1c2lu
ZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS4gVGhlIGJsb2NrcyBoYXZlIGxyLXRiIHdyaXRpbmcg
bW9kZS48L3A+CisJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisJCQk8ZGl2IGlkPSJiMSIgY2xh
c3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8
ZGl2IGlkPSJiMiIgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxi
ci8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiMyIgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBjb2xs
YXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiNCIgY2xhc3M9ImJsb2NrIGRp
c2NhcmRfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjUiIGNs
YXNzPSJibG9jayBjb2xsYXBzZV90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8
ZGl2IGlkPSJiNiIgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJy
Lz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI3IiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3Agc2VwYXJh
dGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjgiIGNsYXNzPSJibG9jayBjb2xs
YXBzZV90b3Agc2VwYXJhdGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjkiIGNs
YXNzPSJibG9jayBzZXBhcmF0ZV90b3Agc2VwYXJhdGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJ
PGRpdiBpZD0iYjEwIiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3AgY29sbGFwc2VfYm90dG9tIj48
YnIvPjwvZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29s
bGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5n
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFiNmNkODgxMmY4M2MxMzZkNTZhYTZlMGE5NmFjNmI3YjAwZjkx
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xs
YXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLmh0bWwKQEAgLTAsMCArMSw4OCBA
QAorPGh0bWw+CisJPGhlYWQ+CisJCTxzdHlsZT4KKwkJZGl2IHsKKwkJCW1hcmdpbjogMHB4Owor
CQl9CisKKwkJLmNvbnRhaW5lciB7CisJCQlib3JkZXI6IHRoaW4gc29saWQgYmx1ZTsKKwkJCXdp
ZHRoOiAzMDBweDsKKwkJfQorCisJCS5ibG9jayB7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsKKwkJCW1hcmdpbi10b3A6IDRweDsKKwkJCW1hcmdpbi1ib3R0b206IDZweDsKKwkJCWJvcmRl
cjogMXB4IGRhc2hlZCBibGFjazsKKwkJfQorCisJCS5zZWxmX2NvbGxhcHNlIHsKKwkJCW1hcmdp
bi10b3A6IDJweDsKKwkJCW1hcmdpbi1ib3R0b206IDRweDsKKwkJCWhlaWdodDogMHB4OworCQl9
CisKKwkJLmNvbGxhcHNlX3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IGNv
bGxhcHNlOworCQl9CisKKwkJLmNvbGxhcHNlX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdpbi1i
b3R0b20tY29sbGFwc2U6IGNvbGxhcHNlOworCQl9CisKKwkJLmNvbGxhcHNlX3RvcDpiZWZvcmUs
IC5jb2xsYXBzZV9ib3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIkNvbGxhcHNlIjsKKwkJfQor
CisJCS5kaXNjYXJkX3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IGRpc2Nh
cmQ7CisJCX0KKworCQkuZGlzY2FyZF9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9t
LWNvbGxhcHNlOiBkaXNjYXJkOworCQl9CisKKwkJLmRpc2NhcmRfdG9wOmJlZm9yZSwgLmRpc2Nh
cmRfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJEaXNjYXJkIjsKKwkJfQorCisJCS5zZXBh
cmF0ZV90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBzZXBhcmF0ZTsKKwkJ
fQorCisJCS5zZXBhcmF0ZV9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxh
cHNlOiBzZXBhcmF0ZTsKKwkJfQorCisJCS5zZXBhcmF0ZV90b3A6YmVmb3JlLCAuc2VwYXJhdGVf
Ym90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJTZXBhcmF0ZSI7CisJCX0KKwkJPC9zdHlsZT4K
Kwk8L2hlYWQ+CisJPGJvZHk+CisJCTxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNjgiPkltcGxlbWVudCB0aGUgLXdlYmtpdC1t
YXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZzwvYT4uPC9wPgorCQk8
cD5UaGlzIHJlZiB0ZXN0IGNvdmVycyBiYXNpYyBjb2xsYXBzaW5nIGJlaGF2aW9yIGJldHdlZW4g
c2libGluZyBib3hlcyB3aGVuIHVzaW5nIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlLiBUaGUgYmxv
Y2tzIGhhdmUgbHItdGIgd3JpdGluZyBtb2RlLjwvcD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxi
ci8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYg
Y2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJ
CQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2Nr
IHNlcGFyYXRlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNz
PSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9w
IGRpc2NhcmRfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBz
ZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgZGlzY2FyZF9ib3R0
b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJ
CTxkaXYgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48L2Rp
dj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0i
YmxvY2sgZGlzY2FyZF90b3Agc2VwYXJhdGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBj
bGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBz
ZV90b3Agc2VwYXJhdGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9j
b2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3Agc2VwYXJh
dGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9k
aXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxi
ci8+PC9kaXY+CisJCTwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186894</attachid>
            <date>2013-02-06 12:31:35 -0800</date>
            <delta_ts>2013-02-06 12:39:30 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>b108168v2.patch</filename>
            <type>text/plain</type>
            <size>60768</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmY2Q1Yzg5ZjlmYmNj
N2RlZjllNDNlNmMzYTVmMjViZmViNzcwNC4uNGEwNmMxY2M1ZTgyMjQ1ZDhjNDJjOWFkOTI2ZTZh
NWVkMDI4ODJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEzLTAyLTA2ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgLXdl
YmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHBhdGNoIGltcGxl
bWVudHMgdGhlIGNvcnJlY3QgYmVoYXZpb3IgZm9yIHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBz
ZSBwcm9wZXJ0aWVzOgorICAgICAgICAtIGEgdmFsdWUgb2YgImRpc2NhcmQiIG9uIGEgbWFyZ2lu
IHdpbGwgdHJ1bmNhdGUgYWxsIHRoZSBtYXJnaW5zIGNvbGxhcHNpbmcgd2l0aCBpdDsKKyAgICAg
ICAgLSBhIHZhbHVlIG9mICJzZXBhcmF0ZSIgd2lsbCBwcmV2ZW50IHRoZSBtYXJnaW4gdG8gY29s
bGFwc2U7CisgICAgICAgIC0gYSB2YWx1ZSBvZiAiY29sbGFwc2UiIGlzIHRoZSBkZWZhdWx0IGNv
bGxhcHNlIGJlaGF2aW9yLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhd2FyZSBv
ZiBtdWx0aXBsZSB3cml0aW5nLW1vZGVzOgorICAgICAgICAtIGlmIHRoZSB3cml0aW5nIG1vZGUg
b2YgYSBjaGlsZCBpcyBwYXJhbGxlbCB3aXRoIHRoZSB3cml0aW5nIG1vZGUgb2YgdGhlIGNvbnRh
aW5lciBhbmQgaGFzIHRoZSBzYW1lIGRpcmVjdGlvbiwKKyAgICAgICAgdGhlIC13ZWJraXQtbWFy
Z2luLWNvbGxhcHNlIHByb3BlcnRpZXMgb24gdGhlIGNoaWxkIGFyZSBsZWZ0IGFzIGlzOworICAg
ICAgICAtIGlmIHRoZSB3cml0aW5nIG1vZGUgb2YgYSBjaGlsZCBpcyBwYXJhbGxlbCB3aXRoIHRo
ZSB3cml0aW5nIG1vZGUgb2YgdGhlIGNvbnRhaW5lciBidXQgaGFzIGEgZGlmZmVyZW50IGRpcmVj
dGlvbiwKKyAgICAgICAgdGhlIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgb24g
dGhlIGNoaWxkIGFyZSByZXZlcnNlZDsKKyAgICAgICAgLSBpZiB0aGUgd3JpdGluZyBtb2RlIG9m
IGEgY2hpbGQgaXMgcGVycGVuZGljdWxhciBvbiB0aGUgd3JpdGluZyBtb2RlIG9mIHRoZSBjb250
YWluZXIsCisgICAgICAgIHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIG9u
IHRoZSBjaGlsZCBhcmUgaWdub3JlZDsKKworICAgICAgICBJLiBUaGUgImRpc2NhcmQiIHZhbHVl
IGltcGxlbWVudGF0aW9uCisgICAgICAgIFRoZXJlIGFyZSB0d28gbmV3IGJpdHMgKGJlZm9yZSBh
bmQgYWZ0ZXIpIGFkZGVkIG9uIHRoZSBSZW5kZXJCbG9ja1JhcmVEYXRhIHN0cnVjdHVyZSBzcGVj
aWZ5aW5nIGlmIHRoZSBtYXJnaW5zCisgICAgICAgIG9mIHRoZSBibG9jayB3aWxsIGJlIGRpc2Nh
cmRlZCBvciBub3QuIFdlIGNhbid0IHJlbHkgb25seSBvbiB0aGUgdmFsdWUgZnJvbSBzdHlsZSgp
IGJlY2F1c2UKKyAgICAgICAgaXQncyBwb3NzaWJsZSBhIGJsb2NrIHRvIGRpc2NhcmQgaXQncyBt
YXJnaW5zIGJlY2F1c2UgaXQgaGFzIGNvbGxhcHNlZCB3aXRoIGEgY2hpbGRyZW4gdGhhdAorICAg
ICAgICBzcGVjaWZpZWQgImRpc2NhcmQiIGZvciAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS4gSG93
ZXZlciwgdGhlIGJpdHMgYXJlIHNldCBvbmx5IGlmIGl0IGlzCisgICAgICAgIHJlcXVpcmVkLgor
ICAgICAgICBBbm90aGVyIGJpdCBpcyBhZGRlZCBvbiB0aGUgTWFyZ2luSW5mbyBzdHJ1Y3R1cmUg
c3BlY2lmeWluZyBpZiB0aGUgbWFyZ2luIGhhcyB0byBiZSBkaXNjYXJkZWQgb3Igbm90LiBXaGVu
CisgICAgICAgIGNvbGxhcHNpbmcgYXQgdGhlIGJlZm9yZSBzaWRlIG9mIGEgYmxvY2sgaXQgd2ls
bCBob2xkIGluZm9ybWF0aW9uIGlmIHRoZSBjb250YWluZXIgYmxvY2sgbmVlZHMgdG8gZGlzY2Fy
ZAorICAgICAgICBvciBub3QuIElmIHRoZSBjb2xsYXBzaW5nIGhhcHBlbnMgYmV0d2VlbiBzaWJs
aW5ncy93aXRoIGFmdGVyIHNpZGUgb2YgdGhlIGNvbnRhaW5lciBpdCB3aWxsIHRlbGwgaWYgdGhl
IHByZXZpb3VzCisgICAgICAgIGNoaWxkIGRpc2NhcmRzIHRoZSBtYXJnaW4gb3Igbm90LiBUaGUg
c2VsZiBjb2xsYXBzaW5nIGJsb2NrcyBhcmUgYSBzcGVjaWFsIGNhc2UuIElmIGFueSBvZiBpdHMg
bWFyZ2lucworICAgICAgICBkaXNjYXJkcyB0aGVuIGJvdGggaXRzIG1hcmdpbnMgZGlzY2FyZCBh
bmQgYWxsIHRoZSBvdGhlciBtYXJnaW5zIGNvbGxhcHNpbmcgd2l0aCBpdC4KKyAgICAgICAgVG8g
ZW5zdXJlIGFuIG9wdGltYWwgYmVoYXZpb3IgaXQgaXMgYXNzZXJ0ZWQgbWFyZ2luIHZhbHVlcyBj
YW4ndCBiZSBzZXQgb24gdGhlIE1hcmdpbkluZm8gb2JqZWN0IGlmIHRoZQorICAgICAgICBkaXNj
YXJkIGZsYWcgaXMgYWN0aXZlLiBJZiB0aGlzIGhhcHBlbnMgaXQgbWF5IGluZGljYXRlIHNvbWVv
bmUgaWdub3JlZCB0aGUgcG9zc2liaWxpdHkgb2YgdGhlIG1hcmdpbiBiZWluZworICAgICAgICBk
aXNjYXJkZWQgYWx0b2dldGhlciBhbmQgaW5jb3JyZWN0bHkgdXBkYXRlZCB0aGUgbWFyZ2luIHZh
bHVlcy4KKyAgICAgICAgRmxvYXQgY2xlYXJpbmcgYWxzbyBuZWVkcyB0byBjaGFuZ2UgYmVjYXVz
ZSBpdCBtYXkgZm9yY2UgbWFyZ2lucyB0byBzdG9wIGNvbGxhcHNpbmcuIElmIHRoaXMgaGFwcGVu
cyB0aGUgZGlzY2FyZAorICAgICAgICBmbGFncyBhbmQgbWFyZ2lucyBuZWVkcyB0byBiZSByZXN0
b3JlZCB0byB0aGVpciB2YWx1ZXMgYmVmb3JlIHRoZSBjb2xsYXBzZS4KKworICAgICAgICBJSS4g
VGhlICJzZXBhcmF0ZSIgdmFsdWUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgVGhlIGltcGxlbWVu
dGF0aW9uIGZvciBzZXBhcmF0ZSB3YXMgbm90IGNoYW5nZWQgdG9vIG11Y2guIEkndmUgYWRkZWQg
bmV3IGFjY2Vzc29yIG1ldGhvZHMgZm9yIHRoZSBwcm9wZXJ0eQorICAgICAgICB0aGF0IHRha2Ug
d3JpdGluZyBtb2RlIGludG8gY29uc2lkZXJhdGlvbiBhbmQgSSd2ZSByZW1vdmVkIHNvbWUgY29k
ZSB0aGF0IGRpZG4ndCB3b3JrIGNvcnJlY3RseSBpbiBsYXlvdXRCbG9ja0NoaWxkLgorICAgICAg
ICBUaGUgcHJvYmxlbSB3YXMgdGhlIG1hcmdpbkluZm8gc3RydWN0dXJlIHdhcyBjbGVhcmVkIGlm
IHRoZSBjaGlsZCB3YXMgc3BlY2lmeWluZyB0aGUgInNlcGFyYXRlIiB2YWx1ZSBmb3IgYmVmb3Jl
LgorICAgICAgICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgeW91IGxvc2UgdGhlIG1hcmdpbiBpbmZv
cm1hdGlvbiBvZiB0aGUgcHJldmlvdXMgY2hpbGQvYmVmb3JlIHNpZGUuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29u
dGFpbmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dl
YmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvYmxv
Y2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdp
bi1jb2xsYXBzZS1zaWJsaW5ncy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1hcmdpbkluZm86Ok1hcmdp
bkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNsZWFyRmxvYXRzSWZOZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUVzdGltYXRlRm9yQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmVzdGltYXRlTG9naWNhbFRvcFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzZXRDb2xsYXBzZWRCb3R0b21NYXJnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmhhbmRsZUFmdGVyU2lkZU9mQmxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE11c3REaXNjYXJkTWFyZ2luQmVmb3JlKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE11c3RE
aXNjYXJkTWFyZ2luQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Om11c3RE
aXNjYXJkTWFyZ2luQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0
RGlzY2FyZE1hcmdpbkFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0
RGlzY2FyZE1hcmdpbkJlZm9yZUZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjptdXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6Om11c3RTZXBhcmF0ZU1hcmdpbkJlZm9yZUZvckNoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0U2VwYXJhdGVNYXJnaW5BZnRlckZvckNoaWxkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFJlbmRlckJsb2Nr
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbml0TWF4TWFyZ2luVmFsdWVzKToK
KyAgICAgICAgKE1hcmdpbkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1h
cmdpbkluZm86OnNldFBvc2l0aXZlTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpNYXJnaW5JbmZvOjpzZXROZWdhdGl2ZU1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0UG9zaXRpdmVNYXJnaW5JZkxhcmdlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0TmVnYXRpdmVNYXJnaW5J
Zkxhcmdlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0
TWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpzZXRD
YW5Db2xsYXBzZU1hcmdpbkFmdGVyV2l0aENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpNYXJnaW5JbmZvOjpzZXREaXNjYXJkTWFyZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpkaXNjYXJkTWFyZ2luKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRhOjpSZW5kZXJCbG9ja1JhcmVE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRh
Ojpwb3NpdGl2ZU1hcmdpbkJlZm9yZURlZmF1bHQpOgorICAgICAgICAoUmVuZGVyQmxvY2tSYXJl
RGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKIDIwMTMt
MDItMDYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGlt
aXplIEdseXBoUGFnZSBmb3IgY2FzZSB3aGVyZSBhbGwgZ2x5cGhzIGFyZSBhdmFpbGFibGUgaW4g
dGhlIHNhbWUgZm9udC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmlu
ZGV4IDVhNGE4M2Q5NTk0MjU3MzRiMjY2MTQ0NzRlM2RjZDc2ZTBkMDQ3YjEuLjlkNzBmMTBkOTlk
OTQ4ZWVlMzMwYjllNzdjY2M3YjQyMTczZGIzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcApAQCAtMTY5LDYgKzE2OSw3IEBAIFJlbmRlckJsb2NrOjpNYXJnaW5J
bmZvOjpNYXJnaW5JbmZvKFJlbmRlckJsb2NrKiBibG9jaywgTGF5b3V0VW5pdCBiZWZvcmVCb3Jk
ZXJQCiAgICAgLCBtX21hcmdpbkJlZm9yZVF1aXJrKGZhbHNlKQogICAgICwgbV9tYXJnaW5BZnRl
clF1aXJrKGZhbHNlKQogICAgICwgbV9kZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsoZmFsc2Up
CisgICAgLCBtX2Rpc2NhcmRNYXJnaW4oZmFsc2UpCiB7CiAgICAgUmVuZGVyU3R5bGUqIGJsb2Nr
U3R5bGUgPSBibG9jay0+c3R5bGUoKTsKICAgICBBU1NFUlQoYmxvY2stPmlzUmVuZGVyVmlldygp
IHx8IGJsb2NrLT5wYXJlbnQoKSk7CkBAIC0xODYsMTEgKzE4NywxMiBAQCBSZW5kZXJCbG9jazo6
TWFyZ2luSW5mbzo6TWFyZ2luSW5mbyhSZW5kZXJCbG9jayogYmxvY2ssIExheW91dFVuaXQgYmVm
b3JlQm9yZGVyUAogICAgIG1fY2FuQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhDaGlsZHJlbiA9IG1f
Y2FuQ29sbGFwc2VXaXRoQ2hpbGRyZW4gJiYgKGFmdGVyQm9yZGVyUGFkZGluZyA9PSAwKSAmJgog
ICAgICAgICAoYmxvY2tTdHlsZS0+bG9naWNhbEhlaWdodCgpLmlzQXV0bygpICYmICFibG9ja1N0
eWxlLT5sb2dpY2FsSGVpZ2h0KCkudmFsdWUoKSkgJiYgYmxvY2tTdHlsZS0+bWFyZ2luQWZ0ZXJD
b2xsYXBzZSgpICE9IE1TRVBBUkFURTsKICAgICAKLSAgICBtX3F1aXJrQ29udGFpbmVyID0gYmxv
Y2stPmlzVGFibGVDZWxsKCkgfHwgYmxvY2stPmlzQm9keSgpIHx8IGJsb2NrU3R5bGUtPm1hcmdp
bkJlZm9yZUNvbGxhcHNlKCkgPT0gTURJU0NBUkQKLSAgICAgICAgfHwgYmxvY2tTdHlsZS0+bWFy
Z2luQWZ0ZXJDb2xsYXBzZSgpID09IE1ESVNDQVJEOworICAgIG1fcXVpcmtDb250YWluZXIgPSBi
bG9jay0+aXNUYWJsZUNlbGwoKSB8fCBibG9jay0+aXNCb2R5KCk7CiAKLSAgICBtX3Bvc2l0aXZl
TWFyZ2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiA/IGJsb2NrLT5t
YXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpIDogTGF5b3V0VW5pdCgpOwotICAgIG1fbmVnYXRpdmVN
YXJnaW4gPSBtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aENoaWxkcmVuID8gYmxvY2stPm1h
eE5lZ2F0aXZlTWFyZ2luQmVmb3JlKCkgOiBMYXlvdXRVbml0KCk7CisgICAgbV9kaXNjYXJkTWFy
Z2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiAmJiBibG9jay0+bXVz
dERpc2NhcmRNYXJnaW5CZWZvcmUoKTsKKworICAgIG1fcG9zaXRpdmVNYXJnaW4gPSAobV9jYW5D
b2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiAmJiAhYmxvY2stPm11c3REaXNjYXJkTWFy
Z2luQmVmb3JlKCkpID8gYmxvY2stPm1heFBvc2l0aXZlTWFyZ2luQmVmb3JlKCkgOiBMYXlvdXRV
bml0KCk7CisgICAgbV9uZWdhdGl2ZU1hcmdpbiA9IChtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3Jl
V2l0aENoaWxkcmVuICYmICFibG9jay0+bXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKSkgPyBibG9j
ay0+bWF4TmVnYXRpdmVNYXJnaW5CZWZvcmUoKSA6IExheW91dFVuaXQoKTsKIH0KIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTUyNiw4ICsx
NTI4LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxk
cmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gKICAgICBpZiAoIWlzQ2VsbCkgewogICAg
ICAgICBpbml0TWF4TWFyZ2luVmFsdWVzKCk7CiAgICAgICAgIAotICAgICAgICBzZXRNYXJnaW5C
ZWZvcmVRdWlyayhzdHlsZVRvVXNlLT5tYXJnaW5CZWZvcmUoKS5xdWlyaygpKTsKLSAgICAgICAg
c2V0TWFyZ2luQWZ0ZXJRdWlyayhzdHlsZVRvVXNlLT5tYXJnaW5BZnRlcigpLnF1aXJrKCkpOwor
ICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayhzdHlsZVRvVXNlLT5pc01hcmdpbkJlZm9yZVF1
aXJrKCkpOworICAgICAgICBzZXRNYXJnaW5BZnRlclF1aXJrKHN0eWxlVG9Vc2UtPmlzTWFyZ2lu
QWZ0ZXJRdWlyaygpKTsKICAgICAgICAgc2V0UGFnaW5hdGlvblN0cnV0KDApOwogICAgIH0KIApA
QCAtMTk1Nyw2ICsxOTU5LDEzIEBAIHZvaWQgUmVuZGVyQmxvY2s6Om1vdmVSdW5JblRvT3JpZ2lu
YWxQb3NpdGlvbihSZW5kZXJPYmplY3QqIHJ1bkluKQogCiBMYXlvdXRVbml0IFJlbmRlckJsb2Nr
Ojpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5m
bykKIHsKKyAgICBib29sIGNoaWxkRGlzY2FyZE1hcmdpbkJlZm9yZSA9IG11c3REaXNjYXJkTWFy
Z2luQmVmb3JlRm9yQ2hpbGQoY2hpbGQpOworICAgIGJvb2wgY2hpbGREaXNjYXJkTWFyZ2luQWZ0
ZXIgPSBtdXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQoY2hpbGQpOworICAgIGJvb2wgY2hp
bGRJc1NlbGZDb2xsYXBzaW5nID0gY2hpbGQtPmlzU2VsZkNvbGxhcHNpbmdCbG9jaygpOworCisg
ICAgLy8gVGhlIGNoaWxkIGRpc2NhcmRzIHRoZSBiZWZvcmUgbWFyZ2luIHdoZW4gdGhlIHRoZSBh
ZnRlciBtYXJnaW4gaGFzIGRpc2NhcmQgaW4gdGhlIGNhc2Ugb2YgYSBzZWxmIGNvbGxhcHNpbmcg
YmxvY2suCisgICAgY2hpbGREaXNjYXJkTWFyZ2luQmVmb3JlID0gY2hpbGREaXNjYXJkTWFyZ2lu
QmVmb3JlIHx8IChjaGlsZERpc2NhcmRNYXJnaW5BZnRlciAmJiBjaGlsZElzU2VsZkNvbGxhcHNp
bmcpOworCiAgICAgLy8gR2V0IHRoZSBmb3VyIG1hcmdpbiB2YWx1ZXMgZm9yIHRoZSBjaGlsZCBh
bmQgY2FjaGUgdGhlbS4KICAgICBjb25zdCBNYXJnaW5WYWx1ZXMgY2hpbGRNYXJnaW5zID0gbWFy
Z2luVmFsdWVzRm9yQ2hpbGQoY2hpbGQpOwogCkBAIC0xOTY2LDM4ICsxOTc1LDQ4IEBAIExheW91
dFVuaXQgUmVuZGVyQmxvY2s6OmNvbGxhcHNlTWFyZ2lucyhSZW5kZXJCb3gqIGNoaWxkLCBNYXJn
aW5JbmZvJiBtYXJnaW5JbmZvCiAKICAgICAvLyBGb3Igc2VsZi1jb2xsYXBzaW5nIGJsb2Nrcywg
Y29sbGFwc2Ugb3VyIGJvdHRvbSBtYXJnaW5zIGludG8gb3VyCiAgICAgLy8gdG9wIHRvIGdldCBu
ZXcgcG9zVG9wIGFuZCBuZWdUb3AgdmFsdWVzLgotICAgIGlmIChjaGlsZC0+aXNTZWxmQ29sbGFw
c2luZ0Jsb2NrKCkpIHsKKyAgICBpZiAoY2hpbGRJc1NlbGZDb2xsYXBzaW5nKSB7CiAgICAgICAg
IHBvc1RvcCA9IG1heChwb3NUb3AsIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkFmdGVyKCkp
OwogICAgICAgICBuZWdUb3AgPSBtYXgobmVnVG9wLCBjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJn
aW5BZnRlcigpKTsKICAgICB9CiAgICAgCiAgICAgLy8gU2VlIGlmIHRoZSB0b3AgbWFyZ2luIGlz
IHF1aXJreS4gV2Ugb25seSBjYXJlIGlmIHRoaXMgY2hpbGQgaGFzCiAgICAgLy8gbWFyZ2lucyB0
aGF0IHdpbGwgY29sbGFwc2Ugd2l0aCB1cy4KLSAgICBib29sIHRvcFF1aXJrID0gY2hpbGQtPmlz
TWFyZ2luQmVmb3JlUXVpcmsoKSB8fCBzdHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09
IE1ESVNDQVJEOworICAgIGJvb2wgdG9wUXVpcmsgPSBjaGlsZC0+aXNNYXJnaW5CZWZvcmVRdWly
aygpOwogCiAgICAgaWYgKG1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVmb3JlKCkp
IHsKLSAgICAgICAgLy8gVGhpcyBjaGlsZCBpcyBjb2xsYXBzaW5nIHdpdGggdGhlIHRvcCBvZiB0
aGUKLSAgICAgICAgLy8gYmxvY2suICBJZiBpdCBoYXMgbGFyZ2VyIG1hcmdpbiB2YWx1ZXMsIHRo
ZW4gd2UgbmVlZCB0byB1cGRhdGUKLSAgICAgICAgLy8gb3VyIG93biBtYXhpbWFsIHZhbHVlcy4K
LSAgICAgICAgaWYgKCFkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSB8fCAhbWFyZ2luSW5mby5x
dWlya0NvbnRhaW5lcigpIHx8ICF0b3BRdWlyaykKLSAgICAgICAgICAgIHNldE1heE1hcmdpbkJl
Zm9yZVZhbHVlcyhtYXgocG9zVG9wLCBtYXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpKSwgbWF4KG5l
Z1RvcCwgbWF4TmVnYXRpdmVNYXJnaW5CZWZvcmUoKSkpOwotCi0gICAgICAgIC8vIFRoZSBtaW51
dGUgYW55IG9mIHRoZSBtYXJnaW5zIGludm9sdmVkIGlzbid0IGEgcXVpcmssIGRvbid0Ci0gICAg
ICAgIC8vIGNvbGxhcHNlIGl0IGF3YXksIGV2ZW4gaWYgdGhlIG1hcmdpbiBpcyBzbWFsbGVyICh3
d3cud2VicmVmZXJlbmNlLmNvbQotICAgICAgICAvLyBoYXMgYW4gZXhhbXBsZSBvZiB0aGlzLCBh
IDxkdD4gd2l0aCAwLjhlbSBhdXRob3Itc3BlY2lmaWVkIGluc2lkZQotICAgICAgICAvLyBhIDxk
bD4gaW5zaWRlIGEgPHRkPi4KLSAgICAgICAgaWYgKCFtYXJnaW5JbmZvLmRldGVybWluZWRNYXJn
aW5CZWZvcmVRdWlyaygpICYmICF0b3BRdWlyayAmJiAocG9zVG9wIC0gbmVnVG9wKSkgewotICAg
ICAgICAgICAgc2V0TWFyZ2luQmVmb3JlUXVpcmsoZmFsc2UpOwotICAgICAgICAgICAgbWFyZ2lu
SW5mby5zZXREZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsodHJ1ZSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKCkgJiYg
dG9wUXVpcmsgJiYgIW1hcmdpbkJlZm9yZSgpKQotICAgICAgICAgICAgLy8gV2UgaGF2ZSBubyB0
b3AgbWFyZ2luIGFuZCBvdXIgdG9wIGNoaWxkIGhhcyBhIHF1aXJreSBtYXJnaW4uCi0gICAgICAg
ICAgICAvLyBXZSB3aWxsIHBpY2sgdXAgdGhpcyBxdWlya3kgbWFyZ2luIGFuZCBwYXNzIGl0IHRo
cm91Z2guCi0gICAgICAgICAgICAvLyBUaGlzIGRlYWxzIHdpdGggdGhlIDx0ZD48ZGl2PjxwPiBj
YXNlLgotICAgICAgICAgICAgLy8gRG9uJ3QgZG8gdGhpcyBmb3IgYSBibG9jayB0aGF0IHNwbGl0
IHR3byBpbmxpbmVzIHRob3VnaC4gIFlvdSBkbwotICAgICAgICAgICAgLy8gc3RpbGwgYXBwbHkg
bWFyZ2lucyBpbiB0aGlzIGNhc2UuCi0gICAgICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayh0
cnVlKTsKKyAgICAgICAgaWYgKCFjaGlsZERpc2NhcmRNYXJnaW5CZWZvcmUgJiYgIW1hcmdpbklu
Zm8uZGlzY2FyZE1hcmdpbigpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGNoaWxkIGlzIGNvbGxh
cHNpbmcgd2l0aCB0aGUgdG9wIG9mIHRoZQorICAgICAgICAgICAgLy8gYmxvY2suIElmIGl0IGhh
cyBsYXJnZXIgbWFyZ2luIHZhbHVlcywgdGhlbiB3ZSBuZWVkIHRvIHVwZGF0ZQorICAgICAgICAg
ICAgLy8gb3VyIG93biBtYXhpbWFsIHZhbHVlcy4KKyAgICAgICAgICAgIGlmICghZG9jdW1lbnQo
KS0+aW5RdWlya3NNb2RlKCkgfHwgIW1hcmdpbkluZm8ucXVpcmtDb250YWluZXIoKSB8fCAhdG9w
UXVpcmspCisgICAgICAgICAgICAgICAgc2V0TWF4TWFyZ2luQmVmb3JlVmFsdWVzKG1heChwb3NU
b3AsIG1heFBvc2l0aXZlTWFyZ2luQmVmb3JlKCkpLCBtYXgobmVnVG9wLCBtYXhOZWdhdGl2ZU1h
cmdpbkJlZm9yZSgpKSk7CisKKyAgICAgICAgICAgIC8vIFRoZSBtaW51dGUgYW55IG9mIHRoZSBt
YXJnaW5zIGludm9sdmVkIGlzbid0IGEgcXVpcmssIGRvbid0CisgICAgICAgICAgICAvLyBjb2xs
YXBzZSBpdCBhd2F5LCBldmVuIGlmIHRoZSBtYXJnaW4gaXMgc21hbGxlciAod3d3LndlYnJlZmVy
ZW5jZS5jb20KKyAgICAgICAgICAgIC8vIGhhcyBhbiBleGFtcGxlIG9mIHRoaXMsIGEgPGR0PiB3
aXRoIDAuOGVtIGF1dGhvci1zcGVjaWZpZWQgaW5zaWRlCisgICAgICAgICAgICAvLyBhIDxkbD4g
aW5zaWRlIGEgPHRkPi4KKyAgICAgICAgICAgIGlmICghbWFyZ2luSW5mby5kZXRlcm1pbmVkTWFy
Z2luQmVmb3JlUXVpcmsoKSAmJiAhdG9wUXVpcmsgJiYgKHBvc1RvcCAtIG5lZ1RvcCkpIHsKKyAg
ICAgICAgICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayhmYWxzZSk7CisgICAgICAgICAgICAg
ICAgbWFyZ2luSW5mby5zZXREZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsodHJ1ZSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghbWFyZ2luSW5mby5kZXRlcm1pbmVkTWFyZ2lu
QmVmb3JlUXVpcmsoKSAmJiB0b3BRdWlyayAmJiAhbWFyZ2luQmVmb3JlKCkpCisgICAgICAgICAg
ICAgICAgLy8gV2UgaGF2ZSBubyB0b3AgbWFyZ2luIGFuZCBvdXIgdG9wIGNoaWxkIGhhcyBhIHF1
aXJreSBtYXJnaW4uCisgICAgICAgICAgICAgICAgLy8gV2Ugd2lsbCBwaWNrIHVwIHRoaXMgcXVp
cmt5IG1hcmdpbiBhbmQgcGFzcyBpdCB0aHJvdWdoLgorICAgICAgICAgICAgICAgIC8vIFRoaXMg
ZGVhbHMgd2l0aCB0aGUgPHRkPjxkaXY+PHA+IGNhc2UuCisgICAgICAgICAgICAgICAgLy8gRG9u
J3QgZG8gdGhpcyBmb3IgYSBibG9jayB0aGF0IHNwbGl0IHR3byBpbmxpbmVzIHRob3VnaC4gWW91
IGRvCisgICAgICAgICAgICAgICAgLy8gc3RpbGwgYXBwbHkgbWFyZ2lucyBpbiB0aGlzIGNhc2Uu
CisgICAgICAgICAgICAgICAgc2V0TWFyZ2luQmVmb3JlUXVpcmsodHJ1ZSk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgLy8gVGhlIGJlZm9yZSBtYXJnaW4gb2YgdGhlIGNvbnRhaW5lciB3
aWxsIGFsc28gZGlzY2FyZCBhbGwgdGhlIG1hcmdpbnMgaXQgaXMgY29sbGFwc2luZyB3aXRoLgor
ICAgICAgICAgICAgc2V0TXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKTsKKyAgICB9CisKKyAgICAv
LyBPbmNlIHdlIGZpbmQgYSBjaGlsZCB3aXRoIGRpc2NhcmRNYXJnaW5CZWZvcmUgYWxsIHRoZSBt
YXJnaW5zIGNvbGxhcHNpbmcgd2l0aCB1cyBtdXN0IGFsc28gZGlzY2FyZC4gCisgICAgaWYgKGNo
aWxkRGlzY2FyZE1hcmdpbkJlZm9yZSkgeworICAgICAgICBtYXJnaW5JbmZvLnNldERpc2NhcmRN
YXJnaW4odHJ1ZSk7CisgICAgICAgIG1hcmdpbkluZm8uY2xlYXJNYXJnaW4oKTsKICAgICB9CiAK
ICAgICBpZiAobWFyZ2luSW5mby5xdWlya0NvbnRhaW5lcigpICYmIG1hcmdpbkluZm8uYXRCZWZv
cmVTaWRlT2ZCbG9jaygpICYmIChwb3NUb3AgLSBuZWdUb3ApKQpAQCAtMjAwNSw0NSArMjAyNCw1
MyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQm94KiBj
aGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbwogCiAgICAgTGF5b3V0VW5pdCBiZWZvcmVDb2xs
YXBzZUxvZ2ljYWxUb3AgPSBsb2dpY2FsSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2Fs
VG9wID0gYmVmb3JlQ29sbGFwc2VMb2dpY2FsVG9wOwotICAgIGlmIChjaGlsZC0+aXNTZWxmQ29s
bGFwc2luZ0Jsb2NrKCkpIHsKLSAgICAgICAgLy8gVGhpcyBjaGlsZCBoYXMgbm8gaGVpZ2h0LiAg
V2UgbmVlZCB0byBjb21wdXRlIG91cgotICAgICAgICAvLyBwb3NpdGlvbiBiZWZvcmUgd2UgY29s
bGFwc2UgdGhlIGNoaWxkJ3MgbWFyZ2lucyB0b2dldGhlciwKLSAgICAgICAgLy8gc28gdGhhdCB3
ZSBjYW4gZ2V0IGFuIGFjY3VyYXRlIHBvc2l0aW9uIGZvciB0aGUgemVyby1oZWlnaHQgYmxvY2su
Ci0gICAgICAgIExheW91dFVuaXQgY29sbGFwc2VkQmVmb3JlUG9zID0gbWF4KG1hcmdpbkluZm8u
cG9zaXRpdmVNYXJnaW4oKSwgY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQmVmb3JlKCkpOwot
ICAgICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZU5lZyA9IG1heChtYXJnaW5JbmZvLm5l
Z2F0aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkJlZm9yZSgpKTsKLSAg
ICAgICAgbWFyZ2luSW5mby5zZXRNYXJnaW4oY29sbGFwc2VkQmVmb3JlUG9zLCBjb2xsYXBzZWRC
ZWZvcmVOZWcpOwotICAgICAgICAKLSAgICAgICAgLy8gTm93IGNvbGxhcHNlIHRoZSBjaGlsZCdz
IG1hcmdpbnMgdG9nZXRoZXIsIHdoaWNoIG1lYW5zIGV4YW1pbmluZyBvdXIKLSAgICAgICAgLy8g
Ym90dG9tIG1hcmdpbiB2YWx1ZXMgYXMgd2VsbC4gCi0gICAgICAgIG1hcmdpbkluZm8uc2V0UG9z
aXRpdmVNYXJnaW5JZkxhcmdlcihjaGlsZE1hcmdpbnMucG9zaXRpdmVNYXJnaW5BZnRlcigpKTsK
LSAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdpbklmTGFyZ2VyKGNoaWxkTWFyZ2lu
cy5uZWdhdGl2ZU1hcmdpbkFmdGVyKCkpOwotCi0gICAgICAgIGlmICghbWFyZ2luSW5mby5jYW5D
b2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSkKLSAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gbWFr
ZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWxmLWNvbGxhcHNpbmcgYmxvY2sKLSAg
ICAgICAgICAgIC8vIGlzIGNvcnJlY3QsIHNpbmNlIGl0IGNvdWxkIGhhdmUgb3ZlcmZsb3dpbmcg
Y29udGVudAotICAgICAgICAgICAgLy8gdGhhdCBuZWVkcyB0byBiZSBwb3NpdGlvbmVkIGNvcnJl
Y3RseSAoZS5nLiwgYSBibG9jayB0aGF0Ci0gICAgICAgICAgICAvLyBoYWQgYSBzcGVjaWZpZWQg
aGVpZ2h0IG9mIDAgYnV0IHRoYXQgYWN0dWFsbHkgaGFkIHN1YmNvbnRlbnQpLgotICAgICAgICAg
ICAgbG9naWNhbFRvcCA9IGxvZ2ljYWxIZWlnaHQoKSArIGNvbGxhcHNlZEJlZm9yZVBvcyAtIGNv
bGxhcHNlZEJlZm9yZU5lZzsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChjaGlsZC0+
c3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNU0VQQVJBVEUpIHsKKyAgICBpZiAo
Y2hpbGRJc1NlbGZDb2xsYXBzaW5nKSB7CisgICAgICAgIC8vIEZvciBhIHNlbGYgY29sbGFwc2lu
ZyBibG9jayBib3RoIHRoZSBiZWZvcmUgYW5kIGFmdGVyIG1hcmdpbnMgZ2V0IGRpc2NhcmRlZC4g
VGhlIGJsb2NrIGRvZXNuJ3QgY29udHJpYnV0ZSBhbnl0aGluZyB0byB0aGUgaGVpZ2h0IG9mIHRo
ZSBibG9jay4KKyAgICAgICAgLy8gQWxzbywgdGhlIGNoaWxkJ3MgdG9wIHBvc2l0aW9uIGVxdWFs
cyB0aGUgbG9naWNhbCBoZWlnaHQgb2YgdGhlIGNvbnRhaW5lci4KKyAgICAgICAgaWYgKCFjaGls
ZERpc2NhcmRNYXJnaW5CZWZvcmUgJiYgIW1hcmdpbkluZm8uZGlzY2FyZE1hcmdpbigpKSB7Cisg
ICAgICAgICAgICAvLyBUaGlzIGNoaWxkIGhhcyBubyBoZWlnaHQuIFdlIG5lZWQgdG8gY29tcHV0
ZSBvdXIKKyAgICAgICAgICAgIC8vIHBvc2l0aW9uIGJlZm9yZSB3ZSBjb2xsYXBzZSB0aGUgY2hp
bGQncyBtYXJnaW5zIHRvZ2V0aGVyLAorICAgICAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gZ2V0
IGFuIGFjY3VyYXRlIHBvc2l0aW9uIGZvciB0aGUgemVyby1oZWlnaHQgYmxvY2suCisgICAgICAg
ICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZVBvcyA9IG1heChtYXJnaW5JbmZvLnBvc2l0
aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkJlZm9yZSgpKTsKKyAgICAg
ICAgICAgIExheW91dFVuaXQgY29sbGFwc2VkQmVmb3JlTmVnID0gbWF4KG1hcmdpbkluZm8ubmVn
YXRpdmVNYXJnaW4oKSwgY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQmVmb3JlKCkpOworICAg
ICAgICAgICAgbWFyZ2luSW5mby5zZXRNYXJnaW4oY29sbGFwc2VkQmVmb3JlUG9zLCBjb2xsYXBz
ZWRCZWZvcmVOZWcpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3cgY29sbGFwc2Ug
dGhlIGNoaWxkJ3MgbWFyZ2lucyB0b2dldGhlciwgd2hpY2ggbWVhbnMgZXhhbWluaW5nIG91cgor
ICAgICAgICAgICAgLy8gYm90dG9tIG1hcmdpbiB2YWx1ZXMgYXMgd2VsbC4gCisgICAgICAgICAg
ICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luSWZMYXJnZXIoY2hpbGRNYXJnaW5zLnBvc2l0
aXZlTWFyZ2luQWZ0ZXIoKSk7CisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldE5lZ2F0aXZlTWFy
Z2luSWZMYXJnZXIoY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQWZ0ZXIoKSk7CisKKyAgICAg
ICAgICAgIGlmICghbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSkKKyAg
ICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwb3NpdGlvbiBv
ZiB0aGUgc2VsZi1jb2xsYXBzaW5nIGJsb2NrCisgICAgICAgICAgICAgICAgLy8gaXMgY29ycmVj
dCwgc2luY2UgaXQgY291bGQgaGF2ZSBvdmVyZmxvd2luZyBjb250ZW50CisgICAgICAgICAgICAg
ICAgLy8gdGhhdCBuZWVkcyB0byBiZSBwb3NpdGlvbmVkIGNvcnJlY3RseSAoZS5nLiwgYSBibG9j
ayB0aGF0CisgICAgICAgICAgICAgICAgLy8gaGFkIGEgc3BlY2lmaWVkIGhlaWdodCBvZiAwIGJ1
dCB0aGF0IGFjdHVhbGx5IGhhZCBzdWJjb250ZW50KS4KKyAgICAgICAgICAgICAgICBsb2dpY2Fs
VG9wID0gbG9naWNhbEhlaWdodCgpICsgY29sbGFwc2VkQmVmb3JlUG9zIC0gY29sbGFwc2VkQmVm
b3JlTmVnOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG11c3RTZXBhcmF0
ZU1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkKSkgeworICAgICAgICAgICAgQVNTRVJUKCFtYXJn
aW5JbmZvLmRpc2NhcmRNYXJnaW4oKSB8fCAobWFyZ2luSW5mby5kaXNjYXJkTWFyZ2luKCkgJiYg
IW1hcmdpbkluZm8ubWFyZ2luKCkpKTsKICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9n
aWNhbEhlaWdodCgpICsgbWFyZ2luSW5mby5tYXJnaW4oKSArIG1hcmdpbkJlZm9yZUZvckNoaWxk
KGNoaWxkKSk7CiAgICAgICAgICAgICBsb2dpY2FsVG9wID0gbG9naWNhbEhlaWdodCgpOwotICAg
ICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKCFtYXJnaW5JbmZvLmF0QmVmb3JlU2lkZU9mQmxvY2so
KSB8fAotICAgICAgICAgICAgKCFtYXJnaW5JbmZvLmNhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0
aENoaWxkcmVuKCkKLSAgICAgICAgICAgICAmJiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgp
IHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQmVm
b3JlUXVpcmsoKSkpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoIW1hcmdpbkluZm8uZGlzY2FyZE1h
cmdpbigpICYmICghbWFyZ2luSW5mby5hdEJlZm9yZVNpZGVPZkJsb2NrKCkKKyAgICAgICAgICAg
IHx8ICghbWFyZ2luSW5mby5jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbigpCisg
ICAgICAgICAgICAmJiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZv
LnF1aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQmVmb3JlUXVpcmsoKSkpKSkg
ewogICAgICAgICAgICAgLy8gV2UncmUgY29sbGFwc2luZyB3aXRoIGEgcHJldmlvdXMgc2libGlu
ZydzIG1hcmdpbnMgYW5kIG5vdAogICAgICAgICAgICAgLy8gd2l0aCB0aGUgdG9wIG9mIHRoZSBi
bG9jay4KICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbWF4
KG1hcmdpbkluZm8ucG9zaXRpdmVNYXJnaW4oKSwgcG9zVG9wKSAtIG1heChtYXJnaW5JbmZvLm5l
Z2F0aXZlTWFyZ2luKCksIG5lZ1RvcCkpOwogICAgICAgICAgICAgbG9naWNhbFRvcCA9IGxvZ2lj
YWxIZWlnaHQoKTsKICAgICAgICAgfQogCi0gICAgICAgIG1hcmdpbkluZm8uc2V0UG9zaXRpdmVN
YXJnaW4oY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSk7Ci0gICAgICAgIG1hcmdp
bkluZm8uc2V0TmVnYXRpdmVNYXJnaW4oY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQWZ0ZXIo
KSk7CisgICAgICAgIG1hcmdpbkluZm8uc2V0RGlzY2FyZE1hcmdpbihjaGlsZERpc2NhcmRNYXJn
aW5BZnRlcik7CisgICAgICAgIAorICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGlzY2FyZE1hcmdp
bigpKSB7CisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luKGNoaWxkTWFy
Z2lucy5wb3NpdGl2ZU1hcmdpbkFmdGVyKCkpOworICAgICAgICAgICAgbWFyZ2luSW5mby5zZXRO
ZWdhdGl2ZU1hcmdpbihjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJnaW5BZnRlcigpKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2luKCk7CiAKICAgICAg
ICAgaWYgKG1hcmdpbkluZm8ubWFyZ2luKCkpCi0gICAgICAgICAgICBtYXJnaW5JbmZvLnNldE1h
cmdpbkFmdGVyUXVpcmsoY2hpbGQtPmlzTWFyZ2luQWZ0ZXJRdWlyaygpIHx8IHN0eWxlKCktPm1h
cmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7CisgICAgICAgICAgICBtYXJnaW5JbmZv
LnNldE1hcmdpbkFmdGVyUXVpcmsoY2hpbGQtPmlzTWFyZ2luQWZ0ZXJRdWlyaygpKTsKICAgICB9
CiAgICAgCiAgICAgLy8gSWYgbWFyZ2lucyB3b3VsZCBwdWxsIHVzIHBhc3QgdGhlIHRvcCBvZiB0
aGUgbmV4dCBwYWdlLCB0aGVuIHdlIG5lZWQgdG8gcHVsbCBiYWNrIGFuZCBwcmV0ZW5kIGxpa2Ug
dGhlIG1hcmdpbnMKQEAgLTIwNzksMTIgKzIxMDYsMTkgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9j
azo6Y2xlYXJGbG9hdHNJZk5lZWRlZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJn
aW4KICAgICAgICAgcmV0dXJuIHlQb3M7CiAKICAgICBpZiAoY2hpbGQtPmlzU2VsZkNvbGxhcHNp
bmdCbG9jaygpKSB7CisgICAgICAgIGJvb2wgY2hpbGREaXNjYXJkTWFyZ2luID0gbXVzdERpc2Nh
cmRNYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZCkgfHwgbXVzdERpc2NhcmRNYXJnaW5BZnRlckZv
ckNoaWxkKGNoaWxkKTsKKwogICAgICAgICAvLyBGb3Igc2VsZi1jb2xsYXBzaW5nIGJsb2NrcyB0
aGF0IGNsZWFyLCB0aGV5IGNhbiBzdGlsbCBjb2xsYXBzZSB0aGVpcgogICAgICAgICAvLyBtYXJn
aW5zIHdpdGggZm9sbG93aW5nIHNpYmxpbmdzLiAgUmVzZXQgdGhlIGN1cnJlbnQgbWFyZ2lucyB0
byByZXByZXNlbnQKICAgICAgICAgLy8gdGhlIHNlbGYtY29sbGFwc2luZyBibG9jaydzIG1hcmdp
bnMgb25seS4KLSAgICAgICAgTWFyZ2luVmFsdWVzIGNoaWxkTWFyZ2lucyA9IG1hcmdpblZhbHVl
c0ZvckNoaWxkKGNoaWxkKTsKLSAgICAgICAgbWFyZ2luSW5mby5zZXRQb3NpdGl2ZU1hcmdpbiht
YXgoY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5wb3Np
dGl2ZU1hcmdpbkFmdGVyKCkpKTsKLSAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdp
bihtYXgoY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5u
ZWdhdGl2ZU1hcmdpbkFmdGVyKCkpKTsKKyAgICAgICAgLy8gSWYgRElTQ0FSRCBpcyBzcGVjaWZp
ZWQgZm9yIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlLCByZXNldCB0aGUgbWFyZ2luIHZhbHVlcy4K
KyAgICAgICAgaWYgKCFjaGlsZERpc2NhcmRNYXJnaW4pIHsKKyAgICAgICAgICAgIE1hcmdpblZh
bHVlcyBjaGlsZE1hcmdpbnMgPSBtYXJnaW5WYWx1ZXNGb3JDaGlsZChjaGlsZCk7CisgICAgICAg
ICAgICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luKG1heChjaGlsZE1hcmdpbnMucG9zaXRp
dmVNYXJnaW5CZWZvcmUoKSwgY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSkpOwor
ICAgICAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdpbihtYXgoY2hpbGRNYXJnaW5z
Lm5lZ2F0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkFmdGVy
KCkpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2lu
KCk7CisgICAgICAgIG1hcmdpbkluZm8uc2V0RGlzY2FyZE1hcmdpbihjaGlsZERpc2NhcmRNYXJn
aW4pOwogCiAgICAgICAgIC8vIENTUzIuMSBzdGF0ZXM6CiAgICAgICAgIC8vICJJZiB0aGUgdG9w
IGFuZCBib3R0b20gbWFyZ2lucyBvZiBhbiBlbGVtZW50IHdpdGggY2xlYXJhbmNlIGFyZSBhZGpv
aW5pbmcsIGl0cyBtYXJnaW5zIGNvbGxhcHNlIHdpdGggCkBAIC0yMTE3LDYgKzIxNTEsOSBAQCBM
YXlvdXRVbml0IFJlbmRlckJsb2NrOjpjbGVhckZsb2F0c0lmTmVlZGVkKFJlbmRlckJveCogY2hp
bGQsIE1hcmdpbkluZm8mIG1hcmdpbgogICAgICAgICAvLyBtYXJnaW5zIGludm9sdmVkLgogICAg
ICAgICBzZXRNYXhNYXJnaW5CZWZvcmVWYWx1ZXMob2xkVG9wUG9zTWFyZ2luLCBvbGRUb3BOZWdN
YXJnaW4pOwogICAgICAgICBtYXJnaW5JbmZvLnNldEF0QmVmb3JlU2lkZU9mQmxvY2soZmFsc2Up
OworCisgICAgICAgIC8vIEluIGNhc2UgdGhlIGNoaWxkIGRpc2NhcmRlZCB0aGUgYmVmb3JlIG1h
cmdpbiBvZiB0aGUgYmxvY2sgd2UgbmVlZCB0byByZXNldCB0aGUgbXVzdERpc2NhcmRNYXJnaW5C
ZWZvcmUgZmxhZyB0byB0aGUgaW5pdGlhbCB2YWx1ZS4KKyAgICAgICAgc2V0TXVzdERpc2NhcmRN
YXJnaW5CZWZvcmUoc3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7
CiAgICAgfQogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wID0geVBvcyArIGhlaWdodEluY3Jl
YXNlOwpAQCAtMjEzMCwxMCArMjE2NywxNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpjbGVh
ckZsb2F0c0lmTmVlZGVkKFJlbmRlckJveCogY2hpbGQsIE1hcmdpbkluZm8mIG1hcmdpbgogCiB2
b2lkIFJlbmRlckJsb2NrOjptYXJnaW5CZWZvcmVFc3RpbWF0ZUZvckNoaWxkKFJlbmRlckJveCog
Y2hpbGQsIExheW91dFVuaXQmIHBvc2l0aXZlTWFyZ2luQmVmb3JlLCBMYXlvdXRVbml0JiBuZWdh
dGl2ZU1hcmdpbkJlZm9yZSkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRlYWwg
d2l0aCB0aGUgbWFyZ2luLWNvbGxhcHNlLSogc3R5bGUgZXh0ZW5zaW9ucyB0aGF0IHByZXZlbnQg
Y29sbGFwc2luZyBhbmQgdGhhdCBkaXNjYXJkIG1hcmdpbnMuCiAgICAgLy8gR2l2ZSB1cCBpZiBp
biBxdWlya3MgbW9kZSBhbmQgd2UncmUgYSBib2R5L3RhYmxlIGNlbGwgYW5kIHRoZSB0b3AgbWFy
Z2luIG9mIHRoZSBjaGlsZCBib3ggaXMgcXVpcmt5LgotICAgIGlmIChkb2N1bWVudCgpLT5pblF1
aXJrc01vZGUoKSAmJiBjaGlsZC0+aXNNYXJnaW5CZWZvcmVRdWlyaygpICYmIChpc1RhYmxlQ2Vs
bCgpIHx8IGlzQm9keSgpKSkKKyAgICAvLyBHaXZlIHVwIGlmIHRoZSBjaGlsZCBzcGVjaWZpZWQg
LXdlYmtpdC1tYXJnaW4tY29sbGFwc2U6IHNlcGFyYXRlIHRoYXQgcHJldmVudHMgY29sbGFwc2lu
Zy4KKyAgICBpZiAoKGRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpICYmIGNoaWxkLT5pc01hcmdp
bkJlZm9yZVF1aXJrKCkgJiYgKGlzVGFibGVDZWxsKCkgfHwgaXNCb2R5KCkpKSB8fCBtdXN0U2Vw
YXJhdGVNYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZCkpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIFRoZSBtYXJnaW5zIGFyZSBkaXNjYXJkZWQgYnkgYSBjaGlsZCB0aGF0IHNwZWNpZmllZCAt
d2Via2l0LW1hcmdpbi1jb2xsYXBzZTogZGlzY2FyZC4KKyAgICBpZiAobXVzdERpc2NhcmRNYXJn
aW5CZWZvcmVGb3JDaGlsZChjaGlsZCkpIHsKKyAgICAgICAgcG9zaXRpdmVNYXJnaW5CZWZvcmUg
PSAwOworICAgICAgICBuZWdhdGl2ZU1hcmdpbkJlZm9yZSA9IDA7CiAgICAgICAgIHJldHVybjsK
KyAgICB9CiAKICAgICBMYXlvdXRVbml0IGJlZm9yZUNoaWxkTWFyZ2luID0gbWFyZ2luQmVmb3Jl
Rm9yQ2hpbGQoY2hpbGQpOwogICAgIHBvc2l0aXZlTWFyZ2luQmVmb3JlID0gbWF4KHBvc2l0aXZl
TWFyZ2luQmVmb3JlLCBiZWZvcmVDaGlsZE1hcmdpbik7CkBAIC0yMTYzLDIyICsyMjA3LDIzIEBA
IHZvaWQgUmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUVzdGltYXRlRm9yQ2hpbGQoUmVuZGVyQm94
KiBjaGlsZCwgTGF5b3V0VW5pdCYgcG9zCiAgICAgLy8gTWFrZSBzdXJlIHRvIHVwZGF0ZSB0aGUg
YmxvY2sgbWFyZ2lucyBub3cgZm9yIHRoZSBncmFuZGNoaWxkIGJveCBzbyB0aGF0IHdlJ3JlIGxv
b2tpbmcgYXQgY3VycmVudCB2YWx1ZXMuCiAgICAgaWYgKGdyYW5kY2hpbGRCb3gtPm5lZWRzTGF5
b3V0KCkpIHsKICAgICAgICAgZ3JhbmRjaGlsZEJveC0+Y29tcHV0ZUFuZFNldEJsb2NrRGlyZWN0
aW9uTWFyZ2lucyh0aGlzKTsKLSAgICAgICAgZ3JhbmRjaGlsZEJveC0+c2V0TWFyZ2luQmVmb3Jl
UXVpcmsoZ3JhbmRjaGlsZEJveC0+c3R5bGUoKS0+bWFyZ2luQmVmb3JlKCkucXVpcmsoKSk7Ci0g
ICAgICAgIGdyYW5kY2hpbGRCb3gtPnNldE1hcmdpbkFmdGVyUXVpcmsoZ3JhbmRjaGlsZEJveC0+
c3R5bGUoKS0+bWFyZ2luQWZ0ZXIoKS5xdWlyaygpKTsKKyAgICAgICAgZ3JhbmRjaGlsZEJveC0+
c2V0TWFyZ2luQmVmb3JlUXVpcmsoZ3JhbmRjaGlsZEJveC0+c3R5bGUoKS0+aXNNYXJnaW5CZWZv
cmVRdWlyaygpKTsKKyAgICAgICAgZ3JhbmRjaGlsZEJveC0+c2V0TWFyZ2luQWZ0ZXJRdWlyayhn
cmFuZGNoaWxkQm94LT5zdHlsZSgpLT5pc01hcmdpbkFmdGVyUXVpcmsoKSk7CiAgICAgfQogCiAg
ICAgLy8gQ29sbGFwc2UgdGhlIG1hcmdpbiBvZiB0aGUgZ3JhbmRjaGlsZCBib3ggd2l0aCBvdXIg
b3duIHRvIHByb2R1Y2UgYW4gZXN0aW1hdGUuCiAgICAgY2hpbGRCbG9jay0+bWFyZ2luQmVmb3Jl
RXN0aW1hdGVGb3JDaGlsZChncmFuZGNoaWxkQm94LCBwb3NpdGl2ZU1hcmdpbkJlZm9yZSwgbmVn
YXRpdmVNYXJnaW5CZWZvcmUpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJsb2NrOjplc3RpbWF0
ZUxvZ2ljYWxUb3BQb3NpdGlvbihSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBNYXJnaW5JbmZvJiBt
YXJnaW5JbmZvLCBMYXlvdXRVbml0JiBlc3RpbWF0ZVdpdGhvdXRQYWdpbmF0aW9uKQorTGF5b3V0
VW5pdCBSZW5kZXJCbG9jazo6ZXN0aW1hdGVMb2dpY2FsVG9wUG9zaXRpb24oUmVuZGVyQm94KiBj
aGlsZCwgY29uc3QgTWFyZ2luSW5mbyYgLyptYXJnaW5JbmZvKi8sIExheW91dFVuaXQmIGVzdGlt
YXRlV2l0aG91dFBhZ2luYXRpb24pCiB7CiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gZWxpbWlu
YXRlIHRoZSBlc3RpbWF0aW9uIG9mIHZlcnRpY2FsIHBvc2l0aW9uLCBiZWNhdXNlIHdoZW4gaXQn
cyB3cm9uZyB3ZSBzb21ldGltZXMgdHJpZ2dlciBhIHBhdGhvbG9naWNhbAogICAgIC8vIHJlbGF5
b3V0IGlmIHRoZXJlIGFyZSBpbnRydWRpbmcgZmxvYXRzLgogICAgIExheW91dFVuaXQgbG9naWNh
bFRvcEVzdGltYXRlID0gbG9naWNhbEhlaWdodCgpOwotICAgIGlmICghbWFyZ2luSW5mby5jYW5D
b2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSkgeworICAgIGlmICghbWFyZ2luSW5mby5jYW5Db2xs
YXBzZVdpdGhNYXJnaW5CZWZvcmUoKSkgewogICAgICAgICBMYXlvdXRVbml0IHBvc2l0aXZlTWFy
Z2luQmVmb3JlID0gMDsKICAgICAgICAgTGF5b3V0VW5pdCBuZWdhdGl2ZU1hcmdpbkJlZm9yZSA9
IDA7CisgICAgICAgIGJvb2wgZGlzY2FyZE1hcmdpbkJlZm9yZSA9IG11c3REaXNjYXJkTWFyZ2lu
QmVmb3JlRm9yQ2hpbGQoY2hpbGQpOwogICAgICAgICBpZiAoY2hpbGQtPnNlbGZOZWVkc0xheW91
dCgpKSB7CiAgICAgICAgICAgICAvLyBUcnkgdG8gZG8gYSBiYXNpYyBlc3RpbWF0aW9uIG9mIGhv
dyB0aGUgY29sbGFwc2UgaXMgZ29pbmcgdG8gZ28uCiAgICAgICAgICAgICBtYXJnaW5CZWZvcmVF
c3RpbWF0ZUZvckNoaWxkKGNoaWxkLCBwb3NpdGl2ZU1hcmdpbkJlZm9yZSwgbmVnYXRpdmVNYXJn
aW5CZWZvcmUpOwpAQCAtMjE5MSw4ICsyMjM2LDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6
ZXN0aW1hdGVMb2dpY2FsVG9wUG9zaXRpb24oUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgTWFyZ2kK
ICAgICAgICAgfQogCiAgICAgICAgIC8vIENvbGxhcHNlIHRoZSByZXN1bHQgd2l0aCBvdXIgY3Vy
cmVudCBtYXJnaW5zLgotICAgICAgICBsb2dpY2FsVG9wRXN0aW1hdGUgKz0gbWF4KG1hcmdpbklu
Zm8ucG9zaXRpdmVNYXJnaW4oKSwgcG9zaXRpdmVNYXJnaW5CZWZvcmUpIC0gbWF4KG1hcmdpbklu
Zm8ubmVnYXRpdmVNYXJnaW4oKSwgbmVnYXRpdmVNYXJnaW5CZWZvcmUpOwotICAgIH0KKyAgICAg
ICAgaWYgKCFkaXNjYXJkTWFyZ2luQmVmb3JlKQorICAgICAgICAgICAgbG9naWNhbFRvcEVzdGlt
YXRlICs9IG1heChtYXJnaW5JbmZvLnBvc2l0aXZlTWFyZ2luKCksIHBvc2l0aXZlTWFyZ2luQmVm
b3JlKSAtIG1heChtYXJnaW5JbmZvLm5lZ2F0aXZlTWFyZ2luKCksIG5lZ2F0aXZlTWFyZ2luQmVm
b3JlKTsKKyAgICB9CiAKICAgICAvLyBBZGp1c3QgbG9naWNhbFRvcEVzdGltYXRlIGRvd24gdG8g
dGhlIG5leHQgcGFnZSBpZiB0aGUgbWFyZ2lucyBhcmUgc28gbGFyZ2UgdGhhdCB3ZSBkb24ndCBm
aXQgb24gdGhlIGN1cnJlbnQKICAgICAvLyBwYWdlLgpAQCAtMjI2Niw2ICsyMzEyLDEzIEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmRldGVybWluZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGlsZChSZW5k
ZXJCb3gqIGNoaWxkKQogdm9pZCBSZW5kZXJCbG9jazo6c2V0Q29sbGFwc2VkQm90dG9tTWFyZ2lu
KGNvbnN0IE1hcmdpbkluZm8mIG1hcmdpbkluZm8pCiB7CiAgICAgaWYgKG1hcmdpbkluZm8uY2Fu
Q29sbGFwc2VXaXRoTWFyZ2luQWZ0ZXIoKSAmJiAhbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhN
YXJnaW5CZWZvcmUoKSkgeworICAgICAgICAvLyBVcGRhdGUgdGhlIGFmdGVyIHNpZGUgbWFyZ2lu
IG9mIHRoZSBjb250YWluZXIgdG8gZGlzY2FyZCBpZiB0aGUgYWZ0ZXIgbWFyZ2luIG9mIHRoZSBs
YXN0IGNoaWxkIGFsc28gZGlzY2FyZHMgYW5kIHdlIGNvbGxhcHNlIHdpdGggaXQuCisgICAgICAg
IC8vIERvbid0IHVwZGF0ZSB0aGUgbWF4IG1hcmdpbiB2YWx1ZXMgYmVjYXVzZSB3ZSB3b24ndCBu
ZWVkIHRoZW0gYW55d2F5LgorICAgICAgICBpZiAobWFyZ2luSW5mby5kaXNjYXJkTWFyZ2luKCkp
IHsKKyAgICAgICAgICAgIHNldE11c3REaXNjYXJkTWFyZ2luQWZ0ZXIoKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIFVwZGF0ZSBvdXIgbWF4IHBvcy9uZWcg
Ym90dG9tIG1hcmdpbnMsIHNpbmNlIHdlIGNvbGxhcHNlZCBvdXIgYm90dG9tIG1hcmdpbnMKICAg
ICAgICAgLy8gd2l0aCBvdXIgY2hpbGRyZW4uCiAgICAgICAgIHNldE1heE1hcmdpbkFmdGVyVmFs
dWVzKG1heChtYXhQb3NpdGl2ZU1hcmdpbkFmdGVyKCksIG1hcmdpbkluZm8ucG9zaXRpdmVNYXJn
aW4oKSksIG1heChtYXhOZWdhdGl2ZU1hcmdpbkFmdGVyKCksIG1hcmdpbkluZm8ubmVnYXRpdmVN
YXJnaW4oKSkpOwpAQCAtMjI4OCw5ICsyMzQxLDkgQEAgdm9pZCBSZW5kZXJCbG9jazo6aGFuZGxl
QWZ0ZXJTaWRlT2ZCbG9jayhMYXlvdXRVbml0IGJlZm9yZVNpZGUsIExheW91dFVuaXQgYWZ0ZXIK
ICAgICAvLyBJZiB3ZSBjYW4ndCBjb2xsYXBzZSB3aXRoIGNoaWxkcmVuIHRoZW4gZ28gYWhlYWQg
YW5kIGFkZCBpbiB0aGUgYm90dG9tIG1hcmdpbi4KICAgICAvLyBEb24ndCBkbyB0aGlzIGZvciBv
cmRpbmFyeSBhbm9ueW1vdXMgYmxvY2tzIGFzIG9ubHkgdGhlIGVuY2xvc2luZyBib3ggc2hvdWxk
IGFkZCBpbgogICAgIC8vIGl0cyBtYXJnaW4uCi0gICAgaWYgKCFtYXJnaW5JbmZvLmNhbkNvbGxh
cHNlV2l0aE1hcmdpbkFmdGVyKCkgJiYgIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2lu
QmVmb3JlKCkKKyAgICBpZiAoIW1hcmdpbkluZm8uZGlzY2FyZE1hcmdpbigpICYmICghbWFyZ2lu
SW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5BZnRlcigpICYmICFtYXJnaW5JbmZvLmNhbkNvbGxh
cHNlV2l0aE1hcmdpbkJlZm9yZSgpCiAgICAgICAgICYmICghaXNBbm9ueW1vdXNCbG9jaygpIHx8
IGlzQW5vbnltb3VzQ29sdW1uc0Jsb2NrKCkgfHwgaXNBbm9ueW1vdXNDb2x1bW5TcGFuQmxvY2so
KSkKLSAgICAgICAgJiYgKCFkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSB8fCAhbWFyZ2luSW5m
by5xdWlya0NvbnRhaW5lcigpIHx8ICFtYXJnaW5JbmZvLm1hcmdpbkFmdGVyUXVpcmsoKSkpCisg
ICAgICAgICYmICghZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkgfHwgIW1hcmdpbkluZm8ucXVp
cmtDb250YWluZXIoKSB8fCAhbWFyZ2luSW5mby5tYXJnaW5BZnRlclF1aXJrKCkpKSkKICAgICAg
ICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KCkgKyBtYXJnaW5JbmZvLm1hcmdpbigp
KTsKICAgICAgICAgCiAgICAgLy8gTm93IGFkZCBpbiBvdXIgYm90dG9tIGJvcmRlci9wYWRkaW5n
LgpAQCAtMjQxNSwxMyArMjQ2OCw2IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hp
bGQoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbywgTGF5CiAgICAgLy8g
VGhlIGNoaWxkIGlzIGEgbm9ybWFsIGZsb3cgb2JqZWN0LiAgQ29tcHV0ZSB0aGUgbWFyZ2lucyB3
ZSB3aWxsIHVzZSBmb3IgY29sbGFwc2luZyBub3cuCiAgICAgY2hpbGQtPmNvbXB1dGVBbmRTZXRC
bG9ja0RpcmVjdGlvbk1hcmdpbnModGhpcyk7CiAKLSAgICAvLyBEbyBub3QgYWxsb3cgYSBjb2xs
YXBzZSBpZiB0aGUgbWFyZ2luLWJlZm9yZS1jb2xsYXBzZSBzdHlsZSBpcyBzZXQgdG8gU0VQQVJB
VEUuCi0gICAgUmVuZGVyU3R5bGUqIGNoaWxkU3R5bGUgPSBjaGlsZC0+c3R5bGUoKTsKLSAgICBp
ZiAoY2hpbGRTdHlsZS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNU0VQQVJBVEUpIHsKLSAg
ICAgICAgbWFyZ2luSW5mby5zZXRBdEJlZm9yZVNpZGVPZkJsb2NrKGZhbHNlKTsKLSAgICAgICAg
bWFyZ2luSW5mby5jbGVhck1hcmdpbigpOwotICAgIH0KLQogICAgIC8vIFRyeSB0byBndWVzcyBv
dXIgY29ycmVjdCBsb2dpY2FsIHRvcCBwb3NpdGlvbi4gIEluIG1vc3QgY2FzZXMgdGhpcyBndWVz
cyB3aWxsCiAgICAgLy8gYmUgY29ycmVjdC4gIE9ubHkgaWYgd2UncmUgd3JvbmcgKHdoZW4gd2Ug
Y29tcHV0ZSB0aGUgcmVhbCBsb2dpY2FsIHRvcCBwb3NpdGlvbikKICAgICAvLyB3aWxsIHdlIGhh
dmUgdG8gcG90ZW50aWFsbHkgcmVsYXlvdXQuCkBAIC0yNTE1LDcgKzI1NjEsNyBAQCB2b2lkIFJl
bmRlckJsb2NrOjpsYXlvdXRCbG9ja0NoaWxkKFJlbmRlckJveCogY2hpbGQsIE1hcmdpbkluZm8m
IG1hcmdpbkluZm8sIExheQogCiAgICAgLy8gVXBkYXRlIG91ciBoZWlnaHQgbm93IHRoYXQgdGhl
IGNoaWxkIGhhcyBiZWVuIHBsYWNlZCBpbiB0aGUgY29ycmVjdCBwb3NpdGlvbi4KICAgICBzZXRM
b2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSArIGxvZ2ljYWxIZWlnaHRGb3JDaGlsZChjaGls
ZCkpOwotICAgIGlmIChjaGlsZFN0eWxlLT5tYXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTVNFUEFS
QVRFKSB7CisgICAgaWYgKG11c3RTZXBhcmF0ZU1hcmdpbkFmdGVyRm9yQ2hpbGQoY2hpbGQpKSB7
CiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbWFyZ2luQWZ0ZXJG
b3JDaGlsZChjaGlsZCkpOwogICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2luKCk7CiAgICAg
fQpAQCAtNjgzMCw2ICs2ODc2LDg2IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnNldE1heE1hcmdpbkFm
dGVyVmFsdWVzKExheW91dFVuaXQgcG9zLCBMYXlvdXRVbml0IG5lZykKICAgICBtX3JhcmVEYXRh
LT5tX21hcmdpbnMuc2V0TmVnYXRpdmVNYXJnaW5BZnRlcihuZWcpOwogfQogCit2b2lkIFJlbmRl
ckJsb2NrOjpzZXRNdXN0RGlzY2FyZE1hcmdpbkJlZm9yZShib29sIHZhbHVlKQoreworICAgIGlm
IChzdHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1ESVNDQVJEKSB7CisgICAgICAg
IEFTU0VSVCh2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKCFt
X3JhcmVEYXRhICYmICF2YWx1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3JhcmVE
YXRhKQorICAgICAgICBtX3JhcmVEYXRhID0gYWRvcHRQdHIobmV3IFJlbmRlckJsb2NrUmFyZURh
dGEodGhpcykpOworCisgICAgbV9yYXJlRGF0YS0+bV9kaXNjYXJkTWFyZ2luQmVmb3JlID0gdmFs
dWU7Cit9CisKK3ZvaWQgUmVuZGVyQmxvY2s6OnNldE11c3REaXNjYXJkTWFyZ2luQWZ0ZXIoYm9v
bCB2YWx1ZSkKK3sKKyAgICBpZiAoc3R5bGUoKS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1E
SVNDQVJEKSB7CisgICAgICAgIEFTU0VSVCh2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoIW1fcmFyZURhdGEgJiYgIXZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIW1fcmFyZURhdGEpCisgICAgICAgIG1fcmFyZURhdGEgPSBhZG9wdFB0cihuZXcgUmVu
ZGVyQmxvY2tSYXJlRGF0YSh0aGlzKSk7CisKKyAgICBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJn
aW5BZnRlciA9IHZhbHVlOworfQorCitib29sIFJlbmRlckJsb2NrOjptdXN0RGlzY2FyZE1hcmdp
bkJlZm9yZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0eWxlKCktPm1hcmdpbkJlZm9yZUNvbGxh
cHNlKCkgPT0gTURJU0NBUkQgfHwgKG1fcmFyZURhdGEgJiYgbV9yYXJlRGF0YS0+bV9kaXNjYXJk
TWFyZ2luQmVmb3JlKTsKK30KKworYm9vbCBSZW5kZXJCbG9jazo6bXVzdERpc2NhcmRNYXJnaW5B
ZnRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0eWxlKCktPm1hcmdpbkFmdGVyQ29sbGFwc2Uo
KSA9PSBNRElTQ0FSRCB8fCAobV9yYXJlRGF0YSAmJiBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJn
aW5BZnRlcik7Cit9CisKK2Jvb2wgUmVuZGVyQmxvY2s6Om11c3REaXNjYXJkTWFyZ2luQmVmb3Jl
Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKK3sKKyAgICBpZiAoIWNoaWxk
LT5pc1dyaXRpbmdNb2RlUm9vdCgpKQorICAgICAgICByZXR1cm4gY2hpbGQtPmlzUmVuZGVyQmxv
Y2soKSA/IHRvUmVuZGVyQmxvY2soY2hpbGQpLT5tdXN0RGlzY2FyZE1hcmdpbkJlZm9yZSgpIDog
KGNoaWxkLT5zdHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1ESVNDQVJEKTsKKyAg
ICBpZiAoY2hpbGQtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPT0gaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkLT5pc1JlbmRlckJsb2NrKCkgPyB0b1Jl
bmRlckJsb2NrKGNoaWxkKS0+bXVzdERpc2NhcmRNYXJnaW5BZnRlcigpIDogKGNoaWxkLT5zdHls
ZSgpLT5tYXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTURJU0NBUkQpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBSZW5kZXJCbG9jazo6bXVzdERpc2NhcmRNYXJnaW5BZnRlckZvckNoaWxk
KGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0Cit7CisgICAgaWYgKCFjaGlsZC0+aXNXcml0
aW5nTW9kZVJvb3QoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkLT5pc1JlbmRlckJsb2NrKCkgPyB0
b1JlbmRlckJsb2NrKGNoaWxkKS0+bXVzdERpc2NhcmRNYXJnaW5BZnRlcigpIDogKGNoaWxkLT5z
dHlsZSgpLT5tYXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTURJU0NBUkQpOworICAgIGlmIChjaGls
ZC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
KQorICAgICAgICByZXR1cm4gY2hpbGQtPmlzUmVuZGVyQmxvY2soKSA/IHRvUmVuZGVyQmxvY2so
Y2hpbGQpLT5tdXN0RGlzY2FyZE1hcmdpbkJlZm9yZSgpIDogKGNoaWxkLT5zdHlsZSgpLT5tYXJn
aW5CZWZvcmVDb2xsYXBzZSgpID09IE1ESVNDQVJEKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgUmVuZGVyQmxvY2s6Om11c3RTZXBhcmF0ZU1hcmdpbkJlZm9yZUZvckNoaWxkKGNvbnN0
IFJlbmRlckJveCogY2hpbGQpIGNvbnN0Cit7CisgICAgY29uc3QgUmVuZGVyU3R5bGUqIGNoaWxk
U3R5bGUgPSBjaGlsZC0+c3R5bGUoKTsKKyAgICBpZiAoIWNoaWxkLT5pc1dyaXRpbmdNb2RlUm9v
dCgpKQorICAgICAgICByZXR1cm4gY2hpbGRTdHlsZS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9
PSBNU0VQQVJBVEU7CisgICAgaWYgKGNoaWxkLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID09
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHJldHVybiBjaGlsZFN0eWxlLT5t
YXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTVNFUEFSQVRFOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBSZW5kZXJCbG9jazo6bXVzdFNlcGFyYXRlTWFyZ2luQWZ0ZXJGb3JDaGlsZChjb25z
dCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdAoreworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBjaGls
ZFN0eWxlID0gY2hpbGQtPnN0eWxlKCk7CisgICAgaWYgKCFjaGlsZC0+aXNXcml0aW5nTW9kZVJv
b3QoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkU3R5bGUtPm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9
PSBNU0VQQVJBVEU7CisgICAgaWYgKGNoaWxkLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID09
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHJldHVybiBjaGlsZFN0eWxlLT5t
YXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1TRVBBUkFURTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHZvaWQgUmVuZGVyQmxvY2s6OnNldFBhZ2luYXRpb25TdHJ1dChMYXlvdXRVbml0IHN0cnV0
KQogewogICAgIGlmICghbV9yYXJlRGF0YSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suaAppbmRleCAxZWQyMTFjZTgzOGZkM2U2MzM1MTQyZjMxNzBkZTE2ZTg1OTcyZDdkLi4y
N2M5Y2UxMmNlZTk0YjlmMjdjMDI4NGE3NjE5YjI2YjAxOWMzNGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNDU1LDEyICs0NTUsMjcgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgc2V0TWF4TWFyZ2luQmVmb3JlVmFsdWVzKExheW91dFVuaXQgcG9zLCBMYXlvdXRV
bml0IG5lZyk7CiAgICAgdm9pZCBzZXRNYXhNYXJnaW5BZnRlclZhbHVlcyhMYXlvdXRVbml0IHBv
cywgTGF5b3V0VW5pdCBuZWcpOwogCisgICAgdm9pZCBzZXRNdXN0RGlzY2FyZE1hcmdpbkJlZm9y
ZShib29sID0gdHJ1ZSk7CisgICAgdm9pZCBzZXRNdXN0RGlzY2FyZE1hcmdpbkFmdGVyKGJvb2wg
PSB0cnVlKTsKKworICAgIGJvb2wgbXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKSBjb25zdDsKKyAg
ICBib29sIG11c3REaXNjYXJkTWFyZ2luQWZ0ZXIoKSBjb25zdDsKKworICAgIGJvb2wgbXVzdERp
c2NhcmRNYXJnaW5CZWZvcmVGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqKSBjb25zdDsKKyAgICBi
b29sIG11c3REaXNjYXJkTWFyZ2luQWZ0ZXJGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqKSBjb25z
dDsKKworICAgIGJvb2wgbXVzdFNlcGFyYXRlTWFyZ2luQmVmb3JlRm9yQ2hpbGQoY29uc3QgUmVu
ZGVyQm94KikgY29uc3Q7CisgICAgYm9vbCBtdXN0U2VwYXJhdGVNYXJnaW5BZnRlckZvckNoaWxk
KGNvbnN0IFJlbmRlckJveCopIGNvbnN0OworCiAgICAgdm9pZCBpbml0TWF4TWFyZ2luVmFsdWVz
KCkKICAgICB7CiAgICAgICAgIGlmIChtX3JhcmVEYXRhKSB7CiAgICAgICAgICAgICBtX3JhcmVE
YXRhLT5tX21hcmdpbnMgPSBNYXJnaW5WYWx1ZXMoUmVuZGVyQmxvY2tSYXJlRGF0YTo6cG9zaXRp
dmVNYXJnaW5CZWZvcmVEZWZhdWx0KHRoaXMpICwgUmVuZGVyQmxvY2tSYXJlRGF0YTo6bmVnYXRp
dmVNYXJnaW5CZWZvcmVEZWZhdWx0KHRoaXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrUmFyZURhdGE6OnBvc2l0aXZlTWFyZ2lu
QWZ0ZXJEZWZhdWx0KHRoaXMpLCBSZW5kZXJCbG9ja1JhcmVEYXRhOjpuZWdhdGl2ZU1hcmdpbkFm
dGVyRGVmYXVsdCh0aGlzKSk7CiAgICAgICAgICAgICBtX3JhcmVEYXRhLT5tX3BhZ2luYXRpb25T
dHJ1dCA9IDA7CisKKyAgICAgICAgICAgIG1fcmFyZURhdGEtPm1fZGlzY2FyZE1hcmdpbkJlZm9y
ZSA9IGZhbHNlOworICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV9kaXNjYXJkTWFyZ2luQWZ0ZXIg
PSBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTU5LDYgKzk3NCw4IEBAIHByaXZhdGU6
CiAgICAgICAgIGJvb2wgbV9tYXJnaW5BZnRlclF1aXJrIDogMTsKICAgICAgICAgYm9vbCBtX2Rl
dGVybWluZWRNYXJnaW5CZWZvcmVRdWlyayA6IDE7CiAKKyAgICAgICAgYm9vbCBtX2Rpc2NhcmRN
YXJnaW4gOiAxOworCiAgICAgICAgIC8vIFRoZXNlIGZsYWdzIHRyYWNrIHRoZSBwcmV2aW91cyBt
YXhpbWFsIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBtYXJnaW5zLgogICAgICAgICBMYXlvdXRVbml0
IG1fcG9zaXRpdmVNYXJnaW47CiAgICAgICAgIExheW91dFVuaXQgbV9uZWdhdGl2ZU1hcmdpbjsK
QEAgLTk3NiwzMyArOTkzLDM3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0TWFyZ2luQmVm
b3JlUXVpcmsoYm9vbCBiKSB7IG1fbWFyZ2luQmVmb3JlUXVpcmsgPSBiOyB9CiAgICAgICAgIHZv
aWQgc2V0TWFyZ2luQWZ0ZXJRdWlyayhib29sIGIpIHsgbV9tYXJnaW5BZnRlclF1aXJrID0gYjsg
fQogICAgICAgICB2b2lkIHNldERldGVybWluZWRNYXJnaW5CZWZvcmVRdWlyayhib29sIGIpIHsg
bV9kZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsgPSBiOyB9Ci0gICAgICAgIHZvaWQgc2V0UG9z
aXRpdmVNYXJnaW4oTGF5b3V0VW5pdCBwKSB7IG1fcG9zaXRpdmVNYXJnaW4gPSBwOyB9Ci0gICAg
ICAgIHZvaWQgc2V0TmVnYXRpdmVNYXJnaW4oTGF5b3V0VW5pdCBuKSB7IG1fbmVnYXRpdmVNYXJn
aW4gPSBuOyB9CisgICAgICAgIHZvaWQgc2V0UG9zaXRpdmVNYXJnaW4oTGF5b3V0VW5pdCBwKSB7
IEFTU0VSVCghbV9kaXNjYXJkTWFyZ2luKTsgbV9wb3NpdGl2ZU1hcmdpbiA9IHA7IH0KKyAgICAg
ICAgdm9pZCBzZXROZWdhdGl2ZU1hcmdpbihMYXlvdXRVbml0IG4pIHsgQVNTRVJUKCFtX2Rpc2Nh
cmRNYXJnaW4pOyBtX25lZ2F0aXZlTWFyZ2luID0gbjsgfQogICAgICAgICB2b2lkIHNldFBvc2l0
aXZlTWFyZ2luSWZMYXJnZXIoTGF5b3V0VW5pdCBwKQogICAgICAgICB7CisgICAgICAgICAgICBB
U1NFUlQoIW1fZGlzY2FyZE1hcmdpbik7CiAgICAgICAgICAgICBpZiAocCA+IG1fcG9zaXRpdmVN
YXJnaW4pCiAgICAgICAgICAgICAgICAgbV9wb3NpdGl2ZU1hcmdpbiA9IHA7CiAgICAgICAgIH0K
ICAgICAgICAgdm9pZCBzZXROZWdhdGl2ZU1hcmdpbklmTGFyZ2VyKExheW91dFVuaXQgbikKICAg
ICAgICAgeworICAgICAgICAgICAgQVNTRVJUKCFtX2Rpc2NhcmRNYXJnaW4pOwogICAgICAgICAg
ICAgaWYgKG4gPiBtX25lZ2F0aXZlTWFyZ2luKQogICAgICAgICAgICAgICAgIG1fbmVnYXRpdmVN
YXJnaW4gPSBuOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBzZXRNYXJnaW4oTGF5b3V0VW5p
dCBwLCBMYXlvdXRVbml0IG4pIHsgbV9wb3NpdGl2ZU1hcmdpbiA9IHA7IG1fbmVnYXRpdmVNYXJn
aW4gPSBuOyB9CisgICAgICAgIHZvaWQgc2V0TWFyZ2luKExheW91dFVuaXQgcCwgTGF5b3V0VW5p
dCBuKSB7IEFTU0VSVCghbV9kaXNjYXJkTWFyZ2luKTsgbV9wb3NpdGl2ZU1hcmdpbiA9IHA7IG1f
bmVnYXRpdmVNYXJnaW4gPSBuOyB9CisgICAgICAgIHZvaWQgc2V0Q2FuQ29sbGFwc2VNYXJnaW5B
ZnRlcldpdGhDaGlsZHJlbihib29sIGNvbGxhcHNlKSB7IG1fY2FuQ29sbGFwc2VNYXJnaW5BZnRl
cldpdGhDaGlsZHJlbiA9IGNvbGxhcHNlOyB9CisgICAgICAgIHZvaWQgc2V0RGlzY2FyZE1hcmdp
bihib29sIHZhbHVlKSB7IG1fZGlzY2FyZE1hcmdpbiA9IHZhbHVlOyB9CiAKICAgICAgICAgYm9v
bCBhdEJlZm9yZVNpZGVPZkJsb2NrKCkgY29uc3QgeyByZXR1cm4gbV9hdEJlZm9yZVNpZGVPZkJs
b2NrOyB9CiAgICAgICAgIGJvb2wgY2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVmb3JlKCkgY29uc3Qg
eyByZXR1cm4gbV9hdEJlZm9yZVNpZGVPZkJsb2NrICYmIG1fY2FuQ29sbGFwc2VNYXJnaW5CZWZv
cmVXaXRoQ2hpbGRyZW47IH0KICAgICAgICAgYm9vbCBjYW5Db2xsYXBzZVdpdGhNYXJnaW5BZnRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fYXRBZnRlclNpZGVPZkJsb2NrICYmIG1fY2FuQ29sbGFwc2VN
YXJnaW5BZnRlcldpdGhDaGlsZHJlbjsgfQogICAgICAgICBib29sIGNhbkNvbGxhcHNlTWFyZ2lu
QmVmb3JlV2l0aENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Db2xsYXBzZU1hcmdpbkJl
Zm9yZVdpdGhDaGlsZHJlbjsgfQogICAgICAgICBib29sIGNhbkNvbGxhcHNlTWFyZ2luQWZ0ZXJX
aXRoQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX2NhbkNvbGxhcHNlTWFyZ2luQWZ0ZXJXaXRo
Q2hpbGRyZW47IH0KLSAgICAgICAgdm9pZCBzZXRDYW5Db2xsYXBzZU1hcmdpbkFmdGVyV2l0aENo
aWxkcmVuKGJvb2wgY29sbGFwc2UpIHsgbV9jYW5Db2xsYXBzZU1hcmdpbkFmdGVyV2l0aENoaWxk
cmVuID0gY29sbGFwc2U7IH0KICAgICAgICAgYm9vbCBxdWlya0NvbnRhaW5lcigpIGNvbnN0IHsg
cmV0dXJuIG1fcXVpcmtDb250YWluZXI7IH0KICAgICAgICAgYm9vbCBkZXRlcm1pbmVkTWFyZ2lu
QmVmb3JlUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX2RldGVybWluZWRNYXJnaW5CZWZvcmVRdWly
azsgfQogICAgICAgICBib29sIG1hcmdpbkJlZm9yZVF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9t
YXJnaW5CZWZvcmVRdWlyazsgfQogICAgICAgICBib29sIG1hcmdpbkFmdGVyUXVpcmsoKSBjb25z
dCB7IHJldHVybiBtX21hcmdpbkFmdGVyUXVpcms7IH0KICAgICAgICAgTGF5b3V0VW5pdCBwb3Np
dGl2ZU1hcmdpbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpdmVNYXJnaW47IH0KICAgICAgICAg
TGF5b3V0VW5pdCBuZWdhdGl2ZU1hcmdpbigpIGNvbnN0IHsgcmV0dXJuIG1fbmVnYXRpdmVNYXJn
aW47IH0KKyAgICAgICAgYm9vbCBkaXNjYXJkTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gbV9kaXNj
YXJkTWFyZ2luOyB9CiAgICAgICAgIExheW91dFVuaXQgbWFyZ2luKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGl2ZU1hcmdpbiAtIG1fbmVnYXRpdmVNYXJnaW47IH0KICAgICB9OwogCkBAIC0xMTgy
LDggKzEyMDMsMTAgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgLCBtX3BhZ2luYXRpb25TdHJ1
dCgwKQogICAgICAgICAgICAgLCBtX3BhZ2VMb2dpY2FsT2Zmc2V0KDApCiAgICAgICAgICAgICAs
IG1fbGluZUdyaWRCb3goMCkKLSAgICAgICAgICAgICwgbV9zaG91bGRCcmVha0F0TGluZVRvQXZv
aWRXaWRvdyhmYWxzZSkKICAgICAgICAgICAgICwgbV9saW5lQnJlYWtUb0F2b2lkV2lkb3coMCkK
KyAgICAgICAgICAgICwgbV9zaG91bGRCcmVha0F0TGluZVRvQXZvaWRXaWRvdyhmYWxzZSkKKyAg
ICAgICAgICAgICwgbV9kaXNjYXJkTWFyZ2luQmVmb3JlKGZhbHNlKQorICAgICAgICAgICAgLCBt
X2Rpc2NhcmRNYXJnaW5BZnRlcihmYWxzZSkKICAgICAgICAgeyAKICAgICAgICAgfQogCkBAIC0x
MTkxLDcgKzEyMTQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHsgCiAgICAgICAgICAgICByZXR1
cm4gc3RkOjptYXg8TGF5b3V0VW5pdD4oYmxvY2stPm1hcmdpbkJlZm9yZSgpLCAwKTsKICAgICAg
ICAgfQotICAgICAgICAKICAgICAgICAgc3RhdGljIExheW91dFVuaXQgbmVnYXRpdmVNYXJnaW5C
ZWZvcmVEZWZhdWx0KGNvbnN0IFJlbmRlckJsb2NrKiBibG9jaykKICAgICAgICAgeyAKICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om1heDxMYXlvdXRVbml0PigtYmxvY2stPm1hcmdpbkJlZm9yZSgp
LCAwKTsKQEAgLTEyMTEsOCArMTIzMywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIAogICAgICAg
ICBSb290SW5saW5lQm94KiBtX2xpbmVHcmlkQm94OwogCi0gICAgICAgIGJvb2wgbV9zaG91bGRC
cmVha0F0TGluZVRvQXZvaWRXaWRvdzsKICAgICAgICAgUm9vdElubGluZUJveCogbV9saW5lQnJl
YWtUb0F2b2lkV2lkb3c7CisgICAgICAgIGJvb2wgbV9zaG91bGRCcmVha0F0TGluZVRvQXZvaWRX
aWRvdyA6IDE7CisgICAgICAgIGJvb2wgbV9kaXNjYXJkTWFyZ2luQmVmb3JlIDogMTsKKyAgICAg
ICAgYm9vbCBtX2Rpc2NhcmRNYXJnaW5BZnRlciA6IDE7CiAgICAgIH07CiAKICAgICBPd25QdHI8
UmVuZGVyQmxvY2tSYXJlRGF0YT4gbV9yYXJlRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZjVlNWNkMzdjYmZkOWZlODM4ZDEwNDI5NzQ0
YWIzNWM5Y2RkOGViYy4uMGJmZDk0MWZhZTAxY2IwNjcwOWUyOTU3NDllY2QzM2Q4ZmExNTc1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTM3
Nyw2ICszNzcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNCb3JkZXIoKSBjb25zdCB7IHJldHVy
biBzdXJyb3VuZC0+Ym9yZGVyLmhhc0JvcmRlcigpOyB9CiAgICAgYm9vbCBoYXNQYWRkaW5nKCkg
Y29uc3QgeyByZXR1cm4gc3Vycm91bmQtPnBhZGRpbmcubm9uWmVybygpOyB9CiAgICAgYm9vbCBo
YXNPZmZzZXQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0Lm5vblplcm8oKTsgfQor
ICAgIGJvb2wgaXNNYXJnaW5CZWZvcmVRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1hcmdpbkJlZm9y
ZSgpLnF1aXJrKCk7IH0KKyAgICBib29sIGlzTWFyZ2luQWZ0ZXJRdWlyaygpIGNvbnN0IHsgcmV0
dXJuIG1hcmdpbkFmdGVyKCkucXVpcmsoKTsgfQogCiAgICAgYm9vbCBoYXNCYWNrZ3JvdW5kSW1h
Z2UoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmQtPmJhY2tncm91bmQoKS5oYXNJbWFnZSgp
OyB9CiAgICAgYm9vbCBoYXNGaXhlZEJhY2tncm91bmRJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1f
YmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLmhhc0ZpeGVkSW1hZ2UoKTsgfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZhMGU4
Y2JhMzhiYmVmNmUxMmJhMDliMjYyMTY3MTk1NTNiYWJkYTkuLmYxOGMzOWRiNjI2ODFhMzNjNWM3
Yzc1YjI3NTdlODczZTY5OGYwYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMy0wMi0wNiAg
QW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGhl
IC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5kZXJpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvdXIgbmV3IHRl
c3RzIGNvdmVyaW5nIHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0eSBiYXNpYyBi
ZWhhdmlvcjogY29sbGFwc2luZworICAgICAgICBiZXR3ZWVuIGEgYmxvY2sgY29udGFpbmVyIGFu
ZCBpdHMgY2hpbGRyZW4sIGNvbGxhcHNpbmcgYmV0d2VlbiBzaWJsaW5nIGJveGVzIGluIGJvdGgg
VFRCCisgICAgICAgIGFuZCBCVFQgZGlyZWN0aW9uLiBUaGUgbGFzdCB0ZXN0IHZlcmlmaWVzIGlm
IGEgY29udGFpbmVyJ3MgYmVmb3JlIG1hcmdpbiBjb3JyZWN0bHkgcmVzZXRzCisgICAgICAgIHRo
ZSBkaXNjYXJkIHZhbHVlIGFmdGVyIGEgY2xlYXIgb2YgdGhlIGNoaWxkIHRoYXQgaW5pdGFsbHkg
Y2F1c2VkIGl0LgorCisgICAgICAgICogZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0
LW1hcmdpbi1jb2xsYXBzZS1jb250YWluZXItZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1jb250
YWluZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uv
d2Via2l0LW1hcmdpbi1jb2xsYXBzZS1mbG9hdHMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1m
bG9hdHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uv
d2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1idC1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxh
cHNlLXNpYmxpbmdzLWJ0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYmxvY2svbWFyZ2lu
LWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdp
bi1jb2xsYXBzZS1zaWJsaW5ncy5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0wNiAgTWFyamEgSMO2
bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1dLMl0gTmV3IHRlc3RzIGlu
dHJvZHVjZWQgaW4gcjEwMDg5NSBmYWlsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWNvbnRhaW5lci1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0
LW1hcmdpbi1jb2xsYXBzZS1jb250YWluZXItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmUz
Mjg1MWZkYTc4NzFjMWM4MzI2N2EzYzVmNmU5MDQzZWUzMjQ1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xs
YXBzZS1jb250YWluZXItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1OSBAQAorPGh0bWw+CisJ
PGhlYWQ+CisJCTxzdHlsZT4KKwkJZGl2IHsKKwkJCW1hcmdpbjogMHB4OworCQl9CisKKwkJLmNv
bnRhaW5lciB7CisJCQlib3JkZXI6IHRoaW4gc29saWQgYmx1ZTsKKwkJCXdpZHRoOiAzNTBweDsK
KwkJCWZsb2F0OiBsZWZ0OworCQl9CisKKwkJLmxldmVsMSB7CisJCQltYXJnaW4tdG9wOiAxMHB4
OworCQkJbWFyZ2luLWJvdHRvbTogMTBweDsKKwkJCWJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsK
KwkJCWJhY2tncm91bmQtY29sb3I6IGdyZWVuOworCQl9CisKKwkJLmxldmVsMiB7CisJCQltYXJn
aW4tdG9wOiAyNXB4OworCQkJbWFyZ2luLWJvdHRvbTogMjBweDsKKwkJCWJhY2tncm91bmQtY29s
b3I6IG9yYW5nZTsKKwkJfQorCisJCS5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMzBweDsKKwkJ
CW1hcmdpbi1ib3R0b206IDMwcHg7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBwaW5rOworCQl9CisK
KwkJI3QxIC5sZXZlbDIgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQl9CisKKwkJI3QxIC5sZXZl
bDMgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQl9CisKKwkJI3QyIC5sZXZlbDIgeworCQkJbWFy
Z2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI3QyIC5sZXZlbDMgeworCQkJbWFyZ2luLWJvdHRv
bTogMHB4OworCQl9CisKKwkJI3QzIC5sZXZlbDIgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQl9
CisKKwkJI3QzIC5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQl9CisKKwkJI3Q0IC5s
ZXZlbDIgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI3Q0IC5sZXZlbDMgewor
CQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI3Q1IC5sZXZlbDIgeworCQkJbWFyZ2lu
LXRvcDogMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI3Q1IC5sZXZlbDMg
eworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJ
I3Q2IC5sZXZlbDIgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4
OworCQl9CisKKwkJI3Q2IC5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2lu
LWJvdHRvbTogMHB4OworCQl9CisKKwkJI3Q3IC5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMHB4
OworCQl9CisKKwkJI3Q4IC5sZXZlbDMgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisK
KwkJI3Q5IC5sZXZlbDIgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJcGFkZGluZy10b3A6IDMw
cHg7CisJCX0KKworCQkjdDkgLmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCX0KKwor
CQkjdDEwIC5sZXZlbDIgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQkJcGFkZGluZy1ib3R0
b206IDMwcHg7CisJCX0KKworCQkjdDEwIC5sZXZlbDMgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4
OworCQl9CisKKwkJI3QxMSAubGV2ZWwyIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCXBhZGRp
bmctdG9wOiAzMHB4OworCQl9CisKKwkJI3QxMSAubGV2ZWwzIHsKKwkJCW1hcmdpbi10b3A6IDBw
eDsKKwkJfQorCisJCSN0MTEgeworCQkJcGFkZGluZy10b3A6IDI1cHg7CisJCX0KKworCQkjdDEy
IC5sZXZlbDIgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQkJcGFkZGluZy1ib3R0b206IDMw
cHg7CisJCX0KKworCQkjdDEyIC5sZXZlbDMgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9
CisKKwkJI3QxMiB7CisJCQlwYWRkaW5nLWJvdHRvbTogMjBweDsKKwkJfQorCisJCTwvc3R5bGU+
CisJPC9oZWFkPgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBsZW1lbnQgdGhlIC13ZWJraXQt
bWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5kZXJpbmc8L2E+LjwvcD4KKwkJ
PHA+VGhpcyByZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2luZyBiZWhhdmlvciBiZXR3ZWVu
IGEgYm94IGFuZCBpdHMgY29udGFpbmVyIHdoZW4gdXNpbmcgLXdlYmtpdC1tYXJnaW4tY29sbGFw
c2UuPC9wPgorCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorCQkJPGRpdiBpZD0idDEiIGNsYXNz
PSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5QaW5rOiBk
aXNjYXJkIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDIiIGNsYXNzPSJsZXZl
bDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5QaW5rOiBkaXNjYXJk
IGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDMiIGNsYXNzPSJsZXZlbDEi
PjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IGRpc2NhcmQg
dG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0NCIgY2xhc3M9ImxldmVsMSI+PGRp
diBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogZGlzY2FyZCBib3R0
b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQ1IiBjbGFzcz0ibGV2ZWwxIj48ZGl2
IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIHRvcCwg
ZGlzY2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQ2IiBjbGFzcz0i
bGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+UGluazogZGlz
Y2FyZCB0b3AsIGRpc2NhcmQgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0
NyIgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMi
Pk9yYW5nZTogc2VwYXJhdGUgdG9wLCBQaW5rOiBkaXNjYXJkIHRvcDwvZGl2PjwvZGl2PjwvZGl2
PgorCQkJPGRpdiBpZD0idDgiIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRp
diBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IHNlcGFyYXRlIGJvdHRvbSwgUGluazogZGlzY2FyZCBi
b3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJPC9kaXY+CisJCTxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisJCQk8ZGl2IGlkPSJ0OSIgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48
ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogZGlzY2FyZCB0b3AsIFBpbms6IHNlcGFyYXRlIHRv
cDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDEwIiBjbGFzcz0ibGV2ZWwxIj48ZGl2
IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIGJvdHRv
bSwgUGluazogc2VwYXJhdGUgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0
MTEiIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwz
Ij5PcmFuZ2U6IHNlcGFyYXRlIHRvcCwgUGluazogc2VwYXJhdGUgdG9wPC9kaXY+PC9kaXY+PC9k
aXY+CisJCQk8ZGl2IGlkPSJ0MTIiIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+
PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IHNlcGFyYXRlIGJvdHRvbSwgUGluazogc2VwYXJh
dGUgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCTwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWNvbnRhaW5lci5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdp
bi1jb2xsYXBzZS1jb250YWluZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2Q4NmNhNDM5YmYwNjJjZDA5
OWY1ZWYyMmVmNTZhOTZmNmZjZjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1jb250YWluZXIu
aHRtbApAQCAtMCwwICsxLDc4IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYg
eworCQkJbWFyZ2luOiAwcHg7CisJCX0KKworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhp
biBzb2xpZCBibHVlOworCQkJd2lkdGg6IDM1MHB4OworCQkJZmxvYXQ6IGxlZnQ7CisJCX0KKwor
CQkubGV2ZWwxIHsKKwkJCW1hcmdpbi10b3A6IDEwcHg7CisJCQltYXJnaW4tYm90dG9tOiAxMHB4
OworCQkJYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOworCQkJYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47CisJCX0KKworCQkubGV2ZWwyIHsKKwkJCW1hcmdpbi10b3A6IDI1cHg7CisJCQltYXJnaW4t
Ym90dG9tOiAyMHB4OworCQkJYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOworCQl9CisKKwkJLmxl
dmVsMyB7CisJCQltYXJnaW4tdG9wOiAzMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMzBweDsKKwkJ
CWJhY2tncm91bmQtY29sb3I6IHBpbms7CisJCX0KKworCQkuY29sbGFwc2VfdG9wIHsKKwkJCS13
ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogY29sbGFwc2U7CisJCX0KKworCQkuY29sbGFwc2Vf
Ym90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBzZTogY29sbGFwc2U7CisJ
CX0KKworCQkuZGlzY2FyZF90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBk
aXNjYXJkOworCQl9CisKKwkJLmRpc2NhcmRfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJv
dHRvbS1jb2xsYXBzZTogZGlzY2FyZDsKKwkJfQorCisJCS5zZXBhcmF0ZV90b3AgeworCQkJLXdl
YmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBzZXBhcmF0ZTsKKwkJfQorCisJCS5zZXBhcmF0ZV9i
b3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlOiBzZXBhcmF0ZTsKKwkJ
fQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBmb3IgPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2OCI+SW1wbGVtZW50
IHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJlY3QgcmVuZGVyaW5n
PC9hPi48L3A+CisJCTxwPlRoaXMgcmVmIHRlc3QgY292ZXJzIGJhc2ljIGNvbGxhcHNpbmcgYmVo
YXZpb3IgYmV0d2VlbiBhIGJveCBhbmQgaXRzIGNvbnRhaW5lciB3aGVuIHVzaW5nIC13ZWJraXQt
bWFyZ2luLWNvbGxhcHNlLjwvcD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKwkJCTxkaXYg
Y2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMgZGlz
Y2FyZF90b3AiPlBpbms6IGRpc2NhcmQgdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGNs
YXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIGRpc2Nh
cmRfYm90dG9tIj5QaW5rOiBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRp
diBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgZGlzY2FyZF90b3AiPjxkaXYgY2xh
c3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRp
diBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgZGlzY2FyZF9ib3R0b20iPjxkaXYg
Y2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2Pgor
CQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgZGlzY2FyZF90b3AgZGlz
Y2FyZF9ib3R0b20iPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIHRvcCwgZGlz
Y2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRp
diBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMgZGlzY2FyZF90b3AgZGlzY2FyZF9i
b3R0b20iPlBpbms6IGRpc2NhcmQgdG9wLCBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2
PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgc2VwYXJhdGVfdG9w
Ij48ZGl2IGNsYXNzPSJsZXZlbDMgZGlzY2FyZF90b3AiPk9yYW5nZTogc2VwYXJhdGUgdG9wLCBQ
aW5rOiBkaXNjYXJkIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwx
Ij48ZGl2IGNsYXNzPSJsZXZlbDIgc2VwYXJhdGVfYm90dG9tIj48ZGl2IGNsYXNzPSJsZXZlbDMg
ZGlzY2FyZF9ib3R0b20iPk9yYW5nZTogc2VwYXJhdGUgYm90dG9tLCBQaW5rOiBkaXNjYXJkIGJv
dHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQk8L2Rpdj4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIGRpc2NhcmRfdG9w
Ij48ZGl2IGNsYXNzPSJsZXZlbDMgc2VwYXJhdGVfdG9wIj5PcmFuZ2U6IGRpc2NhcmQgdG9wLCBQ
aW5rOiBzZXBhcmF0ZSB0b3A8L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImxldmVs
MSI+PGRpdiBjbGFzcz0ibGV2ZWwyIGRpc2NhcmRfYm90dG9tIj48ZGl2IGNsYXNzPSJsZXZlbDMg
c2VwYXJhdGVfYm90dG9tIj5PcmFuZ2U6IGRpc2NhcmQgYm90dG9tLCBQaW5rOiBzZXBhcmF0ZSBi
b3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFz
cz0ibGV2ZWwyIHNlcGFyYXRlX3RvcCI+PGRpdiBjbGFzcz0ibGV2ZWwzIHNlcGFyYXRlX3RvcCI+
T3JhbmdlOiBzZXBhcmF0ZSB0b3AsIFBpbms6IHNlcGFyYXRlIHRvcDwvZGl2PjwvZGl2PjwvZGl2
PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgc2VwYXJhdGVfYm90
dG9tIj48ZGl2IGNsYXNzPSJsZXZlbDMgc2VwYXJhdGVfYm90dG9tIj5PcmFuZ2U6IHNlcGFyYXRl
IGJvdHRvbSwgUGluazogc2VwYXJhdGUgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCTwvZGl2
PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2lu
LWNvbGxhcHNlLWZsb2F0cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9t
YXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1mbG9hdHMtZXhwZWN0ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42Y2ExZDM5NWQyMTAwN2E5YTBhOTU3ZWFmOWZhM2JhY2NiMTYyMTY3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uv
d2Via2l0LW1hcmdpbi1jb2xsYXBzZS1mbG9hdHMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQx
IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYgeworCQkJbWFyZ2luOiAwcHg7
CisJCX0KKworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhpbiBzb2xpZCBibHVlOworCQkJ
d2lkdGg6IDYwMHB4OworCQl9CisKKwkJI2Zsb2F0IHsKKwkJCWZsb2F0OiBsZWZ0OworCQkJd2lk
dGg6IDIwMHB4OworCQkJaGVpZ2h0OiAyMDBweDsKKwkJCWJhY2tncm91bmQtY29sb3I6IGdyZWVu
OworCQl9CisKKwkJI3BhcmVudCB7CisJCQltYXJnaW4tdG9wOiA1MHB4OworCQl9CisKKwkJI2Nv
bnRlbnQgeworCQkJbWFyZ2luLXRvcDogNTBweDsKKwkJCWNsZWFyOiBsZWZ0OworCQl9CisJCTwv
c3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBsZW1lbnQgdGhlIC13
ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5kZXJpbmc8L2E+Ljwv
cD4KKwkJPHA+VGhpcyByZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2luZyBiZWhhdmlvciB3
aGVuIGEgY2hpbGQgd2l0aCBhIGRpc2NhcmQgdG9wIG1hcmdpbiBpcyBjbGVhcmVkIGFuZCBpdHMg
dG9wIG1hcmdpbiBkb2Vzbid0IGNvbGxhcHNlIHdpdGggdGhlIHRvcCBtYXJnaW4gb2YgdGhlIGNv
bnRhaW5pbmcgYmxvY2sgYW55IG1vcmUuCisJCQlUaGUgdG9wIG1hcmdpbiBvZiB0aGUgY29udGFp
bmluZyBibG9jayBuZWVkcyB0byBiZSByZXN0b3JlZC48L3A+CisJCTxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisJCQk8ZGl2IGlkPSJwYXJlbnQiPgorCQkJCTxkaXYgaWQ9ImZsb2F0Ij48L2Rpdj4K
KwkJCQk8ZGl2IGlkPSJjb250ZW50Ij5DbGFzcyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkIGxp
dG9yYSB0b3JxdWVudCBwZXIgY29udWJpYSBub3N0cmEsIHBlciBpbmNlcHRvcyBoaW1lbmFlb3Mu
IE51bmMgb3JjaSBtYXVyaXMsIHVsdHJpY2VzIG5vbiBibGFuZGl0IG5vbiwgZmVybWVudHVtIGEg
bGliZXJvLiBNb3JiaSBhbnRlIGVsaXQsIGZhdWNpYnVzIHZlbCBkaWduaXNzaW0gcXVpcywgZXVp
c21vZCBhIGFyY3UuIFNlZCB0ZW1wdXMgc3VzY2lwaXQgbnVsbGEsIHZpdGFlIHZhcml1cyBlbGl0
IHN1c2NpcGl0IGV0LiBQZWxsZW50ZXNxdWUgY29uc2VxdWF0IGxvYm9ydGlzIGJsYW5kaXQuIFZp
dmFtdXMgYSB0ZW1wdXMgZGlhbS4gU3VzcGVuZGlzc2UgbnVsbGEgbGVjdHVzLCBjb25zZXF1YXQg
cXVpcyB0ZW1wb3Igdml0YWUsIHBsYWNlcmF0IHNlZCBsb3JlbS4gUGhhc2VsbHVzIGF0IGRvbG9y
IGZlbGlzLCB1dCB1bHRyaWNpZXMgbGFjdXMuIFByYWVzZW50IHZlbCB0dXJwaXMgbGFjdXMuIE5h
bSB1bHRyaWNpZXMgYXVndWUgaW4gZXJhdCBjb25ndWUgYWMgdGVtcG9yIG5lcXVlIGN1cnN1cy48
L2Rpdj4KKwkJCTwvZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJn
aW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1mbG9hdHMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtZmxv
YXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY5YTQ5YTBhZWI0NGViZmFkYzY4NThhMjJiYTk0OWI5MjRh
MmVkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNv
bGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLmh0bWwKQEAgLTAsMCArMSw0NSBA
QAorPGh0bWw+CisJPGhlYWQ+CisJCTxzdHlsZT4KKwkJZGl2IHsKKwkJCW1hcmdpbjogMHB4Owor
CQl9CisKKwkJLmNvbnRhaW5lciB7CisJCQlib3JkZXI6IHRoaW4gc29saWQgYmx1ZTsKKwkJCXdp
ZHRoOiA2MDBweDsKKwkJfQorCisJCS5kaXNjYXJkX3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10
b3AtY29sbGFwc2U6IGRpc2NhcmQ7CisJCX0KKworCQkjZmxvYXQgeworCQkJZmxvYXQ6IGxlZnQ7
CisJCQl3aWR0aDogMjAwcHg7CisJCQloZWlnaHQ6IDIwMHB4OworCQkJYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW47CisJCX0KKworCQkjcGFyZW50IHsKKwkJCW1hcmdpbi10b3A6IDUwcHg7CisJCX0K
KworCQkjY29udGVudCB7CisJCQltYXJnaW4tdG9wOiA1MHB4OworCQkJY2xlYXI6IGxlZnQ7CisJ
CX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxwPlRlc3QgZm9yIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNjgiPkltcGxlbWVu
dCB0aGUgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmlu
ZzwvYT4uPC9wPgorCQk8cD5UaGlzIHJlZiB0ZXN0IGNvdmVycyBiYXNpYyBjb2xsYXBzaW5nIGJl
aGF2aW9yIHdoZW4gYSBjaGlsZCB3aXRoIGEgZGlzY2FyZCB0b3AgbWFyZ2luIGlzIGNsZWFyZWQg
YW5kIGl0cyB0b3AgbWFyZ2luIGRvZXNuJ3QgY29sbGFwc2Ugd2l0aCB0aGUgdG9wIG1hcmdpbiBv
ZiB0aGUgY29udGFpbmluZyBibG9jayBhbnkgbW9yZS4KKwkJCVRoZSB0b3AgbWFyZ2luIG9mIHRo
ZSBjb250YWluaW5nIGJsb2NrIG5lZWRzIHRvIGJlIHJlc3RvcmVkLjwvcD4KKwkJPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKwkJCTxkaXYgaWQ9InBhcmVudCI+CisJCQkJPGRpdiBpZD0iZmxvYXQi
PjwvZGl2PgorCQkJCTxkaXYgaWQ9ImNvbnRlbnQiIGNsYXNzPSJkaXNjYXJkX3RvcCI+Q2xhc3Mg
YXB0ZW50IHRhY2l0aSBzb2Npb3NxdSBhZCBsaXRvcmEgdG9ycXVlbnQgcGVyIGNvbnViaWEgbm9z
dHJhLCBwZXIgaW5jZXB0b3MgaGltZW5hZW9zLiBOdW5jIG9yY2kgbWF1cmlzLCB1bHRyaWNlcyBu
b24gYmxhbmRpdCBub24sIGZlcm1lbnR1bSBhIGxpYmVyby4gTW9yYmkgYW50ZSBlbGl0LCBmYXVj
aWJ1cyB2ZWwgZGlnbmlzc2ltIHF1aXMsIGV1aXNtb2QgYSBhcmN1LiBTZWQgdGVtcHVzIHN1c2Np
cGl0IG51bGxhLCB2aXRhZSB2YXJpdXMgZWxpdCBzdXNjaXBpdCBldC4gUGVsbGVudGVzcXVlIGNv
bnNlcXVhdCBsb2JvcnRpcyBibGFuZGl0LiBWaXZhbXVzIGEgdGVtcHVzIGRpYW0uIFN1c3BlbmRp
c3NlIG51bGxhIGxlY3R1cywgY29uc2VxdWF0IHF1aXMgdGVtcG9yIHZpdGFlLCBwbGFjZXJhdCBz
ZWQgbG9yZW0uIFBoYXNlbGx1cyBhdCBkb2xvciBmZWxpcywgdXQgdWx0cmljaWVzIGxhY3VzLiBQ
cmFlc2VudCB2ZWwgdHVycGlzIGxhY3VzLiBOYW0gdWx0cmljaWVzIGF1Z3VlIGluIGVyYXQgY29u
Z3VlIGFjIHRlbXBvciBuZXF1ZSBjdXJzdXMuPC9kaXY+CisJCQk8L2Rpdj4KKwkJPC9kaXY+CisJ
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29s
bGFwc2Utc2libGluZ3MtYnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2sv
bWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYjUzZDI1OGY3OGRkZmY0M2VmMDkyZjc1ZWNjN2I0YmI3M2E5
ZTIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29s
bGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1idC1leHBlY3RlZC5odG1sCkBA
IC0wLDAgKzEsOTUgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8c3R5bGU+CisJCWRpdiB7CisJCQlt
YXJnaW46IDBweDsKKwkJfQorCisJCS5jb250YWluZXIgeworCQkJYm9yZGVyOiB0aGluIHNvbGlk
IGJsdWU7CisJCQl3aWR0aDogMzAwcHg7CisJCX0KKworCQkuYmxvY2sgeworCQkJYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47CisJCQltYXJnaW4tdG9wOiA0cHg7CisJCQltYXJnaW4tYm90dG9tOiA2
cHg7CisJCQlib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7CisJCQktd2Via2l0LXdyaXRpbmctbW9k
ZTogaG9yaXpvbnRhbC1idDsKKwkJfQorCisJCS5jb2xsYXBzZV90b3A6YmVmb3JlLCAuY29sbGFw
c2VfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJDb2xsYXBzZSI7CisJCX0KKworCQkuZGlz
Y2FyZF90b3A6YmVmb3JlLCAuZGlzY2FyZF9ib3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIkRp
c2NhcmQiOworCQl9CisKKwkJLnNlcGFyYXRlX3RvcDpiZWZvcmUsIC5zZXBhcmF0ZV9ib3R0b206
YWZ0ZXIgeworCQkJY29udGVudDogIlNlcGFyYXRlIjsKKwkJfQorCisJCSNiMiB7CisJCQltYXJn
aW4tdG9wOiA2cHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjYjMgeworCQkJ
bWFyZ2luLXRvcDogNnB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI2I0IHsK
KwkJCW1hcmdpbi10b3A6IDZweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNi
NSB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKwor
CQkjYjYgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9
CisKKwkJI2I3IHsKKwkJCW1hcmdpbi10b3A6IDE0cHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7
CisJCX0KKworCQkjYjggeworCQkJbWFyZ2luLXRvcDogNHB4OworCQkJbWFyZ2luLWJvdHRvbTog
MHB4OworCQl9CisKKwkJI2I5IHsKKwkJCW1hcmdpbi10b3A6IDEwcHg7CisJCQltYXJnaW4tYm90
dG9tOiAxMHB4OworCQl9CisKKwkJI2IxMCB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJn
aW4tYm90dG9tOiAwcHg7CisJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxw
PlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDgxNjgiPkltcGxlbWVudCB0aGUgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGll
cyBjb3JyZWN0IHJlbmRlcmluZzwvYT4uPC9wPgorCQk8cD5UaGlzIHJlZiB0ZXN0IGNvdmVycyBi
YXNpYyBjb2xsYXBzaW5nIGJlaGF2aW9yIGJldHdlZW4gc2libGluZyBib3hlcyB3aGVuIHVzaW5n
IC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlLiBUaGUgYmxvY2tzIGhhdmUgbHItYnQgd3JpdGluZyBt
b2RlLjwvcD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKwkJCTxkaXYgaWQ9ImIxIiBjbGFz
cz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxk
aXYgaWQ9ImIyIiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJy
Lz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImIzIiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIGNvbGxh
cHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI0IiBjbGFzcz0iYmxvY2sgZGlz
Y2FyZF90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiNSIgY2xh
c3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxk
aXYgaWQ9ImI2IiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIv
PjwvZGl2PgorCQkJPGRpdiBpZD0iYjciIGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBzZXBhcmF0
ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiOCIgY2xhc3M9ImJsb2NrIGNvbGxh
cHNlX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiOSIgY2xh
c3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8
ZGl2IGlkPSJiMTAiIGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxi
ci8+PC9kaXY+CisJCTwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xs
YXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWJ0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxp
bmdzLWJ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhhMzBlMWEzMmRkOGIwZTRkNWU2MzkzOWY4YTBkYjRj
Njk1NDFlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2lu
LWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQuaHRtbApAQCAtMCww
ICsxLDg5IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYgeworCQkJbWFyZ2lu
OiAwcHg7CisJCX0KKworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhpbiBzb2xpZCBibHVl
OworCQkJd2lkdGg6IDMwMHB4OworCQl9CisKKwkJLmJsb2NrIHsKKwkJCWJhY2tncm91bmQtY29s
b3I6IGdyZWVuOworCQkJbWFyZ2luLXRvcDogNHB4OworCQkJbWFyZ2luLWJvdHRvbTogNnB4Owor
CQkJYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOworCQkJLXdlYmtpdC13cml0aW5nLW1vZGU6IGhv
cml6b250YWwtYnQ7CisJCX0KKworCQkuc2VsZl9jb2xsYXBzZSB7CisJCQltYXJnaW4tdG9wOiAy
cHg7CisJCQltYXJnaW4tYm90dG9tOiA0cHg7CisJCQloZWlnaHQ6IDBweDsKKwkJfQorCisJCS5j
b2xsYXBzZV90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBjb2xsYXBzZTsK
KwkJfQorCisJCS5jb2xsYXBzZV9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNv
bGxhcHNlOiBjb2xsYXBzZTsKKwkJfQorCisJCS5jb2xsYXBzZV90b3A6YmVmb3JlLCAuY29sbGFw
c2VfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJDb2xsYXBzZSI7CisJCX0KKworCQkuZGlz
Y2FyZF90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBkaXNjYXJkOworCQl9
CisKKwkJLmRpc2NhcmRfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBz
ZTogZGlzY2FyZDsKKwkJfQorCisJCS5kaXNjYXJkX3RvcDpiZWZvcmUsIC5kaXNjYXJkX2JvdHRv
bTphZnRlciB7CisJCQljb250ZW50OiAiRGlzY2FyZCI7CisJCX0KKworCQkuc2VwYXJhdGVfdG9w
IHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogc2VwYXJhdGU7CisJCX0KKworCQku
c2VwYXJhdGVfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBzZTogc2Vw
YXJhdGU7CisJCX0KKworCQkuc2VwYXJhdGVfdG9wOmJlZm9yZSwgLnNlcGFyYXRlX2JvdHRvbTph
ZnRlciB7CisJCQljb250ZW50OiAiU2VwYXJhdGUiOworCQl9CisJCTwvc3R5bGU+CisJPC9oZWFk
PgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBsZW1lbnQgdGhlIC13ZWJraXQtbWFyZ2luLWNv
bGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5kZXJpbmc8L2E+LjwvcD4KKwkJPHA+VGhpcyBy
ZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2luZyBiZWhhdmlvciBiZXR3ZWVuIHNpYmxpbmcg
Ym94ZXMgd2hlbiB1c2luZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS4gVGhlIGJsb2NrcyBoYXZl
IGxyLWJ0IHdyaXRpbmcgbW9kZS48L3A+CisJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisJCQk8
ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2
PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJi
bG9jayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBj
bGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBzZXBhcmF0
ZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9j
b2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBkaXNjYXJk
X2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2
PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIv
PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNs
YXNzPSJibG9jayBzZXBhcmF0ZV90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8
ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGRp
c2NhcmRfdG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNl
bGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIHNl
cGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2Ui
PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIHNlcGFyYXRlX2JvdHRv
bSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJ
PGRpdiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2
PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Vi
a2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5n
cy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyZmQyOTNlNDczMjYyOTBiMGFiMjIwZmVkZGJj
ZjE2ZDAyNGM5YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21h
cmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSw5MyBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTxzdHlsZT4KKwkJZGl2IHsK
KwkJCW1hcmdpbjogMHB4OworCQl9CisKKwkJLmNvbnRhaW5lciB7CisJCQlib3JkZXI6IHRoaW4g
c29saWQgYmx1ZTsKKwkJCXdpZHRoOiAzMDBweDsKKwkJfQorCisJCS5ibG9jayB7CisJCQliYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKKwkJCW1hcmdpbi10b3A6IDRweDsKKwkJCW1hcmdpbi1ib3R0
b206IDZweDsKKwkJCWJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKKwkJfQorCisJCS5jb2xsYXBz
ZV90b3A6YmVmb3JlLCAuY29sbGFwc2VfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJDb2xs
YXBzZSI7CisJCX0KKworCQkuZGlzY2FyZF90b3A6YmVmb3JlLCAuZGlzY2FyZF9ib3R0b206YWZ0
ZXIgeworCQkJY29udGVudDogIkRpc2NhcmQiOworCQl9CisKKwkJLnNlcGFyYXRlX3RvcDpiZWZv
cmUsIC5zZXBhcmF0ZV9ib3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIlNlcGFyYXRlIjsKKwkJ
fQorCisJCSNiMiB7CisJCQltYXJnaW4tdG9wOiA2cHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7
CisJCX0KKworCQkjYjMgeworCQkJbWFyZ2luLXRvcDogMTBweDsKKwkJCW1hcmdpbi1ib3R0b206
IDBweDsKKwkJfQorCisJCSNiNCB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90
dG9tOiAwcHg7CisJCX0KKworCQkjYjUgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2lu
LWJvdHRvbTogMHB4OworCQl9CisKKwkJI2I2IHsKKwkJCW1hcmdpbi10b3A6IDRweDsKKwkJCW1h
cmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNiNyB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJ
CQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjYjggeworCQkJbWFyZ2luLXRvcDogMTBw
eDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNiOSB7CisJCQltYXJnaW4tdG9w
OiAxNHB4OworCQkJbWFyZ2luLWJvdHRvbTogNnB4OworCQl9CisKKwkJI2IxMCB7CisJCQltYXJn
aW4tdG9wOiAwcHg7CisJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxwPlRl
c3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDgxNjgiPkltcGxlbWVudCB0aGUgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBj
b3JyZWN0IHJlbmRlcmluZzwvYT4uPC9wPgorCQk8cD5UaGlzIHJlZiB0ZXN0IGNvdmVycyBiYXNp
YyBjb2xsYXBzaW5nIGJlaGF2aW9yIGJldHdlZW4gc2libGluZyBib3hlcyB3aGVuIHVzaW5nIC13
ZWJraXQtbWFyZ2luLWNvbGxhcHNlLiBUaGUgYmxvY2tzIGhhdmUgbHItdGIgd3JpdGluZyBtb2Rl
LjwvcD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKwkJCTxkaXYgaWQ9ImIxIiBjbGFzcz0i
YmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYg
aWQ9ImIyIiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48
L2Rpdj4KKwkJCTxkaXYgaWQ9ImIzIiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIGNvbGxhcHNl
X2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI0IiBjbGFzcz0iYmxvY2sgZGlzY2Fy
ZF90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiNSIgY2xhc3M9
ImJsb2NrIGNvbGxhcHNlX3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYg
aWQ9ImI2IiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIvPjwv
ZGl2PgorCQkJPGRpdiBpZD0iYjciIGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBzZXBhcmF0ZV9i
b3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiOCIgY2xhc3M9ImJsb2NrIGNvbGxhcHNl
X3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiOSIgY2xhc3M9
ImJsb2NrIHNlcGFyYXRlX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2
IGlkPSJiMTAiIGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+
PC9kaXY+CisJCTwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBz
ZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWI2Y2Q4ODEyZjgzYzEzNmQ1NmFhNmUwYTk2YWM2YjdiMDBmOTFjZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNl
L3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MuaHRtbApAQCAtMCwwICsxLDg4IEBACis8
aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYgeworCQkJbWFyZ2luOiAwcHg7CisJCX0K
KworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhpbiBzb2xpZCBibHVlOworCQkJd2lkdGg6
IDMwMHB4OworCQl9CisKKwkJLmJsb2NrIHsKKwkJCWJhY2tncm91bmQtY29sb3I6IGdyZWVuOwor
CQkJbWFyZ2luLXRvcDogNHB4OworCQkJbWFyZ2luLWJvdHRvbTogNnB4OworCQkJYm9yZGVyOiAx
cHggZGFzaGVkIGJsYWNrOworCQl9CisKKwkJLnNlbGZfY29sbGFwc2UgeworCQkJbWFyZ2luLXRv
cDogMnB4OworCQkJbWFyZ2luLWJvdHRvbTogNHB4OworCQkJaGVpZ2h0OiAwcHg7CisJCX0KKwor
CQkuY29sbGFwc2VfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogY29sbGFw
c2U7CisJCX0KKworCQkuY29sbGFwc2VfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRv
bS1jb2xsYXBzZTogY29sbGFwc2U7CisJCX0KKworCQkuY29sbGFwc2VfdG9wOmJlZm9yZSwgLmNv
bGxhcHNlX2JvdHRvbTphZnRlciB7CisJCQljb250ZW50OiAiQ29sbGFwc2UiOworCQl9CisKKwkJ
LmRpc2NhcmRfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogZGlzY2FyZDsK
KwkJfQorCisJCS5kaXNjYXJkX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdpbi1ib3R0b20tY29s
bGFwc2U6IGRpc2NhcmQ7CisJCX0KKworCQkuZGlzY2FyZF90b3A6YmVmb3JlLCAuZGlzY2FyZF9i
b3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIkRpc2NhcmQiOworCQl9CisKKwkJLnNlcGFyYXRl
X3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IHNlcGFyYXRlOworCQl9CisK
KwkJLnNlcGFyYXRlX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdpbi1ib3R0b20tY29sbGFwc2U6
IHNlcGFyYXRlOworCQl9CisKKwkJLnNlcGFyYXRlX3RvcDpiZWZvcmUsIC5zZXBhcmF0ZV9ib3R0
b206YWZ0ZXIgeworCQkJY29udGVudDogIlNlcGFyYXRlIjsKKwkJfQorCQk8L3N0eWxlPgorCTwv
aGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2OCI+SW1wbGVtZW50IHRoZSAtd2Via2l0LW1hcmdp
bi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJlY3QgcmVuZGVyaW5nPC9hPi48L3A+CisJCTxwPlRo
aXMgcmVmIHRlc3QgY292ZXJzIGJhc2ljIGNvbGxhcHNpbmcgYmVoYXZpb3IgYmV0d2VlbiBzaWJs
aW5nIGJveGVzIHdoZW4gdXNpbmcgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UuIFRoZSBibG9ja3Mg
aGF2ZSBsci10YiB3cml0aW5nIG1vZGUuPC9wPgorCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
CQkJPGRpdiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48
L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFz
cz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxk
aXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgc2Vw
YXJhdGVfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNl
bGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3AgZGlz
Y2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48
L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBkaXNjYXJkX2JvdHRvbSI+
PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRp
diBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIvPjwvZGl2Pgor
CQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9j
ayBkaXNjYXJkX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNz
PSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3Rv
cCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxh
cHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBzZXBhcmF0ZV9i
b3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4K
KwkJCTxkaXYgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48
L2Rpdj4KKwkJPC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186898</attachid>
            <date>2013-02-06 12:39:30 -0800</date>
            <delta_ts>2013-02-07 07:15:06 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>b108168v2.patch</filename>
            <type>text/plain</type>
            <size>60764</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmY2Q1Yzg5ZjlmYmNj
N2RlZjllNDNlNmMzYTVmMjViZmViNzcwNC4uNGEwNmMxY2M1ZTgyMjQ1ZDhjNDJjOWFkOTI2ZTZh
NWVkMDI4ODJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEzLTAyLTA2ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgLXdl
YmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHBhdGNoIGltcGxl
bWVudHMgdGhlIGNvcnJlY3QgYmVoYXZpb3IgZm9yIHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBz
ZSBwcm9wZXJ0aWVzOgorICAgICAgICAtIGEgdmFsdWUgb2YgImRpc2NhcmQiIG9uIGEgbWFyZ2lu
IHdpbGwgdHJ1bmNhdGUgYWxsIHRoZSBtYXJnaW5zIGNvbGxhcHNpbmcgd2l0aCBpdDsKKyAgICAg
ICAgLSBhIHZhbHVlIG9mICJzZXBhcmF0ZSIgd2lsbCBwcmV2ZW50IHRoZSBtYXJnaW4gdG8gY29s
bGFwc2U7CisgICAgICAgIC0gYSB2YWx1ZSBvZiAiY29sbGFwc2UiIGlzIHRoZSBkZWZhdWx0IGNv
bGxhcHNlIGJlaGF2aW9yLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhd2FyZSBv
ZiBtdWx0aXBsZSB3cml0aW5nLW1vZGVzOgorICAgICAgICAtIGlmIHRoZSB3cml0aW5nIG1vZGUg
b2YgYSBjaGlsZCBpcyBwYXJhbGxlbCB3aXRoIHRoZSB3cml0aW5nIG1vZGUgb2YgdGhlIGNvbnRh
aW5lciBhbmQgaGFzIHRoZSBzYW1lIGRpcmVjdGlvbiwKKyAgICAgICAgdGhlIC13ZWJraXQtbWFy
Z2luLWNvbGxhcHNlIHByb3BlcnRpZXMgb24gdGhlIGNoaWxkIGFyZSBsZWZ0IGFzIGlzOworICAg
ICAgICAtIGlmIHRoZSB3cml0aW5nIG1vZGUgb2YgYSBjaGlsZCBpcyBwYXJhbGxlbCB3aXRoIHRo
ZSB3cml0aW5nIG1vZGUgb2YgdGhlIGNvbnRhaW5lciBidXQgaGFzIGEgZGlmZmVyZW50IGRpcmVj
dGlvbiwKKyAgICAgICAgdGhlIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgb24g
dGhlIGNoaWxkIGFyZSByZXZlcnNlZDsKKyAgICAgICAgLSBpZiB0aGUgd3JpdGluZyBtb2RlIG9m
IGEgY2hpbGQgaXMgcGVycGVuZGljdWxhciBvbiB0aGUgd3JpdGluZyBtb2RlIG9mIHRoZSBjb250
YWluZXIsCisgICAgICAgIHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIG9u
IHRoZSBjaGlsZCBhcmUgaWdub3JlZDsKKworICAgICAgICBJLiBUaGUgImRpc2NhcmQiIHZhbHVl
IGltcGxlbWVudGF0aW9uCisgICAgICAgIFRoZXJlIGFyZSB0d28gbmV3IGJpdHMgKGJlZm9yZSBh
bmQgYWZ0ZXIpIGFkZGVkIG9uIHRoZSBSZW5kZXJCbG9ja1JhcmVEYXRhIHN0cnVjdHVyZSBzcGVj
aWZ5aW5nIGlmIHRoZSBtYXJnaW5zCisgICAgICAgIG9mIHRoZSBibG9jayB3aWxsIGJlIGRpc2Nh
cmRlZCBvciBub3QuIFdlIGNhbid0IHJlbHkgb25seSBvbiB0aGUgdmFsdWUgZnJvbSBzdHlsZSgp
IGJlY2F1c2UKKyAgICAgICAgaXQncyBwb3NzaWJsZSBhIGJsb2NrIHRvIGRpc2NhcmQgaXQncyBt
YXJnaW5zIGJlY2F1c2UgaXQgaGFzIGNvbGxhcHNlZCB3aXRoIGEgY2hpbGRyZW4gdGhhdAorICAg
ICAgICBzcGVjaWZpZWQgImRpc2NhcmQiIGZvciAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS4gSG93
ZXZlciwgdGhlIGJpdHMgYXJlIHNldCBvbmx5IGlmIGl0IGlzCisgICAgICAgIHJlcXVpcmVkLgor
ICAgICAgICBBbm90aGVyIGJpdCBpcyBhZGRlZCBvbiB0aGUgTWFyZ2luSW5mbyBzdHJ1Y3R1cmUg
c3BlY2lmeWluZyBpZiB0aGUgbWFyZ2luIGhhcyB0byBiZSBkaXNjYXJkZWQgb3Igbm90LiBXaGVu
CisgICAgICAgIGNvbGxhcHNpbmcgYXQgdGhlIGJlZm9yZSBzaWRlIG9mIGEgYmxvY2sgaXQgd2ls
bCBob2xkIGluZm9ybWF0aW9uIGlmIHRoZSBjb250YWluZXIgYmxvY2sgbmVlZHMgdG8gZGlzY2Fy
ZAorICAgICAgICBvciBub3QuIElmIHRoZSBjb2xsYXBzaW5nIGhhcHBlbnMgYmV0d2VlbiBzaWJs
aW5ncy93aXRoIGFmdGVyIHNpZGUgb2YgdGhlIGNvbnRhaW5lciBpdCB3aWxsIHRlbGwgaWYgdGhl
IHByZXZpb3VzCisgICAgICAgIGNoaWxkIGRpc2NhcmRzIHRoZSBtYXJnaW4gb3Igbm90LiBUaGUg
c2VsZiBjb2xsYXBzaW5nIGJsb2NrcyBhcmUgYSBzcGVjaWFsIGNhc2UuIElmIGFueSBvZiBpdHMg
bWFyZ2lucworICAgICAgICBkaXNjYXJkcyB0aGVuIGJvdGggaXRzIG1hcmdpbnMgZGlzY2FyZCBh
bmQgYWxsIHRoZSBvdGhlciBtYXJnaW5zIGNvbGxhcHNpbmcgd2l0aCBpdC4KKyAgICAgICAgVG8g
ZW5zdXJlIGFuIG9wdGltYWwgYmVoYXZpb3IgaXQgaXMgYXNzZXJ0ZWQgbWFyZ2luIHZhbHVlcyBj
YW4ndCBiZSBzZXQgb24gdGhlIE1hcmdpbkluZm8gb2JqZWN0IGlmIHRoZQorICAgICAgICBkaXNj
YXJkIGZsYWcgaXMgYWN0aXZlLiBJZiB0aGlzIGhhcHBlbnMgaXQgbWF5IGluZGljYXRlIHNvbWVv
bmUgaWdub3JlZCB0aGUgcG9zc2liaWxpdHkgb2YgdGhlIG1hcmdpbiBiZWluZworICAgICAgICBk
aXNjYXJkZWQgYWx0b2dldGhlciBhbmQgaW5jb3JyZWN0bHkgdXBkYXRlZCB0aGUgbWFyZ2luIHZh
bHVlcy4KKyAgICAgICAgRmxvYXQgY2xlYXJpbmcgYWxzbyBuZWVkcyB0byBjaGFuZ2UgYmVjYXVz
ZSBpdCBtYXkgZm9yY2UgbWFyZ2lucyB0byBzdG9wIGNvbGxhcHNpbmcuIElmIHRoaXMgaGFwcGVu
cyB0aGUgZGlzY2FyZAorICAgICAgICBmbGFncyBhbmQgbWFyZ2lucyBuZWVkcyB0byBiZSByZXN0
b3JlZCB0byB0aGVpciB2YWx1ZXMgYmVmb3JlIHRoZSBjb2xsYXBzZS4KKworICAgICAgICBJSS4g
VGhlICJzZXBhcmF0ZSIgdmFsdWUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgVGhlIGltcGxlbWVu
dGF0aW9uIGZvciBzZXBhcmF0ZSB3YXMgbm90IGNoYW5nZWQgdG9vIG11Y2guIEkndmUgYWRkZWQg
bmV3IGFjY2Vzc29yIG1ldGhvZHMgZm9yIHRoZSBwcm9wZXJ0eQorICAgICAgICB0aGF0IHRha2Ug
d3JpdGluZyBtb2RlIGludG8gY29uc2lkZXJhdGlvbiBhbmQgSSd2ZSByZW1vdmVkIHNvbWUgY29k
ZSB0aGF0IGRpZG4ndCB3b3JrIGNvcnJlY3RseSBpbiBsYXlvdXRCbG9ja0NoaWxkLgorICAgICAg
ICBUaGUgcHJvYmxlbSB3YXMgdGhlIG1hcmdpbkluZm8gc3RydWN0dXJlIHdhcyBjbGVhcmVkIGlm
IHRoZSBjaGlsZCB3YXMgc3BlY2lmeWluZyB0aGUgInNlcGFyYXRlIiB2YWx1ZSBmb3IgYmVmb3Jl
LgorICAgICAgICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgeW91IGxvc2UgdGhlIG1hcmdpbiBpbmZv
cm1hdGlvbiBvZiB0aGUgcHJldmlvdXMgY2hpbGQvYmVmb3JlIHNpZGUuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29u
dGFpbmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dl
YmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvYmxv
Y2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdp
bi1jb2xsYXBzZS1zaWJsaW5ncy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1hcmdpbkluZm86Ok1hcmdp
bkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNsZWFyRmxvYXRzSWZOZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUVzdGltYXRlRm9yQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmVzdGltYXRlTG9naWNhbFRvcFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzZXRDb2xsYXBzZWRCb3R0b21NYXJnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmhhbmRsZUFmdGVyU2lkZU9mQmxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE11c3REaXNjYXJkTWFyZ2luQmVmb3JlKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE11c3RE
aXNjYXJkTWFyZ2luQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Om11c3RE
aXNjYXJkTWFyZ2luQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0
RGlzY2FyZE1hcmdpbkFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0
RGlzY2FyZE1hcmdpbkJlZm9yZUZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjptdXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6Om11c3RTZXBhcmF0ZU1hcmdpbkJlZm9yZUZvckNoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0U2VwYXJhdGVNYXJnaW5BZnRlckZvckNoaWxkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFJlbmRlckJsb2Nr
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbml0TWF4TWFyZ2luVmFsdWVzKToK
KyAgICAgICAgKE1hcmdpbkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1h
cmdpbkluZm86OnNldFBvc2l0aXZlTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpNYXJnaW5JbmZvOjpzZXROZWdhdGl2ZU1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0UG9zaXRpdmVNYXJnaW5JZkxhcmdlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0TmVnYXRpdmVNYXJnaW5J
Zkxhcmdlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0
TWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpzZXRD
YW5Db2xsYXBzZU1hcmdpbkFmdGVyV2l0aENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpNYXJnaW5JbmZvOjpzZXREaXNjYXJkTWFyZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpkaXNjYXJkTWFyZ2luKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRhOjpSZW5kZXJCbG9ja1JhcmVE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRh
Ojpwb3NpdGl2ZU1hcmdpbkJlZm9yZURlZmF1bHQpOgorICAgICAgICAoUmVuZGVyQmxvY2tSYXJl
RGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKIDIwMTMt
MDItMDYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGlt
aXplIEdseXBoUGFnZSBmb3IgY2FzZSB3aGVyZSBhbGwgZ2x5cGhzIGFyZSBhdmFpbGFibGUgaW4g
dGhlIHNhbWUgZm9udC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmlu
ZGV4IDVhNGE4M2Q5NTk0MjU3MzRiMjY2MTQ0NzRlM2RjZDc2ZTBkMDQ3YjEuLjlkNzBmMTBkOTlk
OTQ4ZWVlMzMwYjllNzdjY2M3YjQyMTczZGIzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcApAQCAtMTY5LDYgKzE2OSw3IEBAIFJlbmRlckJsb2NrOjpNYXJnaW5J
bmZvOjpNYXJnaW5JbmZvKFJlbmRlckJsb2NrKiBibG9jaywgTGF5b3V0VW5pdCBiZWZvcmVCb3Jk
ZXJQCiAgICAgLCBtX21hcmdpbkJlZm9yZVF1aXJrKGZhbHNlKQogICAgICwgbV9tYXJnaW5BZnRl
clF1aXJrKGZhbHNlKQogICAgICwgbV9kZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsoZmFsc2Up
CisgICAgLCBtX2Rpc2NhcmRNYXJnaW4oZmFsc2UpCiB7CiAgICAgUmVuZGVyU3R5bGUqIGJsb2Nr
U3R5bGUgPSBibG9jay0+c3R5bGUoKTsKICAgICBBU1NFUlQoYmxvY2stPmlzUmVuZGVyVmlldygp
IHx8IGJsb2NrLT5wYXJlbnQoKSk7CkBAIC0xODYsMTEgKzE4NywxMiBAQCBSZW5kZXJCbG9jazo6
TWFyZ2luSW5mbzo6TWFyZ2luSW5mbyhSZW5kZXJCbG9jayogYmxvY2ssIExheW91dFVuaXQgYmVm
b3JlQm9yZGVyUAogICAgIG1fY2FuQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhDaGlsZHJlbiA9IG1f
Y2FuQ29sbGFwc2VXaXRoQ2hpbGRyZW4gJiYgKGFmdGVyQm9yZGVyUGFkZGluZyA9PSAwKSAmJgog
ICAgICAgICAoYmxvY2tTdHlsZS0+bG9naWNhbEhlaWdodCgpLmlzQXV0bygpICYmICFibG9ja1N0
eWxlLT5sb2dpY2FsSGVpZ2h0KCkudmFsdWUoKSkgJiYgYmxvY2tTdHlsZS0+bWFyZ2luQWZ0ZXJD
b2xsYXBzZSgpICE9IE1TRVBBUkFURTsKICAgICAKLSAgICBtX3F1aXJrQ29udGFpbmVyID0gYmxv
Y2stPmlzVGFibGVDZWxsKCkgfHwgYmxvY2stPmlzQm9keSgpIHx8IGJsb2NrU3R5bGUtPm1hcmdp
bkJlZm9yZUNvbGxhcHNlKCkgPT0gTURJU0NBUkQKLSAgICAgICAgfHwgYmxvY2tTdHlsZS0+bWFy
Z2luQWZ0ZXJDb2xsYXBzZSgpID09IE1ESVNDQVJEOworICAgIG1fcXVpcmtDb250YWluZXIgPSBi
bG9jay0+aXNUYWJsZUNlbGwoKSB8fCBibG9jay0+aXNCb2R5KCk7CiAKLSAgICBtX3Bvc2l0aXZl
TWFyZ2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiA/IGJsb2NrLT5t
YXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpIDogTGF5b3V0VW5pdCgpOwotICAgIG1fbmVnYXRpdmVN
YXJnaW4gPSBtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aENoaWxkcmVuID8gYmxvY2stPm1h
eE5lZ2F0aXZlTWFyZ2luQmVmb3JlKCkgOiBMYXlvdXRVbml0KCk7CisgICAgbV9kaXNjYXJkTWFy
Z2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiAmJiBibG9jay0+bXVz
dERpc2NhcmRNYXJnaW5CZWZvcmUoKTsKKworICAgIG1fcG9zaXRpdmVNYXJnaW4gPSAobV9jYW5D
b2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiAmJiAhYmxvY2stPm11c3REaXNjYXJkTWFy
Z2luQmVmb3JlKCkpID8gYmxvY2stPm1heFBvc2l0aXZlTWFyZ2luQmVmb3JlKCkgOiBMYXlvdXRV
bml0KCk7CisgICAgbV9uZWdhdGl2ZU1hcmdpbiA9IChtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3Jl
V2l0aENoaWxkcmVuICYmICFibG9jay0+bXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKSkgPyBibG9j
ay0+bWF4TmVnYXRpdmVNYXJnaW5CZWZvcmUoKSA6IExheW91dFVuaXQoKTsKIH0KIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTUyNiw4ICsx
NTI4LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxk
cmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gKICAgICBpZiAoIWlzQ2VsbCkgewogICAg
ICAgICBpbml0TWF4TWFyZ2luVmFsdWVzKCk7CiAgICAgICAgIAotICAgICAgICBzZXRNYXJnaW5C
ZWZvcmVRdWlyayhzdHlsZVRvVXNlLT5tYXJnaW5CZWZvcmUoKS5xdWlyaygpKTsKLSAgICAgICAg
c2V0TWFyZ2luQWZ0ZXJRdWlyayhzdHlsZVRvVXNlLT5tYXJnaW5BZnRlcigpLnF1aXJrKCkpOwor
ICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayhzdHlsZVRvVXNlLT5pc01hcmdpbkJlZm9yZVF1
aXJrKCkpOworICAgICAgICBzZXRNYXJnaW5BZnRlclF1aXJrKHN0eWxlVG9Vc2UtPmlzTWFyZ2lu
QWZ0ZXJRdWlyaygpKTsKICAgICAgICAgc2V0UGFnaW5hdGlvblN0cnV0KDApOwogICAgIH0KIApA
QCAtMTk1Nyw2ICsxOTU5LDEzIEBAIHZvaWQgUmVuZGVyQmxvY2s6Om1vdmVSdW5JblRvT3JpZ2lu
YWxQb3NpdGlvbihSZW5kZXJPYmplY3QqIHJ1bkluKQogCiBMYXlvdXRVbml0IFJlbmRlckJsb2Nr
Ojpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5m
bykKIHsKKyAgICBib29sIGNoaWxkRGlzY2FyZE1hcmdpbkJlZm9yZSA9IG11c3REaXNjYXJkTWFy
Z2luQmVmb3JlRm9yQ2hpbGQoY2hpbGQpOworICAgIGJvb2wgY2hpbGREaXNjYXJkTWFyZ2luQWZ0
ZXIgPSBtdXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQoY2hpbGQpOworICAgIGJvb2wgY2hp
bGRJc1NlbGZDb2xsYXBzaW5nID0gY2hpbGQtPmlzU2VsZkNvbGxhcHNpbmdCbG9jaygpOworCisg
ICAgLy8gVGhlIGNoaWxkIGRpc2NhcmRzIHRoZSBiZWZvcmUgbWFyZ2luIHdoZW4gdGhlIHRoZSBh
ZnRlciBtYXJnaW4gaGFzIGRpc2NhcmQgaW4gdGhlIGNhc2Ugb2YgYSBzZWxmIGNvbGxhcHNpbmcg
YmxvY2suCisgICAgY2hpbGREaXNjYXJkTWFyZ2luQmVmb3JlID0gY2hpbGREaXNjYXJkTWFyZ2lu
QmVmb3JlIHx8IChjaGlsZERpc2NhcmRNYXJnaW5BZnRlciAmJiBjaGlsZElzU2VsZkNvbGxhcHNp
bmcpOworCiAgICAgLy8gR2V0IHRoZSBmb3VyIG1hcmdpbiB2YWx1ZXMgZm9yIHRoZSBjaGlsZCBh
bmQgY2FjaGUgdGhlbS4KICAgICBjb25zdCBNYXJnaW5WYWx1ZXMgY2hpbGRNYXJnaW5zID0gbWFy
Z2luVmFsdWVzRm9yQ2hpbGQoY2hpbGQpOwogCkBAIC0xOTY2LDM4ICsxOTc1LDQ4IEBAIExheW91
dFVuaXQgUmVuZGVyQmxvY2s6OmNvbGxhcHNlTWFyZ2lucyhSZW5kZXJCb3gqIGNoaWxkLCBNYXJn
aW5JbmZvJiBtYXJnaW5JbmZvCiAKICAgICAvLyBGb3Igc2VsZi1jb2xsYXBzaW5nIGJsb2Nrcywg
Y29sbGFwc2Ugb3VyIGJvdHRvbSBtYXJnaW5zIGludG8gb3VyCiAgICAgLy8gdG9wIHRvIGdldCBu
ZXcgcG9zVG9wIGFuZCBuZWdUb3AgdmFsdWVzLgotICAgIGlmIChjaGlsZC0+aXNTZWxmQ29sbGFw
c2luZ0Jsb2NrKCkpIHsKKyAgICBpZiAoY2hpbGRJc1NlbGZDb2xsYXBzaW5nKSB7CiAgICAgICAg
IHBvc1RvcCA9IG1heChwb3NUb3AsIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkFmdGVyKCkp
OwogICAgICAgICBuZWdUb3AgPSBtYXgobmVnVG9wLCBjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJn
aW5BZnRlcigpKTsKICAgICB9CiAgICAgCiAgICAgLy8gU2VlIGlmIHRoZSB0b3AgbWFyZ2luIGlz
IHF1aXJreS4gV2Ugb25seSBjYXJlIGlmIHRoaXMgY2hpbGQgaGFzCiAgICAgLy8gbWFyZ2lucyB0
aGF0IHdpbGwgY29sbGFwc2Ugd2l0aCB1cy4KLSAgICBib29sIHRvcFF1aXJrID0gY2hpbGQtPmlz
TWFyZ2luQmVmb3JlUXVpcmsoKSB8fCBzdHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09
IE1ESVNDQVJEOworICAgIGJvb2wgdG9wUXVpcmsgPSBjaGlsZC0+aXNNYXJnaW5CZWZvcmVRdWly
aygpOwogCiAgICAgaWYgKG1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVmb3JlKCkp
IHsKLSAgICAgICAgLy8gVGhpcyBjaGlsZCBpcyBjb2xsYXBzaW5nIHdpdGggdGhlIHRvcCBvZiB0
aGUKLSAgICAgICAgLy8gYmxvY2suICBJZiBpdCBoYXMgbGFyZ2VyIG1hcmdpbiB2YWx1ZXMsIHRo
ZW4gd2UgbmVlZCB0byB1cGRhdGUKLSAgICAgICAgLy8gb3VyIG93biBtYXhpbWFsIHZhbHVlcy4K
LSAgICAgICAgaWYgKCFkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSB8fCAhbWFyZ2luSW5mby5x
dWlya0NvbnRhaW5lcigpIHx8ICF0b3BRdWlyaykKLSAgICAgICAgICAgIHNldE1heE1hcmdpbkJl
Zm9yZVZhbHVlcyhtYXgocG9zVG9wLCBtYXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpKSwgbWF4KG5l
Z1RvcCwgbWF4TmVnYXRpdmVNYXJnaW5CZWZvcmUoKSkpOwotCi0gICAgICAgIC8vIFRoZSBtaW51
dGUgYW55IG9mIHRoZSBtYXJnaW5zIGludm9sdmVkIGlzbid0IGEgcXVpcmssIGRvbid0Ci0gICAg
ICAgIC8vIGNvbGxhcHNlIGl0IGF3YXksIGV2ZW4gaWYgdGhlIG1hcmdpbiBpcyBzbWFsbGVyICh3
d3cud2VicmVmZXJlbmNlLmNvbQotICAgICAgICAvLyBoYXMgYW4gZXhhbXBsZSBvZiB0aGlzLCBh
IDxkdD4gd2l0aCAwLjhlbSBhdXRob3Itc3BlY2lmaWVkIGluc2lkZQotICAgICAgICAvLyBhIDxk
bD4gaW5zaWRlIGEgPHRkPi4KLSAgICAgICAgaWYgKCFtYXJnaW5JbmZvLmRldGVybWluZWRNYXJn
aW5CZWZvcmVRdWlyaygpICYmICF0b3BRdWlyayAmJiAocG9zVG9wIC0gbmVnVG9wKSkgewotICAg
ICAgICAgICAgc2V0TWFyZ2luQmVmb3JlUXVpcmsoZmFsc2UpOwotICAgICAgICAgICAgbWFyZ2lu
SW5mby5zZXREZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsodHJ1ZSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKCkgJiYg
dG9wUXVpcmsgJiYgIW1hcmdpbkJlZm9yZSgpKQotICAgICAgICAgICAgLy8gV2UgaGF2ZSBubyB0
b3AgbWFyZ2luIGFuZCBvdXIgdG9wIGNoaWxkIGhhcyBhIHF1aXJreSBtYXJnaW4uCi0gICAgICAg
ICAgICAvLyBXZSB3aWxsIHBpY2sgdXAgdGhpcyBxdWlya3kgbWFyZ2luIGFuZCBwYXNzIGl0IHRo
cm91Z2guCi0gICAgICAgICAgICAvLyBUaGlzIGRlYWxzIHdpdGggdGhlIDx0ZD48ZGl2PjxwPiBj
YXNlLgotICAgICAgICAgICAgLy8gRG9uJ3QgZG8gdGhpcyBmb3IgYSBibG9jayB0aGF0IHNwbGl0
IHR3byBpbmxpbmVzIHRob3VnaC4gIFlvdSBkbwotICAgICAgICAgICAgLy8gc3RpbGwgYXBwbHkg
bWFyZ2lucyBpbiB0aGlzIGNhc2UuCi0gICAgICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayh0
cnVlKTsKKyAgICAgICAgaWYgKCFjaGlsZERpc2NhcmRNYXJnaW5CZWZvcmUgJiYgIW1hcmdpbklu
Zm8uZGlzY2FyZE1hcmdpbigpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGNoaWxkIGlzIGNvbGxh
cHNpbmcgd2l0aCB0aGUgdG9wIG9mIHRoZQorICAgICAgICAgICAgLy8gYmxvY2suIElmIGl0IGhh
cyBsYXJnZXIgbWFyZ2luIHZhbHVlcywgdGhlbiB3ZSBuZWVkIHRvIHVwZGF0ZQorICAgICAgICAg
ICAgLy8gb3VyIG93biBtYXhpbWFsIHZhbHVlcy4KKyAgICAgICAgICAgIGlmICghZG9jdW1lbnQo
KS0+aW5RdWlya3NNb2RlKCkgfHwgIW1hcmdpbkluZm8ucXVpcmtDb250YWluZXIoKSB8fCAhdG9w
UXVpcmspCisgICAgICAgICAgICAgICAgc2V0TWF4TWFyZ2luQmVmb3JlVmFsdWVzKG1heChwb3NU
b3AsIG1heFBvc2l0aXZlTWFyZ2luQmVmb3JlKCkpLCBtYXgobmVnVG9wLCBtYXhOZWdhdGl2ZU1h
cmdpbkJlZm9yZSgpKSk7CisKKyAgICAgICAgICAgIC8vIFRoZSBtaW51dGUgYW55IG9mIHRoZSBt
YXJnaW5zIGludm9sdmVkIGlzbid0IGEgcXVpcmssIGRvbid0CisgICAgICAgICAgICAvLyBjb2xs
YXBzZSBpdCBhd2F5LCBldmVuIGlmIHRoZSBtYXJnaW4gaXMgc21hbGxlciAod3d3LndlYnJlZmVy
ZW5jZS5jb20KKyAgICAgICAgICAgIC8vIGhhcyBhbiBleGFtcGxlIG9mIHRoaXMsIGEgPGR0PiB3
aXRoIDAuOGVtIGF1dGhvci1zcGVjaWZpZWQgaW5zaWRlCisgICAgICAgICAgICAvLyBhIDxkbD4g
aW5zaWRlIGEgPHRkPi4KKyAgICAgICAgICAgIGlmICghbWFyZ2luSW5mby5kZXRlcm1pbmVkTWFy
Z2luQmVmb3JlUXVpcmsoKSAmJiAhdG9wUXVpcmsgJiYgKHBvc1RvcCAtIG5lZ1RvcCkpIHsKKyAg
ICAgICAgICAgICAgICBzZXRNYXJnaW5CZWZvcmVRdWlyayhmYWxzZSk7CisgICAgICAgICAgICAg
ICAgbWFyZ2luSW5mby5zZXREZXRlcm1pbmVkTWFyZ2luQmVmb3JlUXVpcmsodHJ1ZSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghbWFyZ2luSW5mby5kZXRlcm1pbmVkTWFyZ2lu
QmVmb3JlUXVpcmsoKSAmJiB0b3BRdWlyayAmJiAhbWFyZ2luQmVmb3JlKCkpCisgICAgICAgICAg
ICAgICAgLy8gV2UgaGF2ZSBubyB0b3AgbWFyZ2luIGFuZCBvdXIgdG9wIGNoaWxkIGhhcyBhIHF1
aXJreSBtYXJnaW4uCisgICAgICAgICAgICAgICAgLy8gV2Ugd2lsbCBwaWNrIHVwIHRoaXMgcXVp
cmt5IG1hcmdpbiBhbmQgcGFzcyBpdCB0aHJvdWdoLgorICAgICAgICAgICAgICAgIC8vIFRoaXMg
ZGVhbHMgd2l0aCB0aGUgPHRkPjxkaXY+PHA+IGNhc2UuCisgICAgICAgICAgICAgICAgLy8gRG9u
J3QgZG8gdGhpcyBmb3IgYSBibG9jayB0aGF0IHNwbGl0IHR3byBpbmxpbmVzIHRob3VnaC4gWW91
IGRvCisgICAgICAgICAgICAgICAgLy8gc3RpbGwgYXBwbHkgbWFyZ2lucyBpbiB0aGlzIGNhc2Uu
CisgICAgICAgICAgICAgICAgc2V0TWFyZ2luQmVmb3JlUXVpcmsodHJ1ZSk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgLy8gVGhlIGJlZm9yZSBtYXJnaW4gb2YgdGhlIGNvbnRhaW5lciB3
aWxsIGFsc28gZGlzY2FyZCBhbGwgdGhlIG1hcmdpbnMgaXQgaXMgY29sbGFwc2luZyB3aXRoLgor
ICAgICAgICAgICAgc2V0TXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKTsKKyAgICB9CisKKyAgICAv
LyBPbmNlIHdlIGZpbmQgYSBjaGlsZCB3aXRoIGRpc2NhcmRNYXJnaW5CZWZvcmUgYWxsIHRoZSBt
YXJnaW5zIGNvbGxhcHNpbmcgd2l0aCB1cyBtdXN0IGFsc28gZGlzY2FyZC4gCisgICAgaWYgKGNo
aWxkRGlzY2FyZE1hcmdpbkJlZm9yZSkgeworICAgICAgICBtYXJnaW5JbmZvLnNldERpc2NhcmRN
YXJnaW4odHJ1ZSk7CisgICAgICAgIG1hcmdpbkluZm8uY2xlYXJNYXJnaW4oKTsKICAgICB9CiAK
ICAgICBpZiAobWFyZ2luSW5mby5xdWlya0NvbnRhaW5lcigpICYmIG1hcmdpbkluZm8uYXRCZWZv
cmVTaWRlT2ZCbG9jaygpICYmIChwb3NUb3AgLSBuZWdUb3ApKQpAQCAtMjAwNSw0NSArMjAyNCw1
MyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQm94KiBj
aGlsZCwgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbwogCiAgICAgTGF5b3V0VW5pdCBiZWZvcmVDb2xs
YXBzZUxvZ2ljYWxUb3AgPSBsb2dpY2FsSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2Fs
VG9wID0gYmVmb3JlQ29sbGFwc2VMb2dpY2FsVG9wOwotICAgIGlmIChjaGlsZC0+aXNTZWxmQ29s
bGFwc2luZ0Jsb2NrKCkpIHsKLSAgICAgICAgLy8gVGhpcyBjaGlsZCBoYXMgbm8gaGVpZ2h0LiAg
V2UgbmVlZCB0byBjb21wdXRlIG91cgotICAgICAgICAvLyBwb3NpdGlvbiBiZWZvcmUgd2UgY29s
bGFwc2UgdGhlIGNoaWxkJ3MgbWFyZ2lucyB0b2dldGhlciwKLSAgICAgICAgLy8gc28gdGhhdCB3
ZSBjYW4gZ2V0IGFuIGFjY3VyYXRlIHBvc2l0aW9uIGZvciB0aGUgemVyby1oZWlnaHQgYmxvY2su
Ci0gICAgICAgIExheW91dFVuaXQgY29sbGFwc2VkQmVmb3JlUG9zID0gbWF4KG1hcmdpbkluZm8u
cG9zaXRpdmVNYXJnaW4oKSwgY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQmVmb3JlKCkpOwot
ICAgICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZU5lZyA9IG1heChtYXJnaW5JbmZvLm5l
Z2F0aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkJlZm9yZSgpKTsKLSAg
ICAgICAgbWFyZ2luSW5mby5zZXRNYXJnaW4oY29sbGFwc2VkQmVmb3JlUG9zLCBjb2xsYXBzZWRC
ZWZvcmVOZWcpOwotICAgICAgICAKLSAgICAgICAgLy8gTm93IGNvbGxhcHNlIHRoZSBjaGlsZCdz
IG1hcmdpbnMgdG9nZXRoZXIsIHdoaWNoIG1lYW5zIGV4YW1pbmluZyBvdXIKLSAgICAgICAgLy8g
Ym90dG9tIG1hcmdpbiB2YWx1ZXMgYXMgd2VsbC4gCi0gICAgICAgIG1hcmdpbkluZm8uc2V0UG9z
aXRpdmVNYXJnaW5JZkxhcmdlcihjaGlsZE1hcmdpbnMucG9zaXRpdmVNYXJnaW5BZnRlcigpKTsK
LSAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdpbklmTGFyZ2VyKGNoaWxkTWFyZ2lu
cy5uZWdhdGl2ZU1hcmdpbkFmdGVyKCkpOwotCi0gICAgICAgIGlmICghbWFyZ2luSW5mby5jYW5D
b2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSkKLSAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gbWFr
ZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWxmLWNvbGxhcHNpbmcgYmxvY2sKLSAg
ICAgICAgICAgIC8vIGlzIGNvcnJlY3QsIHNpbmNlIGl0IGNvdWxkIGhhdmUgb3ZlcmZsb3dpbmcg
Y29udGVudAotICAgICAgICAgICAgLy8gdGhhdCBuZWVkcyB0byBiZSBwb3NpdGlvbmVkIGNvcnJl
Y3RseSAoZS5nLiwgYSBibG9jayB0aGF0Ci0gICAgICAgICAgICAvLyBoYWQgYSBzcGVjaWZpZWQg
aGVpZ2h0IG9mIDAgYnV0IHRoYXQgYWN0dWFsbHkgaGFkIHN1YmNvbnRlbnQpLgotICAgICAgICAg
ICAgbG9naWNhbFRvcCA9IGxvZ2ljYWxIZWlnaHQoKSArIGNvbGxhcHNlZEJlZm9yZVBvcyAtIGNv
bGxhcHNlZEJlZm9yZU5lZzsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChjaGlsZC0+
c3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNU0VQQVJBVEUpIHsKKyAgICBpZiAo
Y2hpbGRJc1NlbGZDb2xsYXBzaW5nKSB7CisgICAgICAgIC8vIEZvciBhIHNlbGYgY29sbGFwc2lu
ZyBibG9jayBib3RoIHRoZSBiZWZvcmUgYW5kIGFmdGVyIG1hcmdpbnMgZ2V0IGRpc2NhcmRlZC4g
VGhlIGJsb2NrIGRvZXNuJ3QgY29udHJpYnV0ZSBhbnl0aGluZyB0byB0aGUgaGVpZ2h0IG9mIHRo
ZSBibG9jay4KKyAgICAgICAgLy8gQWxzbywgdGhlIGNoaWxkJ3MgdG9wIHBvc2l0aW9uIGVxdWFs
cyB0aGUgbG9naWNhbCBoZWlnaHQgb2YgdGhlIGNvbnRhaW5lci4KKyAgICAgICAgaWYgKCFjaGls
ZERpc2NhcmRNYXJnaW5CZWZvcmUgJiYgIW1hcmdpbkluZm8uZGlzY2FyZE1hcmdpbigpKSB7Cisg
ICAgICAgICAgICAvLyBUaGlzIGNoaWxkIGhhcyBubyBoZWlnaHQuIFdlIG5lZWQgdG8gY29tcHV0
ZSBvdXIKKyAgICAgICAgICAgIC8vIHBvc2l0aW9uIGJlZm9yZSB3ZSBjb2xsYXBzZSB0aGUgY2hp
bGQncyBtYXJnaW5zIHRvZ2V0aGVyLAorICAgICAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gZ2V0
IGFuIGFjY3VyYXRlIHBvc2l0aW9uIGZvciB0aGUgemVyby1oZWlnaHQgYmxvY2suCisgICAgICAg
ICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZVBvcyA9IG1heChtYXJnaW5JbmZvLnBvc2l0
aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkJlZm9yZSgpKTsKKyAgICAg
ICAgICAgIExheW91dFVuaXQgY29sbGFwc2VkQmVmb3JlTmVnID0gbWF4KG1hcmdpbkluZm8ubmVn
YXRpdmVNYXJnaW4oKSwgY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQmVmb3JlKCkpOworICAg
ICAgICAgICAgbWFyZ2luSW5mby5zZXRNYXJnaW4oY29sbGFwc2VkQmVmb3JlUG9zLCBjb2xsYXBz
ZWRCZWZvcmVOZWcpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3cgY29sbGFwc2Ug
dGhlIGNoaWxkJ3MgbWFyZ2lucyB0b2dldGhlciwgd2hpY2ggbWVhbnMgZXhhbWluaW5nIG91cgor
ICAgICAgICAgICAgLy8gYm90dG9tIG1hcmdpbiB2YWx1ZXMgYXMgd2VsbC4gCisgICAgICAgICAg
ICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luSWZMYXJnZXIoY2hpbGRNYXJnaW5zLnBvc2l0
aXZlTWFyZ2luQWZ0ZXIoKSk7CisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldE5lZ2F0aXZlTWFy
Z2luSWZMYXJnZXIoY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQWZ0ZXIoKSk7CisKKyAgICAg
ICAgICAgIGlmICghbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSkKKyAg
ICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwb3NpdGlvbiBv
ZiB0aGUgc2VsZi1jb2xsYXBzaW5nIGJsb2NrCisgICAgICAgICAgICAgICAgLy8gaXMgY29ycmVj
dCwgc2luY2UgaXQgY291bGQgaGF2ZSBvdmVyZmxvd2luZyBjb250ZW50CisgICAgICAgICAgICAg
ICAgLy8gdGhhdCBuZWVkcyB0byBiZSBwb3NpdGlvbmVkIGNvcnJlY3RseSAoZS5nLiwgYSBibG9j
ayB0aGF0CisgICAgICAgICAgICAgICAgLy8gaGFkIGEgc3BlY2lmaWVkIGhlaWdodCBvZiAwIGJ1
dCB0aGF0IGFjdHVhbGx5IGhhZCBzdWJjb250ZW50KS4KKyAgICAgICAgICAgICAgICBsb2dpY2Fs
VG9wID0gbG9naWNhbEhlaWdodCgpICsgY29sbGFwc2VkQmVmb3JlUG9zIC0gY29sbGFwc2VkQmVm
b3JlTmVnOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG11c3RTZXBhcmF0
ZU1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkKSkgeworICAgICAgICAgICAgQVNTRVJUKCFtYXJn
aW5JbmZvLmRpc2NhcmRNYXJnaW4oKSB8fCAobWFyZ2luSW5mby5kaXNjYXJkTWFyZ2luKCkgJiYg
IW1hcmdpbkluZm8ubWFyZ2luKCkpKTsKICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9n
aWNhbEhlaWdodCgpICsgbWFyZ2luSW5mby5tYXJnaW4oKSArIG1hcmdpbkJlZm9yZUZvckNoaWxk
KGNoaWxkKSk7CiAgICAgICAgICAgICBsb2dpY2FsVG9wID0gbG9naWNhbEhlaWdodCgpOwotICAg
ICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKCFtYXJnaW5JbmZvLmF0QmVmb3JlU2lkZU9mQmxvY2so
KSB8fAotICAgICAgICAgICAgKCFtYXJnaW5JbmZvLmNhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0
aENoaWxkcmVuKCkKLSAgICAgICAgICAgICAmJiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgp
IHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQmVm
b3JlUXVpcmsoKSkpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoIW1hcmdpbkluZm8uZGlzY2FyZE1h
cmdpbigpICYmICghbWFyZ2luSW5mby5hdEJlZm9yZVNpZGVPZkJsb2NrKCkKKyAgICAgICAgICAg
IHx8ICghbWFyZ2luSW5mby5jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbigpCisg
ICAgICAgICAgICAmJiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZv
LnF1aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQmVmb3JlUXVpcmsoKSkpKSkg
ewogICAgICAgICAgICAgLy8gV2UncmUgY29sbGFwc2luZyB3aXRoIGEgcHJldmlvdXMgc2libGlu
ZydzIG1hcmdpbnMgYW5kIG5vdAogICAgICAgICAgICAgLy8gd2l0aCB0aGUgdG9wIG9mIHRoZSBi
bG9jay4KICAgICAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbWF4
KG1hcmdpbkluZm8ucG9zaXRpdmVNYXJnaW4oKSwgcG9zVG9wKSAtIG1heChtYXJnaW5JbmZvLm5l
Z2F0aXZlTWFyZ2luKCksIG5lZ1RvcCkpOwogICAgICAgICAgICAgbG9naWNhbFRvcCA9IGxvZ2lj
YWxIZWlnaHQoKTsKICAgICAgICAgfQogCi0gICAgICAgIG1hcmdpbkluZm8uc2V0UG9zaXRpdmVN
YXJnaW4oY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSk7Ci0gICAgICAgIG1hcmdp
bkluZm8uc2V0TmVnYXRpdmVNYXJnaW4oY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQWZ0ZXIo
KSk7CisgICAgICAgIG1hcmdpbkluZm8uc2V0RGlzY2FyZE1hcmdpbihjaGlsZERpc2NhcmRNYXJn
aW5BZnRlcik7CisgICAgICAgIAorICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGlzY2FyZE1hcmdp
bigpKSB7CisgICAgICAgICAgICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luKGNoaWxkTWFy
Z2lucy5wb3NpdGl2ZU1hcmdpbkFmdGVyKCkpOworICAgICAgICAgICAgbWFyZ2luSW5mby5zZXRO
ZWdhdGl2ZU1hcmdpbihjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJnaW5BZnRlcigpKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2luKCk7CiAKICAgICAg
ICAgaWYgKG1hcmdpbkluZm8ubWFyZ2luKCkpCi0gICAgICAgICAgICBtYXJnaW5JbmZvLnNldE1h
cmdpbkFmdGVyUXVpcmsoY2hpbGQtPmlzTWFyZ2luQWZ0ZXJRdWlyaygpIHx8IHN0eWxlKCktPm1h
cmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7CisgICAgICAgICAgICBtYXJnaW5JbmZv
LnNldE1hcmdpbkFmdGVyUXVpcmsoY2hpbGQtPmlzTWFyZ2luQWZ0ZXJRdWlyaygpKTsKICAgICB9
CiAgICAgCiAgICAgLy8gSWYgbWFyZ2lucyB3b3VsZCBwdWxsIHVzIHBhc3QgdGhlIHRvcCBvZiB0
aGUgbmV4dCBwYWdlLCB0aGVuIHdlIG5lZWQgdG8gcHVsbCBiYWNrIGFuZCBwcmV0ZW5kIGxpa2Ug
dGhlIG1hcmdpbnMKQEAgLTIwNzksMTIgKzIxMDYsMTkgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9j
azo6Y2xlYXJGbG9hdHNJZk5lZWRlZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJn
aW4KICAgICAgICAgcmV0dXJuIHlQb3M7CiAKICAgICBpZiAoY2hpbGQtPmlzU2VsZkNvbGxhcHNp
bmdCbG9jaygpKSB7CisgICAgICAgIGJvb2wgY2hpbGREaXNjYXJkTWFyZ2luID0gbXVzdERpc2Nh
cmRNYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZCkgfHwgbXVzdERpc2NhcmRNYXJnaW5BZnRlckZv
ckNoaWxkKGNoaWxkKTsKKwogICAgICAgICAvLyBGb3Igc2VsZi1jb2xsYXBzaW5nIGJsb2NrcyB0
aGF0IGNsZWFyLCB0aGV5IGNhbiBzdGlsbCBjb2xsYXBzZSB0aGVpcgogICAgICAgICAvLyBtYXJn
aW5zIHdpdGggZm9sbG93aW5nIHNpYmxpbmdzLiAgUmVzZXQgdGhlIGN1cnJlbnQgbWFyZ2lucyB0
byByZXByZXNlbnQKICAgICAgICAgLy8gdGhlIHNlbGYtY29sbGFwc2luZyBibG9jaydzIG1hcmdp
bnMgb25seS4KLSAgICAgICAgTWFyZ2luVmFsdWVzIGNoaWxkTWFyZ2lucyA9IG1hcmdpblZhbHVl
c0ZvckNoaWxkKGNoaWxkKTsKLSAgICAgICAgbWFyZ2luSW5mby5zZXRQb3NpdGl2ZU1hcmdpbiht
YXgoY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5wb3Np
dGl2ZU1hcmdpbkFmdGVyKCkpKTsKLSAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdp
bihtYXgoY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5u
ZWdhdGl2ZU1hcmdpbkFmdGVyKCkpKTsKKyAgICAgICAgLy8gSWYgRElTQ0FSRCBpcyBzcGVjaWZp
ZWQgZm9yIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlLCByZXNldCB0aGUgbWFyZ2luIHZhbHVlcy4K
KyAgICAgICAgaWYgKCFjaGlsZERpc2NhcmRNYXJnaW4pIHsKKyAgICAgICAgICAgIE1hcmdpblZh
bHVlcyBjaGlsZE1hcmdpbnMgPSBtYXJnaW5WYWx1ZXNGb3JDaGlsZChjaGlsZCk7CisgICAgICAg
ICAgICBtYXJnaW5JbmZvLnNldFBvc2l0aXZlTWFyZ2luKG1heChjaGlsZE1hcmdpbnMucG9zaXRp
dmVNYXJnaW5CZWZvcmUoKSwgY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSkpOwor
ICAgICAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2ZU1hcmdpbihtYXgoY2hpbGRNYXJnaW5z
Lm5lZ2F0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkFmdGVy
KCkpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2lu
KCk7CisgICAgICAgIG1hcmdpbkluZm8uc2V0RGlzY2FyZE1hcmdpbihjaGlsZERpc2NhcmRNYXJn
aW4pOwogCiAgICAgICAgIC8vIENTUzIuMSBzdGF0ZXM6CiAgICAgICAgIC8vICJJZiB0aGUgdG9w
IGFuZCBib3R0b20gbWFyZ2lucyBvZiBhbiBlbGVtZW50IHdpdGggY2xlYXJhbmNlIGFyZSBhZGpv
aW5pbmcsIGl0cyBtYXJnaW5zIGNvbGxhcHNlIHdpdGggCkBAIC0yMTE3LDYgKzIxNTEsOSBAQCBM
YXlvdXRVbml0IFJlbmRlckJsb2NrOjpjbGVhckZsb2F0c0lmTmVlZGVkKFJlbmRlckJveCogY2hp
bGQsIE1hcmdpbkluZm8mIG1hcmdpbgogICAgICAgICAvLyBtYXJnaW5zIGludm9sdmVkLgogICAg
ICAgICBzZXRNYXhNYXJnaW5CZWZvcmVWYWx1ZXMob2xkVG9wUG9zTWFyZ2luLCBvbGRUb3BOZWdN
YXJnaW4pOwogICAgICAgICBtYXJnaW5JbmZvLnNldEF0QmVmb3JlU2lkZU9mQmxvY2soZmFsc2Up
OworCisgICAgICAgIC8vIEluIGNhc2UgdGhlIGNoaWxkIGRpc2NhcmRlZCB0aGUgYmVmb3JlIG1h
cmdpbiBvZiB0aGUgYmxvY2sgd2UgbmVlZCB0byByZXNldCB0aGUgbXVzdERpc2NhcmRNYXJnaW5C
ZWZvcmUgZmxhZyB0byB0aGUgaW5pdGlhbCB2YWx1ZS4KKyAgICAgICAgc2V0TXVzdERpc2NhcmRN
YXJnaW5CZWZvcmUoc3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7
CiAgICAgfQogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wID0geVBvcyArIGhlaWdodEluY3Jl
YXNlOwpAQCAtMjEzMCwxMCArMjE2NywxNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpjbGVh
ckZsb2F0c0lmTmVlZGVkKFJlbmRlckJveCogY2hpbGQsIE1hcmdpbkluZm8mIG1hcmdpbgogCiB2
b2lkIFJlbmRlckJsb2NrOjptYXJnaW5CZWZvcmVFc3RpbWF0ZUZvckNoaWxkKFJlbmRlckJveCog
Y2hpbGQsIExheW91dFVuaXQmIHBvc2l0aXZlTWFyZ2luQmVmb3JlLCBMYXlvdXRVbml0JiBuZWdh
dGl2ZU1hcmdpbkJlZm9yZSkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRlYWwg
d2l0aCB0aGUgbWFyZ2luLWNvbGxhcHNlLSogc3R5bGUgZXh0ZW5zaW9ucyB0aGF0IHByZXZlbnQg
Y29sbGFwc2luZyBhbmQgdGhhdCBkaXNjYXJkIG1hcmdpbnMuCiAgICAgLy8gR2l2ZSB1cCBpZiBp
biBxdWlya3MgbW9kZSBhbmQgd2UncmUgYSBib2R5L3RhYmxlIGNlbGwgYW5kIHRoZSB0b3AgbWFy
Z2luIG9mIHRoZSBjaGlsZCBib3ggaXMgcXVpcmt5LgotICAgIGlmIChkb2N1bWVudCgpLT5pblF1
aXJrc01vZGUoKSAmJiBjaGlsZC0+aXNNYXJnaW5CZWZvcmVRdWlyaygpICYmIChpc1RhYmxlQ2Vs
bCgpIHx8IGlzQm9keSgpKSkKKyAgICAvLyBHaXZlIHVwIGlmIHRoZSBjaGlsZCBzcGVjaWZpZWQg
LXdlYmtpdC1tYXJnaW4tY29sbGFwc2U6IHNlcGFyYXRlIHRoYXQgcHJldmVudHMgY29sbGFwc2lu
Zy4KKyAgICBpZiAoKGRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpICYmIGNoaWxkLT5pc01hcmdp
bkJlZm9yZVF1aXJrKCkgJiYgKGlzVGFibGVDZWxsKCkgfHwgaXNCb2R5KCkpKSB8fCBtdXN0U2Vw
YXJhdGVNYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZCkpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIFRoZSBtYXJnaW5zIGFyZSBkaXNjYXJkZWQgYnkgYSBjaGlsZCB0aGF0IHNwZWNpZmllZCAt
d2Via2l0LW1hcmdpbi1jb2xsYXBzZTogZGlzY2FyZC4KKyAgICBpZiAobXVzdERpc2NhcmRNYXJn
aW5CZWZvcmVGb3JDaGlsZChjaGlsZCkpIHsKKyAgICAgICAgcG9zaXRpdmVNYXJnaW5CZWZvcmUg
PSAwOworICAgICAgICBuZWdhdGl2ZU1hcmdpbkJlZm9yZSA9IDA7CiAgICAgICAgIHJldHVybjsK
KyAgICB9CiAKICAgICBMYXlvdXRVbml0IGJlZm9yZUNoaWxkTWFyZ2luID0gbWFyZ2luQmVmb3Jl
Rm9yQ2hpbGQoY2hpbGQpOwogICAgIHBvc2l0aXZlTWFyZ2luQmVmb3JlID0gbWF4KHBvc2l0aXZl
TWFyZ2luQmVmb3JlLCBiZWZvcmVDaGlsZE1hcmdpbik7CkBAIC0yMTYzLDIyICsyMjA3LDIzIEBA
IHZvaWQgUmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUVzdGltYXRlRm9yQ2hpbGQoUmVuZGVyQm94
KiBjaGlsZCwgTGF5b3V0VW5pdCYgcG9zCiAgICAgLy8gTWFrZSBzdXJlIHRvIHVwZGF0ZSB0aGUg
YmxvY2sgbWFyZ2lucyBub3cgZm9yIHRoZSBncmFuZGNoaWxkIGJveCBzbyB0aGF0IHdlJ3JlIGxv
b2tpbmcgYXQgY3VycmVudCB2YWx1ZXMuCiAgICAgaWYgKGdyYW5kY2hpbGRCb3gtPm5lZWRzTGF5
b3V0KCkpIHsKICAgICAgICAgZ3JhbmRjaGlsZEJveC0+Y29tcHV0ZUFuZFNldEJsb2NrRGlyZWN0
aW9uTWFyZ2lucyh0aGlzKTsKLSAgICAgICAgZ3JhbmRjaGlsZEJveC0+c2V0TWFyZ2luQmVmb3Jl
UXVpcmsoZ3JhbmRjaGlsZEJveC0+c3R5bGUoKS0+bWFyZ2luQmVmb3JlKCkucXVpcmsoKSk7Ci0g
ICAgICAgIGdyYW5kY2hpbGRCb3gtPnNldE1hcmdpbkFmdGVyUXVpcmsoZ3JhbmRjaGlsZEJveC0+
c3R5bGUoKS0+bWFyZ2luQWZ0ZXIoKS5xdWlyaygpKTsKKyAgICAgICAgZ3JhbmRjaGlsZEJveC0+
c2V0TWFyZ2luQmVmb3JlUXVpcmsoZ3JhbmRjaGlsZEJveC0+c3R5bGUoKS0+aXNNYXJnaW5CZWZv
cmVRdWlyaygpKTsKKyAgICAgICAgZ3JhbmRjaGlsZEJveC0+c2V0TWFyZ2luQWZ0ZXJRdWlyayhn
cmFuZGNoaWxkQm94LT5zdHlsZSgpLT5pc01hcmdpbkFmdGVyUXVpcmsoKSk7CiAgICAgfQogCiAg
ICAgLy8gQ29sbGFwc2UgdGhlIG1hcmdpbiBvZiB0aGUgZ3JhbmRjaGlsZCBib3ggd2l0aCBvdXIg
b3duIHRvIHByb2R1Y2UgYW4gZXN0aW1hdGUuCiAgICAgY2hpbGRCbG9jay0+bWFyZ2luQmVmb3Jl
RXN0aW1hdGVGb3JDaGlsZChncmFuZGNoaWxkQm94LCBwb3NpdGl2ZU1hcmdpbkJlZm9yZSwgbmVn
YXRpdmVNYXJnaW5CZWZvcmUpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJsb2NrOjplc3RpbWF0
ZUxvZ2ljYWxUb3BQb3NpdGlvbihSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBNYXJnaW5JbmZvJiBt
YXJnaW5JbmZvLCBMYXlvdXRVbml0JiBlc3RpbWF0ZVdpdGhvdXRQYWdpbmF0aW9uKQorTGF5b3V0
VW5pdCBSZW5kZXJCbG9jazo6ZXN0aW1hdGVMb2dpY2FsVG9wUG9zaXRpb24oUmVuZGVyQm94KiBj
aGlsZCwgY29uc3QgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbywgTGF5b3V0VW5pdCYgZXN0aW1hdGVX
aXRob3V0UGFnaW5hdGlvbikKIHsKICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBlbGltaW5hdGUg
dGhlIGVzdGltYXRpb24gb2YgdmVydGljYWwgcG9zaXRpb24sIGJlY2F1c2Ugd2hlbiBpdCdzIHdy
b25nIHdlIHNvbWV0aW1lcyB0cmlnZ2VyIGEgcGF0aG9sb2dpY2FsCiAgICAgLy8gcmVsYXlvdXQg
aWYgdGhlcmUgYXJlIGludHJ1ZGluZyBmbG9hdHMuCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9w
RXN0aW1hdGUgPSBsb2dpY2FsSGVpZ2h0KCk7Ci0gICAgaWYgKCFtYXJnaW5JbmZvLmNhbkNvbGxh
cHNlV2l0aE1hcmdpbkJlZm9yZSgpKSB7CisgICAgaWYgKCFtYXJnaW5JbmZvLmNhbkNvbGxhcHNl
V2l0aE1hcmdpbkJlZm9yZSgpKSB7CiAgICAgICAgIExheW91dFVuaXQgcG9zaXRpdmVNYXJnaW5C
ZWZvcmUgPSAwOwogICAgICAgICBMYXlvdXRVbml0IG5lZ2F0aXZlTWFyZ2luQmVmb3JlID0gMDsK
KyAgICAgICAgYm9vbCBkaXNjYXJkTWFyZ2luQmVmb3JlID0gbXVzdERpc2NhcmRNYXJnaW5CZWZv
cmVGb3JDaGlsZChjaGlsZCk7CiAgICAgICAgIGlmIChjaGlsZC0+c2VsZk5lZWRzTGF5b3V0KCkp
IHsKICAgICAgICAgICAgIC8vIFRyeSB0byBkbyBhIGJhc2ljIGVzdGltYXRpb24gb2YgaG93IHRo
ZSBjb2xsYXBzZSBpcyBnb2luZyB0byBnby4KICAgICAgICAgICAgIG1hcmdpbkJlZm9yZUVzdGlt
YXRlRm9yQ2hpbGQoY2hpbGQsIHBvc2l0aXZlTWFyZ2luQmVmb3JlLCBuZWdhdGl2ZU1hcmdpbkJl
Zm9yZSk7CkBAIC0yMTkxLDggKzIyMzYsOSBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjplc3Rp
bWF0ZUxvZ2ljYWxUb3BQb3NpdGlvbihSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBNYXJnaQogICAg
ICAgICB9CiAKICAgICAgICAgLy8gQ29sbGFwc2UgdGhlIHJlc3VsdCB3aXRoIG91ciBjdXJyZW50
IG1hcmdpbnMuCi0gICAgICAgIGxvZ2ljYWxUb3BFc3RpbWF0ZSArPSBtYXgobWFyZ2luSW5mby5w
b3NpdGl2ZU1hcmdpbigpLCBwb3NpdGl2ZU1hcmdpbkJlZm9yZSkgLSBtYXgobWFyZ2luSW5mby5u
ZWdhdGl2ZU1hcmdpbigpLCBuZWdhdGl2ZU1hcmdpbkJlZm9yZSk7Ci0gICAgfQorICAgICAgICBp
ZiAoIWRpc2NhcmRNYXJnaW5CZWZvcmUpCisgICAgICAgICAgICBsb2dpY2FsVG9wRXN0aW1hdGUg
Kz0gbWF4KG1hcmdpbkluZm8ucG9zaXRpdmVNYXJnaW4oKSwgcG9zaXRpdmVNYXJnaW5CZWZvcmUp
IC0gbWF4KG1hcmdpbkluZm8ubmVnYXRpdmVNYXJnaW4oKSwgbmVnYXRpdmVNYXJnaW5CZWZvcmUp
OworICAgIH0KIAogICAgIC8vIEFkanVzdCBsb2dpY2FsVG9wRXN0aW1hdGUgZG93biB0byB0aGUg
bmV4dCBwYWdlIGlmIHRoZSBtYXJnaW5zIGFyZSBzbyBsYXJnZSB0aGF0IHdlIGRvbid0IGZpdCBv
biB0aGUgY3VycmVudAogICAgIC8vIHBhZ2UuCkBAIC0yMjY2LDYgKzIzMTIsMTMgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6ZGV0ZXJtaW5lTG9naWNhbExlZnRQb3NpdGlvbkZvckNoaWxkKFJlbmRlckJv
eCogY2hpbGQpCiB2b2lkIFJlbmRlckJsb2NrOjpzZXRDb2xsYXBzZWRCb3R0b21NYXJnaW4oY29u
c3QgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbykKIHsKICAgICBpZiAobWFyZ2luSW5mby5jYW5Db2xs
YXBzZVdpdGhNYXJnaW5BZnRlcigpICYmICFtYXJnaW5JbmZvLmNhbkNvbGxhcHNlV2l0aE1hcmdp
bkJlZm9yZSgpKSB7CisgICAgICAgIC8vIFVwZGF0ZSB0aGUgYWZ0ZXIgc2lkZSBtYXJnaW4gb2Yg
dGhlIGNvbnRhaW5lciB0byBkaXNjYXJkIGlmIHRoZSBhZnRlciBtYXJnaW4gb2YgdGhlIGxhc3Qg
Y2hpbGQgYWxzbyBkaXNjYXJkcyBhbmQgd2UgY29sbGFwc2Ugd2l0aCBpdC4KKyAgICAgICAgLy8g
RG9uJ3QgdXBkYXRlIHRoZSBtYXggbWFyZ2luIHZhbHVlcyBiZWNhdXNlIHdlIHdvbid0IG5lZWQg
dGhlbSBhbnl3YXkuCisgICAgICAgIGlmIChtYXJnaW5JbmZvLmRpc2NhcmRNYXJnaW4oKSkgewor
ICAgICAgICAgICAgc2V0TXVzdERpc2NhcmRNYXJnaW5BZnRlcigpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKICAgICAgICAgLy8gVXBkYXRlIG91ciBtYXggcG9zL25lZyBib3R0
b20gbWFyZ2lucywgc2luY2Ugd2UgY29sbGFwc2VkIG91ciBib3R0b20gbWFyZ2lucwogICAgICAg
ICAvLyB3aXRoIG91ciBjaGlsZHJlbi4KICAgICAgICAgc2V0TWF4TWFyZ2luQWZ0ZXJWYWx1ZXMo
bWF4KG1heFBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSwgbWFyZ2luSW5mby5wb3NpdGl2ZU1hcmdpbigp
KSwgbWF4KG1heE5lZ2F0aXZlTWFyZ2luQWZ0ZXIoKSwgbWFyZ2luSW5mby5uZWdhdGl2ZU1hcmdp
bigpKSk7CkBAIC0yMjg4LDkgKzIzNDEsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjpoYW5kbGVBZnRl
clNpZGVPZkJsb2NrKExheW91dFVuaXQgYmVmb3JlU2lkZSwgTGF5b3V0VW5pdCBhZnRlcgogICAg
IC8vIElmIHdlIGNhbid0IGNvbGxhcHNlIHdpdGggY2hpbGRyZW4gdGhlbiBnbyBhaGVhZCBhbmQg
YWRkIGluIHRoZSBib3R0b20gbWFyZ2luLgogICAgIC8vIERvbid0IGRvIHRoaXMgZm9yIG9yZGlu
YXJ5IGFub255bW91cyBibG9ja3MgYXMgb25seSB0aGUgZW5jbG9zaW5nIGJveCBzaG91bGQgYWRk
IGluCiAgICAgLy8gaXRzIG1hcmdpbi4KLSAgICBpZiAoIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VX
aXRoTWFyZ2luQWZ0ZXIoKSAmJiAhbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZv
cmUoKQorICAgIGlmICghbWFyZ2luSW5mby5kaXNjYXJkTWFyZ2luKCkgJiYgKCFtYXJnaW5JbmZv
LmNhbkNvbGxhcHNlV2l0aE1hcmdpbkFmdGVyKCkgJiYgIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VX
aXRoTWFyZ2luQmVmb3JlKCkKICAgICAgICAgJiYgKCFpc0Fub255bW91c0Jsb2NrKCkgfHwgaXNB
bm9ueW1vdXNDb2x1bW5zQmxvY2soKSB8fCBpc0Fub255bW91c0NvbHVtblNwYW5CbG9jaygpKQot
ICAgICAgICAmJiAoIWRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZvLnF1
aXJrQ29udGFpbmVyKCkgfHwgIW1hcmdpbkluZm8ubWFyZ2luQWZ0ZXJRdWlyaygpKSkKKyAgICAg
ICAgJiYgKCFkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSB8fCAhbWFyZ2luSW5mby5xdWlya0Nv
bnRhaW5lcigpIHx8ICFtYXJnaW5JbmZvLm1hcmdpbkFmdGVyUXVpcmsoKSkpKQogICAgICAgICBz
ZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSArIG1hcmdpbkluZm8ubWFyZ2luKCkpOwog
ICAgICAgICAKICAgICAvLyBOb3cgYWRkIGluIG91ciBib3R0b20gYm9yZGVyL3BhZGRpbmcuCkBA
IC0yNDE1LDEzICsyNDY4LDYgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZChS
ZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJnaW5JbmZvLCBMYXkKICAgICAvLyBUaGUg
Y2hpbGQgaXMgYSBub3JtYWwgZmxvdyBvYmplY3QuICBDb21wdXRlIHRoZSBtYXJnaW5zIHdlIHdp
bGwgdXNlIGZvciBjb2xsYXBzaW5nIG5vdy4KICAgICBjaGlsZC0+Y29tcHV0ZUFuZFNldEJsb2Nr
RGlyZWN0aW9uTWFyZ2lucyh0aGlzKTsKIAotICAgIC8vIERvIG5vdCBhbGxvdyBhIGNvbGxhcHNl
IGlmIHRoZSBtYXJnaW4tYmVmb3JlLWNvbGxhcHNlIHN0eWxlIGlzIHNldCB0byBTRVBBUkFURS4K
LSAgICBSZW5kZXJTdHlsZSogY2hpbGRTdHlsZSA9IGNoaWxkLT5zdHlsZSgpOwotICAgIGlmIChj
aGlsZFN0eWxlLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1TRVBBUkFURSkgewotICAgICAg
ICBtYXJnaW5JbmZvLnNldEF0QmVmb3JlU2lkZU9mQmxvY2soZmFsc2UpOwotICAgICAgICBtYXJn
aW5JbmZvLmNsZWFyTWFyZ2luKCk7Ci0gICAgfQotCiAgICAgLy8gVHJ5IHRvIGd1ZXNzIG91ciBj
b3JyZWN0IGxvZ2ljYWwgdG9wIHBvc2l0aW9uLiAgSW4gbW9zdCBjYXNlcyB0aGlzIGd1ZXNzIHdp
bGwKICAgICAvLyBiZSBjb3JyZWN0LiAgT25seSBpZiB3ZSdyZSB3cm9uZyAod2hlbiB3ZSBjb21w
dXRlIHRoZSByZWFsIGxvZ2ljYWwgdG9wIHBvc2l0aW9uKQogICAgIC8vIHdpbGwgd2UgaGF2ZSB0
byBwb3RlbnRpYWxseSByZWxheW91dC4KQEAgLTI1MTUsNyArMjU2MSw3IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OmxheW91dEJsb2NrQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5mbyYgbWFy
Z2luSW5mbywgTGF5CiAKICAgICAvLyBVcGRhdGUgb3VyIGhlaWdodCBub3cgdGhhdCB0aGUgY2hp
bGQgaGFzIGJlZW4gcGxhY2VkIGluIHRoZSBjb3JyZWN0IHBvc2l0aW9uLgogICAgIHNldExvZ2lj
YWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbG9naWNhbEhlaWdodEZvckNoaWxkKGNoaWxkKSk7
Ci0gICAgaWYgKGNoaWxkU3R5bGUtPm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNU0VQQVJBVEUp
IHsKKyAgICBpZiAobXVzdFNlcGFyYXRlTWFyZ2luQWZ0ZXJGb3JDaGlsZChjaGlsZCkpIHsKICAg
ICAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KCkgKyBtYXJnaW5BZnRlckZvckNo
aWxkKGNoaWxkKSk7CiAgICAgICAgIG1hcmdpbkluZm8uY2xlYXJNYXJnaW4oKTsKICAgICB9CkBA
IC02ODMwLDYgKzY4NzYsODYgQEAgdm9pZCBSZW5kZXJCbG9jazo6c2V0TWF4TWFyZ2luQWZ0ZXJW
YWx1ZXMoTGF5b3V0VW5pdCBwb3MsIExheW91dFVuaXQgbmVnKQogICAgIG1fcmFyZURhdGEtPm1f
bWFyZ2lucy5zZXROZWdhdGl2ZU1hcmdpbkFmdGVyKG5lZyk7CiB9CiAKK3ZvaWQgUmVuZGVyQmxv
Y2s6OnNldE11c3REaXNjYXJkTWFyZ2luQmVmb3JlKGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHN0
eWxlKCktPm1hcmdpbkJlZm9yZUNvbGxhcHNlKCkgPT0gTURJU0NBUkQpIHsKKyAgICAgICAgQVNT
RVJUKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBpZiAoIW1fcmFy
ZURhdGEgJiYgIXZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fcmFyZURhdGEp
CisgICAgICAgIG1fcmFyZURhdGEgPSBhZG9wdFB0cihuZXcgUmVuZGVyQmxvY2tSYXJlRGF0YSh0
aGlzKSk7CisKKyAgICBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJnaW5CZWZvcmUgPSB2YWx1ZTsK
K30KKwordm9pZCBSZW5kZXJCbG9jazo6c2V0TXVzdERpc2NhcmRNYXJnaW5BZnRlcihib29sIHZh
bHVlKQoreworICAgIGlmIChzdHlsZSgpLT5tYXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTURJU0NB
UkQpIHsKKyAgICAgICAgQVNTRVJUKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmICghbV9yYXJlRGF0YSAmJiAhdmFsdWUpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICghbV9yYXJlRGF0YSkKKyAgICAgICAgbV9yYXJlRGF0YSA9IGFkb3B0UHRyKG5ldyBSZW5kZXJC
bG9ja1JhcmVEYXRhKHRoaXMpKTsKKworICAgIG1fcmFyZURhdGEtPm1fZGlzY2FyZE1hcmdpbkFm
dGVyID0gdmFsdWU7Cit9CisKK2Jvb2wgUmVuZGVyQmxvY2s6Om11c3REaXNjYXJkTWFyZ2luQmVm
b3JlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2Uo
KSA9PSBNRElTQ0FSRCB8fCAobV9yYXJlRGF0YSAmJiBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJn
aW5CZWZvcmUpOworfQorCitib29sIFJlbmRlckJsb2NrOjptdXN0RGlzY2FyZE1hcmdpbkFmdGVy
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3R5bGUoKS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09
IE1ESVNDQVJEIHx8IChtX3JhcmVEYXRhICYmIG1fcmFyZURhdGEtPm1fZGlzY2FyZE1hcmdpbkFm
dGVyKTsKK30KKworYm9vbCBSZW5kZXJCbG9jazo6bXVzdERpc2NhcmRNYXJnaW5CZWZvcmVGb3JD
aGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdAoreworICAgIGlmICghY2hpbGQtPmlz
V3JpdGluZ01vZGVSb290KCkpCisgICAgICAgIHJldHVybiBjaGlsZC0+aXNSZW5kZXJCbG9jaygp
ID8gdG9SZW5kZXJCbG9jayhjaGlsZCktPm11c3REaXNjYXJkTWFyZ2luQmVmb3JlKCkgOiAoY2hp
bGQtPnN0eWxlKCktPm1hcmdpbkJlZm9yZUNvbGxhcHNlKCkgPT0gTURJU0NBUkQpOworICAgIGlm
IChjaGlsZC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQorICAgICAgICByZXR1cm4gY2hpbGQtPmlzUmVuZGVyQmxvY2soKSA/IHRvUmVuZGVy
QmxvY2soY2hpbGQpLT5tdXN0RGlzY2FyZE1hcmdpbkFmdGVyKCkgOiAoY2hpbGQtPnN0eWxlKCkt
Pm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFJlbmRlckJsb2NrOjptdXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQoY29u
c3QgUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKK3sKKyAgICBpZiAoIWNoaWxkLT5pc1dyaXRpbmdN
b2RlUm9vdCgpKQorICAgICAgICByZXR1cm4gY2hpbGQtPmlzUmVuZGVyQmxvY2soKSA/IHRvUmVu
ZGVyQmxvY2soY2hpbGQpLT5tdXN0RGlzY2FyZE1hcmdpbkFmdGVyKCkgOiAoY2hpbGQtPnN0eWxl
KCktPm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCk7CisgICAgaWYgKGNoaWxkLT5p
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID09IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisg
ICAgICAgIHJldHVybiBjaGlsZC0+aXNSZW5kZXJCbG9jaygpID8gdG9SZW5kZXJCbG9jayhjaGls
ZCktPm11c3REaXNjYXJkTWFyZ2luQmVmb3JlKCkgOiAoY2hpbGQtPnN0eWxlKCktPm1hcmdpbkJl
Zm9yZUNvbGxhcHNlKCkgPT0gTURJU0NBUkQpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBSZW5kZXJCbG9jazo6bXVzdFNlcGFyYXRlTWFyZ2luQmVmb3JlRm9yQ2hpbGQoY29uc3QgUmVu
ZGVyQm94KiBjaGlsZCkgY29uc3QKK3sKKyAgICBjb25zdCBSZW5kZXJTdHlsZSogY2hpbGRTdHls
ZSA9IGNoaWxkLT5zdHlsZSgpOworICAgIGlmICghY2hpbGQtPmlzV3JpdGluZ01vZGVSb290KCkp
CisgICAgICAgIHJldHVybiBjaGlsZFN0eWxlLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1T
RVBBUkFURTsKKyAgICBpZiAoY2hpbGQtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPT0gaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkU3R5bGUtPm1hcmdp
bkFmdGVyQ29sbGFwc2UoKSA9PSBNU0VQQVJBVEU7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIFJlbmRlckJsb2NrOjptdXN0U2VwYXJhdGVNYXJnaW5BZnRlckZvckNoaWxkKGNvbnN0IFJl
bmRlckJveCogY2hpbGQpIGNvbnN0Cit7CisgICAgY29uc3QgUmVuZGVyU3R5bGUqIGNoaWxkU3R5
bGUgPSBjaGlsZC0+c3R5bGUoKTsKKyAgICBpZiAoIWNoaWxkLT5pc1dyaXRpbmdNb2RlUm9vdCgp
KQorICAgICAgICByZXR1cm4gY2hpbGRTdHlsZS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1T
RVBBUkFURTsKKyAgICBpZiAoY2hpbGQtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPT0gaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkU3R5bGUtPm1hcmdp
bkJlZm9yZUNvbGxhcHNlKCkgPT0gTVNFUEFSQVRFOworICAgIHJldHVybiBmYWxzZTsKK30KKwog
dm9pZCBSZW5kZXJCbG9jazo6c2V0UGFnaW5hdGlvblN0cnV0KExheW91dFVuaXQgc3RydXQpCiB7
CiAgICAgaWYgKCFtX3JhcmVEYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCmluZGV4IDFlZDIxMWNlODM4ZmQzZTYzMzUxNDJmMzE3MGRlMTZlODU5NzJkN2QuLjI3Yzlj
ZTEyY2VlOTRiOWYyN2MwMjg0YTc2MTliMjZiMDE5YzM0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCkBAIC00NTUsMTIgKzQ1NSwyNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBzZXRNYXhNYXJnaW5CZWZvcmVWYWx1ZXMoTGF5b3V0VW5pdCBwb3MsIExheW91dFVuaXQg
bmVnKTsKICAgICB2b2lkIHNldE1heE1hcmdpbkFmdGVyVmFsdWVzKExheW91dFVuaXQgcG9zLCBM
YXlvdXRVbml0IG5lZyk7CiAKKyAgICB2b2lkIHNldE11c3REaXNjYXJkTWFyZ2luQmVmb3JlKGJv
b2wgPSB0cnVlKTsKKyAgICB2b2lkIHNldE11c3REaXNjYXJkTWFyZ2luQWZ0ZXIoYm9vbCA9IHRy
dWUpOworCisgICAgYm9vbCBtdXN0RGlzY2FyZE1hcmdpbkJlZm9yZSgpIGNvbnN0OworICAgIGJv
b2wgbXVzdERpc2NhcmRNYXJnaW5BZnRlcigpIGNvbnN0OworCisgICAgYm9vbCBtdXN0RGlzY2Fy
ZE1hcmdpbkJlZm9yZUZvckNoaWxkKGNvbnN0IFJlbmRlckJveCopIGNvbnN0OworICAgIGJvb2wg
bXVzdERpc2NhcmRNYXJnaW5BZnRlckZvckNoaWxkKGNvbnN0IFJlbmRlckJveCopIGNvbnN0Owor
CisgICAgYm9vbCBtdXN0U2VwYXJhdGVNYXJnaW5CZWZvcmVGb3JDaGlsZChjb25zdCBSZW5kZXJC
b3gqKSBjb25zdDsKKyAgICBib29sIG11c3RTZXBhcmF0ZU1hcmdpbkFmdGVyRm9yQ2hpbGQoY29u
c3QgUmVuZGVyQm94KikgY29uc3Q7CisKICAgICB2b2lkIGluaXRNYXhNYXJnaW5WYWx1ZXMoKQog
ICAgIHsKICAgICAgICAgaWYgKG1fcmFyZURhdGEpIHsKICAgICAgICAgICAgIG1fcmFyZURhdGEt
Pm1fbWFyZ2lucyA9IE1hcmdpblZhbHVlcyhSZW5kZXJCbG9ja1JhcmVEYXRhOjpwb3NpdGl2ZU1h
cmdpbkJlZm9yZURlZmF1bHQodGhpcykgLCBSZW5kZXJCbG9ja1JhcmVEYXRhOjpuZWdhdGl2ZU1h
cmdpbkJlZm9yZURlZmF1bHQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUmVuZGVyQmxvY2tSYXJlRGF0YTo6cG9zaXRpdmVNYXJnaW5BZnRl
ckRlZmF1bHQodGhpcyksIFJlbmRlckJsb2NrUmFyZURhdGE6Om5lZ2F0aXZlTWFyZ2luQWZ0ZXJE
ZWZhdWx0KHRoaXMpKTsKICAgICAgICAgICAgIG1fcmFyZURhdGEtPm1fcGFnaW5hdGlvblN0cnV0
ID0gMDsKKworICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV9kaXNjYXJkTWFyZ2luQmVmb3JlID0g
ZmFsc2U7CisgICAgICAgICAgICBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJnaW5BZnRlciA9IGZh
bHNlOwogICAgICAgICB9CiAgICAgfQogCkBAIC05NTksNiArOTc0LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgYm9vbCBtX21hcmdpbkFmdGVyUXVpcmsgOiAxOwogICAgICAgICBib29sIG1fZGV0ZXJt
aW5lZE1hcmdpbkJlZm9yZVF1aXJrIDogMTsKIAorICAgICAgICBib29sIG1fZGlzY2FyZE1hcmdp
biA6IDE7CisKICAgICAgICAgLy8gVGhlc2UgZmxhZ3MgdHJhY2sgdGhlIHByZXZpb3VzIG1heGlt
YWwgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG1hcmdpbnMuCiAgICAgICAgIExheW91dFVuaXQgbV9w
b3NpdGl2ZU1hcmdpbjsKICAgICAgICAgTGF5b3V0VW5pdCBtX25lZ2F0aXZlTWFyZ2luOwpAQCAt
OTc2LDMzICs5OTMsMzcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXRNYXJnaW5CZWZvcmVR
dWlyayhib29sIGIpIHsgbV9tYXJnaW5CZWZvcmVRdWlyayA9IGI7IH0KICAgICAgICAgdm9pZCBz
ZXRNYXJnaW5BZnRlclF1aXJrKGJvb2wgYikgeyBtX21hcmdpbkFmdGVyUXVpcmsgPSBiOyB9CiAg
ICAgICAgIHZvaWQgc2V0RGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKGJvb2wgYikgeyBtX2Rl
dGVybWluZWRNYXJnaW5CZWZvcmVRdWlyayA9IGI7IH0KLSAgICAgICAgdm9pZCBzZXRQb3NpdGl2
ZU1hcmdpbihMYXlvdXRVbml0IHApIHsgbV9wb3NpdGl2ZU1hcmdpbiA9IHA7IH0KLSAgICAgICAg
dm9pZCBzZXROZWdhdGl2ZU1hcmdpbihMYXlvdXRVbml0IG4pIHsgbV9uZWdhdGl2ZU1hcmdpbiA9
IG47IH0KKyAgICAgICAgdm9pZCBzZXRQb3NpdGl2ZU1hcmdpbihMYXlvdXRVbml0IHApIHsgQVNT
RVJUKCFtX2Rpc2NhcmRNYXJnaW4pOyBtX3Bvc2l0aXZlTWFyZ2luID0gcDsgfQorICAgICAgICB2
b2lkIHNldE5lZ2F0aXZlTWFyZ2luKExheW91dFVuaXQgbikgeyBBU1NFUlQoIW1fZGlzY2FyZE1h
cmdpbik7IG1fbmVnYXRpdmVNYXJnaW4gPSBuOyB9CiAgICAgICAgIHZvaWQgc2V0UG9zaXRpdmVN
YXJnaW5JZkxhcmdlcihMYXlvdXRVbml0IHApCiAgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VS
VCghbV9kaXNjYXJkTWFyZ2luKTsKICAgICAgICAgICAgIGlmIChwID4gbV9wb3NpdGl2ZU1hcmdp
bikKICAgICAgICAgICAgICAgICBtX3Bvc2l0aXZlTWFyZ2luID0gcDsKICAgICAgICAgfQogICAg
ICAgICB2b2lkIHNldE5lZ2F0aXZlTWFyZ2luSWZMYXJnZXIoTGF5b3V0VW5pdCBuKQogICAgICAg
ICB7CisgICAgICAgICAgICBBU1NFUlQoIW1fZGlzY2FyZE1hcmdpbik7CiAgICAgICAgICAgICBp
ZiAobiA+IG1fbmVnYXRpdmVNYXJnaW4pCiAgICAgICAgICAgICAgICAgbV9uZWdhdGl2ZU1hcmdp
biA9IG47CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHNldE1hcmdpbihMYXlvdXRVbml0IHAs
IExheW91dFVuaXQgbikgeyBtX3Bvc2l0aXZlTWFyZ2luID0gcDsgbV9uZWdhdGl2ZU1hcmdpbiA9
IG47IH0KKyAgICAgICAgdm9pZCBzZXRNYXJnaW4oTGF5b3V0VW5pdCBwLCBMYXlvdXRVbml0IG4p
IHsgQVNTRVJUKCFtX2Rpc2NhcmRNYXJnaW4pOyBtX3Bvc2l0aXZlTWFyZ2luID0gcDsgbV9uZWdh
dGl2ZU1hcmdpbiA9IG47IH0KKyAgICAgICAgdm9pZCBzZXRDYW5Db2xsYXBzZU1hcmdpbkFmdGVy
V2l0aENoaWxkcmVuKGJvb2wgY29sbGFwc2UpIHsgbV9jYW5Db2xsYXBzZU1hcmdpbkFmdGVyV2l0
aENoaWxkcmVuID0gY29sbGFwc2U7IH0KKyAgICAgICAgdm9pZCBzZXREaXNjYXJkTWFyZ2luKGJv
b2wgdmFsdWUpIHsgbV9kaXNjYXJkTWFyZ2luID0gdmFsdWU7IH0KIAogICAgICAgICBib29sIGF0
QmVmb3JlU2lkZU9mQmxvY2soKSBjb25zdCB7IHJldHVybiBtX2F0QmVmb3JlU2lkZU9mQmxvY2s7
IH0KICAgICAgICAgYm9vbCBjYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSBjb25zdCB7IHJl
dHVybiBtX2F0QmVmb3JlU2lkZU9mQmxvY2sgJiYgbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdp
dGhDaGlsZHJlbjsgfQogICAgICAgICBib29sIGNhbkNvbGxhcHNlV2l0aE1hcmdpbkFmdGVyKCkg
Y29uc3QgeyByZXR1cm4gbV9hdEFmdGVyU2lkZU9mQmxvY2sgJiYgbV9jYW5Db2xsYXBzZU1hcmdp
bkFmdGVyV2l0aENoaWxkcmVuOyB9CiAgICAgICAgIGJvb2wgY2FuQ29sbGFwc2VNYXJnaW5CZWZv
cmVXaXRoQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3Jl
V2l0aENoaWxkcmVuOyB9CiAgICAgICAgIGJvb2wgY2FuQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhD
aGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2FuQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhDaGls
ZHJlbjsgfQotICAgICAgICB2b2lkIHNldENhbkNvbGxhcHNlTWFyZ2luQWZ0ZXJXaXRoQ2hpbGRy
ZW4oYm9vbCBjb2xsYXBzZSkgeyBtX2NhbkNvbGxhcHNlTWFyZ2luQWZ0ZXJXaXRoQ2hpbGRyZW4g
PSBjb2xsYXBzZTsgfQogICAgICAgICBib29sIHF1aXJrQ29udGFpbmVyKCkgY29uc3QgeyByZXR1
cm4gbV9xdWlya0NvbnRhaW5lcjsgfQogICAgICAgICBib29sIGRldGVybWluZWRNYXJnaW5CZWZv
cmVRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fZGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrOyB9
CiAgICAgICAgIGJvb2wgbWFyZ2luQmVmb3JlUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX21hcmdp
bkJlZm9yZVF1aXJrOyB9CiAgICAgICAgIGJvb2wgbWFyZ2luQWZ0ZXJRdWlyaygpIGNvbnN0IHsg
cmV0dXJuIG1fbWFyZ2luQWZ0ZXJRdWlyazsgfQogICAgICAgICBMYXlvdXRVbml0IHBvc2l0aXZl
TWFyZ2luKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGl2ZU1hcmdpbjsgfQogICAgICAgICBMYXlv
dXRVbml0IG5lZ2F0aXZlTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gbV9uZWdhdGl2ZU1hcmdpbjsg
fQorICAgICAgICBib29sIGRpc2NhcmRNYXJnaW4oKSBjb25zdCB7IHJldHVybiBtX2Rpc2NhcmRN
YXJnaW47IH0KICAgICAgICAgTGF5b3V0VW5pdCBtYXJnaW4oKSBjb25zdCB7IHJldHVybiBtX3Bv
c2l0aXZlTWFyZ2luIC0gbV9uZWdhdGl2ZU1hcmdpbjsgfQogICAgIH07CiAKQEAgLTExODIsOCAr
MTIwMywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICAsIG1fcGFnaW5hdGlvblN0cnV0KDAp
CiAgICAgICAgICAgICAsIG1fcGFnZUxvZ2ljYWxPZmZzZXQoMCkKICAgICAgICAgICAgICwgbV9s
aW5lR3JpZEJveCgwKQotICAgICAgICAgICAgLCBtX3Nob3VsZEJyZWFrQXRMaW5lVG9Bdm9pZFdp
ZG93KGZhbHNlKQogICAgICAgICAgICAgLCBtX2xpbmVCcmVha1RvQXZvaWRXaWRvdygwKQorICAg
ICAgICAgICAgLCBtX3Nob3VsZEJyZWFrQXRMaW5lVG9Bdm9pZFdpZG93KGZhbHNlKQorICAgICAg
ICAgICAgLCBtX2Rpc2NhcmRNYXJnaW5CZWZvcmUoZmFsc2UpCisgICAgICAgICAgICAsIG1fZGlz
Y2FyZE1hcmdpbkFmdGVyKGZhbHNlKQogICAgICAgICB7IAogICAgICAgICB9CiAKQEAgLTExOTEs
NyArMTIxNCw2IEBAIHByb3RlY3RlZDoKICAgICAgICAgeyAKICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om1heDxMYXlvdXRVbml0PihibG9jay0+bWFyZ2luQmVmb3JlKCksIDApOwogICAgICAgICB9
Ci0gICAgICAgIAogICAgICAgICBzdGF0aWMgTGF5b3V0VW5pdCBuZWdhdGl2ZU1hcmdpbkJlZm9y
ZURlZmF1bHQoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQogICAgICAgICB7IAogICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+KC1ibG9jay0+bWFyZ2luQmVmb3JlKCksIDAp
OwpAQCAtMTIxMSw4ICsxMjMzLDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgCiAgICAgICAgIFJv
b3RJbmxpbmVCb3gqIG1fbGluZUdyaWRCb3g7CiAKLSAgICAgICAgYm9vbCBtX3Nob3VsZEJyZWFr
QXRMaW5lVG9Bdm9pZFdpZG93OwogICAgICAgICBSb290SW5saW5lQm94KiBtX2xpbmVCcmVha1Rv
QXZvaWRXaWRvdzsKKyAgICAgICAgYm9vbCBtX3Nob3VsZEJyZWFrQXRMaW5lVG9Bdm9pZFdpZG93
IDogMTsKKyAgICAgICAgYm9vbCBtX2Rpc2NhcmRNYXJnaW5CZWZvcmUgOiAxOworICAgICAgICBi
b29sIG1fZGlzY2FyZE1hcmdpbkFmdGVyIDogMTsKICAgICAgfTsKIAogICAgIE93blB0cjxSZW5k
ZXJCbG9ja1JhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBmNWU1Y2QzN2NiZmQ5ZmU4MzhkMTA0Mjk3NDRhYjM1
YzljZGQ4ZWJjLi4wYmZkOTQxZmFlMDFjYjA2NzA5ZTI5NTc0OWVjZDMzZDhmYTE1NzU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMzc3LDYg
KzM3Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0JvcmRlcigpIGNvbnN0IHsgcmV0dXJuIHN1
cnJvdW5kLT5ib3JkZXIuaGFzQm9yZGVyKCk7IH0KICAgICBib29sIGhhc1BhZGRpbmcoKSBjb25z
dCB7IHJldHVybiBzdXJyb3VuZC0+cGFkZGluZy5ub25aZXJvKCk7IH0KICAgICBib29sIGhhc09m
ZnNldCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5vZmZzZXQubm9uWmVybygpOyB9CisgICAg
Ym9vbCBpc01hcmdpbkJlZm9yZVF1aXJrKCkgY29uc3QgeyByZXR1cm4gbWFyZ2luQmVmb3JlKCku
cXVpcmsoKTsgfQorICAgIGJvb2wgaXNNYXJnaW5BZnRlclF1aXJrKCkgY29uc3QgeyByZXR1cm4g
bWFyZ2luQWZ0ZXIoKS5xdWlyaygpOyB9CiAKICAgICBib29sIGhhc0JhY2tncm91bmRJbWFnZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLmhhc0ltYWdlKCk7IH0K
ICAgICBib29sIGhhc0ZpeGVkQmFja2dyb3VuZEltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9iYWNr
Z3JvdW5kLT5iYWNrZ3JvdW5kKCkuaGFzRml4ZWRJbWFnZSgpOyB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmEwZThjYmEz
OGJiZWY2ZTEyYmEwOWIyNjIxNjcxOTU1M2JhYmRhOS4uZjE4YzM5ZGI2MjY4MWEzM2M1YzdjNzVi
Mjc1N2U4NzNlNjk4ZjBiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAyLTA2ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgLXdl
YmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm91ciBuZXcgdGVzdHMg
Y292ZXJpbmcgdGhlIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnR5IGJhc2ljIGJlaGF2
aW9yOiBjb2xsYXBzaW5nCisgICAgICAgIGJldHdlZW4gYSBibG9jayBjb250YWluZXIgYW5kIGl0
cyBjaGlsZHJlbiwgY29sbGFwc2luZyBiZXR3ZWVuIHNpYmxpbmcgYm94ZXMgaW4gYm90aCBUVEIK
KyAgICAgICAgYW5kIEJUVCBkaXJlY3Rpb24uIFRoZSBsYXN0IHRlc3QgdmVyaWZpZXMgaWYgYSBj
b250YWluZXIncyBiZWZvcmUgbWFyZ2luIGNvcnJlY3RseSByZXNldHMKKyAgICAgICAgdGhlIGRp
c2NhcmQgdmFsdWUgYWZ0ZXIgYSBjbGVhciBvZiB0aGUgY2hpbGQgdGhhdCBpbml0YWxseSBjYXVz
ZWQgaXQuCisKKyAgICAgICAgKiBmYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFy
Z2luLWNvbGxhcHNlLWNvbnRhaW5lci1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWNvbnRhaW5l
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJr
aXQtbWFyZ2luLWNvbGxhcHNlLWZsb2F0cy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWZsb2F0
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJr
aXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWJ0LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Ut
c2libGluZ3MtYnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ibG9jay9tYXJnaW4tY29s
bGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNv
bGxhcHNlLXNpYmxpbmdzLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTA2ICBNYXJqYSBIw7ZsdHTD
pCAgPG1hcmphQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbV0syXSBOZXcgdGVzdHMgaW50cm9k
dWNlZCBpbiByMTAwODk1IGZhaWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2sv
bWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFpbmVyLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFy
Z2luLWNvbGxhcHNlLWNvbnRhaW5lci1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZTMyODUx
ZmRhNzg3MWMxYzgzMjY3YTNjNWY2ZTkwNDNlZTMyNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNl
LWNvbnRhaW5lci1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTU5IEBACis8aHRtbD4KKwk8aGVh
ZD4KKwkJPHN0eWxlPgorCQlkaXYgeworCQkJbWFyZ2luOiAwcHg7CisJCX0KKworCQkuY29udGFp
bmVyIHsKKwkJCWJvcmRlcjogdGhpbiBzb2xpZCBibHVlOworCQkJd2lkdGg6IDM1MHB4OworCQkJ
ZmxvYXQ6IGxlZnQ7CisJCX0KKworCQkubGV2ZWwxIHsKKwkJCW1hcmdpbi10b3A6IDEwcHg7CisJ
CQltYXJnaW4tYm90dG9tOiAxMHB4OworCQkJYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOworCQkJ
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisJCX0KKworCQkubGV2ZWwyIHsKKwkJCW1hcmdpbi10
b3A6IDI1cHg7CisJCQltYXJnaW4tYm90dG9tOiAyMHB4OworCQkJYmFja2dyb3VuZC1jb2xvcjog
b3JhbmdlOworCQl9CisKKwkJLmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiAzMHB4OworCQkJbWFy
Z2luLWJvdHRvbTogMzBweDsKKwkJCWJhY2tncm91bmQtY29sb3I6IHBpbms7CisJCX0KKworCQkj
dDEgLmxldmVsMiB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCX0KKworCQkjdDEgLmxldmVsMyB7
CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCX0KKworCQkjdDIgLmxldmVsMiB7CisJCQltYXJnaW4t
Ym90dG9tOiAwcHg7CisJCX0KKworCQkjdDIgLmxldmVsMyB7CisJCQltYXJnaW4tYm90dG9tOiAw
cHg7CisJCX0KKworCQkjdDMgLmxldmVsMiB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCX0KKwor
CQkjdDMgLmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCX0KKworCQkjdDQgLmxldmVs
MiB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjdDQgLmxldmVsMyB7CisJCQlt
YXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjdDUgLmxldmVsMiB7CisJCQltYXJnaW4tdG9w
OiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjdDUgLmxldmVsMyB7CisJ
CQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjdDYg
LmxldmVsMiB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJ
CX0KKworCQkjdDYgLmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90
dG9tOiAwcHg7CisJCX0KKworCQkjdDcgLmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJ
CX0KKworCQkjdDggLmxldmVsMyB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkj
dDkgLmxldmVsMiB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQlwYWRkaW5nLXRvcDogMzBweDsK
KwkJfQorCisJCSN0OSAubGV2ZWwzIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJfQorCisJCSN0
MTAgLmxldmVsMiB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCQlwYWRkaW5nLWJvdHRvbTog
MzBweDsKKwkJfQorCisJCSN0MTAgLmxldmVsMyB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJ
CX0KKworCQkjdDExIC5sZXZlbDIgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJcGFkZGluZy10
b3A6IDMwcHg7CisJCX0KKworCQkjdDExIC5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMHB4Owor
CQl9CisKKwkJI3QxMSB7CisJCQlwYWRkaW5nLXRvcDogMjVweDsKKwkJfQorCisJCSN0MTIgLmxl
dmVsMiB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCQlwYWRkaW5nLWJvdHRvbTogMzBweDsK
KwkJfQorCisJCSN0MTIgLmxldmVsMyB7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKwor
CQkjdDEyIHsKKwkJCXBhZGRpbmctYm90dG9tOiAyMHB4OworCQl9CisKKwkJPC9zdHlsZT4KKwk8
L2hlYWQ+CisJPGJvZHk+CisJCTxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNjgiPkltcGxlbWVudCB0aGUgLXdlYmtpdC1tYXJn
aW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZzwvYT4uPC9wPgorCQk8cD5U
aGlzIHJlZiB0ZXN0IGNvdmVycyBiYXNpYyBjb2xsYXBzaW5nIGJlaGF2aW9yIGJldHdlZW4gYSBi
b3ggYW5kIGl0cyBjb250YWluZXIgd2hlbiB1c2luZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS48
L3A+CisJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisJCQk8ZGl2IGlkPSJ0MSIgY2xhc3M9Imxl
dmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPlBpbms6IGRpc2Nh
cmQgdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0MiIgY2xhc3M9ImxldmVsMSI+
PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPlBpbms6IGRpc2NhcmQgYm90
dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0MyIgY2xhc3M9ImxldmVsMSI+PGRp
diBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogZGlzY2FyZCB0b3A8
L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQ0IiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNs
YXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIGJvdHRvbTwv
ZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDUiIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xh
c3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IGRpc2NhcmQgdG9wLCBkaXNj
YXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDYiIGNsYXNzPSJsZXZl
bDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5QaW5rOiBkaXNjYXJk
IHRvcCwgZGlzY2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQ3IiBj
bGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3Jh
bmdlOiBzZXBhcmF0ZSB0b3AsIFBpbms6IGRpc2NhcmQgdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJ
CQk8ZGl2IGlkPSJ0OCIgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNs
YXNzPSJsZXZlbDMiPk9yYW5nZTogc2VwYXJhdGUgYm90dG9tLCBQaW5rOiBkaXNjYXJkIGJvdHRv
bTwvZGl2PjwvZGl2PjwvZGl2PgorCQk8L2Rpdj4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KwkJCTxkaXYgaWQ9InQ5IiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYg
Y2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIHRvcCwgUGluazogc2VwYXJhdGUgdG9wPC9k
aXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0MTAiIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xh
c3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IGRpc2NhcmQgYm90dG9tLCBQ
aW5rOiBzZXBhcmF0ZSBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQxMSIg
Y2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPk9y
YW5nZTogc2VwYXJhdGUgdG9wLCBQaW5rOiBzZXBhcmF0ZSB0b3A8L2Rpdj48L2Rpdj48L2Rpdj4K
KwkJCTxkaXYgaWQ9InQxMiIgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2
IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogc2VwYXJhdGUgYm90dG9tLCBQaW5rOiBzZXBhcmF0ZSBi
b3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJPC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxv
Y2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFpbmVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNv
bGxhcHNlLWNvbnRhaW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZDg2Y2E0MzliZjA2MmNkMDk5ZjVl
ZjIyZWY1NmE5NmY2ZmNmOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWNvbnRhaW5lci5odG1s
CkBAIC0wLDAgKzEsNzggQEAKKzxodG1sPgorCTxoZWFkPgorCQk8c3R5bGU+CisJCWRpdiB7CisJ
CQltYXJnaW46IDBweDsKKwkJfQorCisJCS5jb250YWluZXIgeworCQkJYm9yZGVyOiB0aGluIHNv
bGlkIGJsdWU7CisJCQl3aWR0aDogMzUwcHg7CisJCQlmbG9hdDogbGVmdDsKKwkJfQorCisJCS5s
ZXZlbDEgeworCQkJbWFyZ2luLXRvcDogMTBweDsKKwkJCW1hcmdpbi1ib3R0b206IDEwcHg7CisJ
CQlib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsK
KwkJfQorCisJCS5sZXZlbDIgeworCQkJbWFyZ2luLXRvcDogMjVweDsKKwkJCW1hcmdpbi1ib3R0
b206IDIwcHg7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7CisJCX0KKworCQkubGV2ZWwz
IHsKKwkJCW1hcmdpbi10b3A6IDMwcHg7CisJCQltYXJnaW4tYm90dG9tOiAzMHB4OworCQkJYmFj
a2dyb3VuZC1jb2xvcjogcGluazsKKwkJfQorCisJCS5jb2xsYXBzZV90b3AgeworCQkJLXdlYmtp
dC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBjb2xsYXBzZTsKKwkJfQorCisJCS5jb2xsYXBzZV9ib3R0
b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlOiBjb2xsYXBzZTsKKwkJfQor
CisJCS5kaXNjYXJkX3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IGRpc2Nh
cmQ7CisJCX0KKworCQkuZGlzY2FyZF9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9t
LWNvbGxhcHNlOiBkaXNjYXJkOworCQl9CisKKwkJLnNlcGFyYXRlX3RvcCB7CisJCQktd2Via2l0
LW1hcmdpbi10b3AtY29sbGFwc2U6IHNlcGFyYXRlOworCQl9CisKKwkJLnNlcGFyYXRlX2JvdHRv
bSB7CisJCQktd2Via2l0LW1hcmdpbi1ib3R0b20tY29sbGFwc2U6IHNlcGFyYXRlOworCQl9CisJ
CTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBsZW1lbnQgdGhl
IC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5kZXJpbmc8L2E+
LjwvcD4KKwkJPHA+VGhpcyByZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2luZyBiZWhhdmlv
ciBiZXR3ZWVuIGEgYm94IGFuZCBpdHMgY29udGFpbmVyIHdoZW4gdXNpbmcgLXdlYmtpdC1tYXJn
aW4tY29sbGFwc2UuPC9wPgorCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorCQkJPGRpdiBjbGFz
cz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyBkaXNjYXJk
X3RvcCI+UGluazogZGlzY2FyZCB0b3A8L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9
ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMgZGlzY2FyZF9i
b3R0b20iPlBpbms6IGRpc2NhcmQgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGNs
YXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiBkaXNjYXJkX3RvcCI+PGRpdiBjbGFzcz0i
bGV2ZWwzIj5PcmFuZ2U6IGRpc2NhcmQgdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGNs
YXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiBkaXNjYXJkX2JvdHRvbSI+PGRpdiBjbGFz
cz0ibGV2ZWwzIj5PcmFuZ2U6IGRpc2NhcmQgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8
ZGl2IGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiBkaXNjYXJkX3RvcCBkaXNjYXJk
X2JvdHRvbSI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IGRpc2NhcmQgdG9wLCBkaXNjYXJk
IGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNs
YXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyBkaXNjYXJkX3RvcCBkaXNjYXJkX2JvdHRv
bSI+UGluazogZGlzY2FyZCB0b3AsIGRpc2NhcmQgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJ
CQk8ZGl2IGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiBzZXBhcmF0ZV90b3AiPjxk
aXYgY2xhc3M9ImxldmVsMyBkaXNjYXJkX3RvcCI+T3JhbmdlOiBzZXBhcmF0ZSB0b3AsIFBpbms6
IGRpc2NhcmQgdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJsZXZlbDEiPjxk
aXYgY2xhc3M9ImxldmVsMiBzZXBhcmF0ZV9ib3R0b20iPjxkaXYgY2xhc3M9ImxldmVsMyBkaXNj
YXJkX2JvdHRvbSI+T3JhbmdlOiBzZXBhcmF0ZSBib3R0b20sIFBpbms6IGRpc2NhcmQgYm90dG9t
PC9kaXY+PC9kaXY+PC9kaXY+CisJCTwvZGl2PgorCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
CQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgZGlzY2FyZF90b3AiPjxk
aXYgY2xhc3M9ImxldmVsMyBzZXBhcmF0ZV90b3AiPk9yYW5nZTogZGlzY2FyZCB0b3AsIFBpbms6
IHNlcGFyYXRlIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48
ZGl2IGNsYXNzPSJsZXZlbDIgZGlzY2FyZF9ib3R0b20iPjxkaXYgY2xhc3M9ImxldmVsMyBzZXBh
cmF0ZV9ib3R0b20iPk9yYW5nZTogZGlzY2FyZCBib3R0b20sIFBpbms6IHNlcGFyYXRlIGJvdHRv
bTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJs
ZXZlbDIgc2VwYXJhdGVfdG9wIj48ZGl2IGNsYXNzPSJsZXZlbDMgc2VwYXJhdGVfdG9wIj5PcmFu
Z2U6IHNlcGFyYXRlIHRvcCwgUGluazogc2VwYXJhdGUgdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJ
CQk8ZGl2IGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiBzZXBhcmF0ZV9ib3R0b20i
PjxkaXYgY2xhc3M9ImxldmVsMyBzZXBhcmF0ZV9ib3R0b20iPk9yYW5nZTogc2VwYXJhdGUgYm90
dG9tLCBQaW5rOiBzZXBhcmF0ZSBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJPC9kaXY+CisJ
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29s
bGFwc2UtZmxvYXRzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdp
bi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWZsb2F0cy1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZjYTFkMzk1ZDIxMDA3YTlhMGE5NTdlYWY5ZmEzYmFjY2IxNjIxNjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJr
aXQtbWFyZ2luLWNvbGxhcHNlLWZsb2F0cy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDEgQEAK
KzxodG1sPgorCTxoZWFkPgorCQk8c3R5bGU+CisJCWRpdiB7CisJCQltYXJnaW46IDBweDsKKwkJ
fQorCisJCS5jb250YWluZXIgeworCQkJYm9yZGVyOiB0aGluIHNvbGlkIGJsdWU7CisJCQl3aWR0
aDogNjAwcHg7CisJCX0KKworCQkjZmxvYXQgeworCQkJZmxvYXQ6IGxlZnQ7CisJCQl3aWR0aDog
MjAwcHg7CisJCQloZWlnaHQ6IDIwMHB4OworCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisJ
CX0KKworCQkjcGFyZW50IHsKKwkJCW1hcmdpbi10b3A6IDUwcHg7CisJCX0KKworCQkjY29udGVu
dCB7CisJCQltYXJnaW4tdG9wOiA1MHB4OworCQkJY2xlYXI6IGxlZnQ7CisJCX0KKwkJPC9zdHls
ZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNjgiPkltcGxlbWVudCB0aGUgLXdlYmtp
dC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZzwvYT4uPC9wPgor
CQk8cD5UaGlzIHJlZiB0ZXN0IGNvdmVycyBiYXNpYyBjb2xsYXBzaW5nIGJlaGF2aW9yIHdoZW4g
YSBjaGlsZCB3aXRoIGEgZGlzY2FyZCB0b3AgbWFyZ2luIGlzIGNsZWFyZWQgYW5kIGl0cyB0b3Ag
bWFyZ2luIGRvZXNuJ3QgY29sbGFwc2Ugd2l0aCB0aGUgdG9wIG1hcmdpbiBvZiB0aGUgY29udGFp
bmluZyBibG9jayBhbnkgbW9yZS4KKwkJCVRoZSB0b3AgbWFyZ2luIG9mIHRoZSBjb250YWluaW5n
IGJsb2NrIG5lZWRzIHRvIGJlIHJlc3RvcmVkLjwvcD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKwkJCTxkaXYgaWQ9InBhcmVudCI+CisJCQkJPGRpdiBpZD0iZmxvYXQiPjwvZGl2PgorCQkJ
CTxkaXYgaWQ9ImNvbnRlbnQiPkNsYXNzIGFwdGVudCB0YWNpdGkgc29jaW9zcXUgYWQgbGl0b3Jh
IHRvcnF1ZW50IHBlciBjb251YmlhIG5vc3RyYSwgcGVyIGluY2VwdG9zIGhpbWVuYWVvcy4gTnVu
YyBvcmNpIG1hdXJpcywgdWx0cmljZXMgbm9uIGJsYW5kaXQgbm9uLCBmZXJtZW50dW0gYSBsaWJl
cm8uIE1vcmJpIGFudGUgZWxpdCwgZmF1Y2lidXMgdmVsIGRpZ25pc3NpbSBxdWlzLCBldWlzbW9k
IGEgYXJjdS4gU2VkIHRlbXB1cyBzdXNjaXBpdCBudWxsYSwgdml0YWUgdmFyaXVzIGVsaXQgc3Vz
Y2lwaXQgZXQuIFBlbGxlbnRlc3F1ZSBjb25zZXF1YXQgbG9ib3J0aXMgYmxhbmRpdC4gVml2YW11
cyBhIHRlbXB1cyBkaWFtLiBTdXNwZW5kaXNzZSBudWxsYSBsZWN0dXMsIGNvbnNlcXVhdCBxdWlz
IHRlbXBvciB2aXRhZSwgcGxhY2VyYXQgc2VkIGxvcmVtLiBQaGFzZWxsdXMgYXQgZG9sb3IgZmVs
aXMsIHV0IHVsdHJpY2llcyBsYWN1cy4gUHJhZXNlbnQgdmVsIHR1cnBpcyBsYWN1cy4gTmFtIHVs
dHJpY2llcyBhdWd1ZSBpbiBlcmF0IGNvbmd1ZSBhYyB0ZW1wb3IgbmVxdWUgY3Vyc3VzLjwvZGl2
PgorCQkJPC9kaXY+CisJCTwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1j
b2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWZsb2F0cy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1mbG9hdHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZjlhNDlhMGFlYjQ0ZWJmYWRjNjg1OGEyMmJhOTQ5YjkyNGEyZWQy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFw
c2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1mbG9hdHMuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8
aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYgeworCQkJbWFyZ2luOiAwcHg7CisJCX0K
KworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhpbiBzb2xpZCBibHVlOworCQkJd2lkdGg6
IDYwMHB4OworCQl9CisKKwkJLmRpc2NhcmRfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1j
b2xsYXBzZTogZGlzY2FyZDsKKwkJfQorCisJCSNmbG9hdCB7CisJCQlmbG9hdDogbGVmdDsKKwkJ
CXdpZHRoOiAyMDBweDsKKwkJCWhlaWdodDogMjAwcHg7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKKwkJfQorCisJCSNwYXJlbnQgeworCQkJbWFyZ2luLXRvcDogNTBweDsKKwkJfQorCisJ
CSNjb250ZW50IHsKKwkJCW1hcmdpbi10b3A6IDUwcHg7CisJCQljbGVhcjogbGVmdDsKKwkJfQor
CQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2OCI+SW1wbGVtZW50IHRo
ZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJlY3QgcmVuZGVyaW5nPC9h
Pi48L3A+CisJCTxwPlRoaXMgcmVmIHRlc3QgY292ZXJzIGJhc2ljIGNvbGxhcHNpbmcgYmVoYXZp
b3Igd2hlbiBhIGNoaWxkIHdpdGggYSBkaXNjYXJkIHRvcCBtYXJnaW4gaXMgY2xlYXJlZCBhbmQg
aXRzIHRvcCBtYXJnaW4gZG9lc24ndCBjb2xsYXBzZSB3aXRoIHRoZSB0b3AgbWFyZ2luIG9mIHRo
ZSBjb250YWluaW5nIGJsb2NrIGFueSBtb3JlLgorCQkJVGhlIHRvcCBtYXJnaW4gb2YgdGhlIGNv
bnRhaW5pbmcgYmxvY2sgbmVlZHMgdG8gYmUgcmVzdG9yZWQuPC9wPgorCQk8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorCQkJPGRpdiBpZD0icGFyZW50Ij4KKwkJCQk8ZGl2IGlkPSJmbG9hdCI+PC9k
aXY+CisJCQkJPGRpdiBpZD0iY29udGVudCIgY2xhc3M9ImRpc2NhcmRfdG9wIj5DbGFzcyBhcHRl
bnQgdGFjaXRpIHNvY2lvc3F1IGFkIGxpdG9yYSB0b3JxdWVudCBwZXIgY29udWJpYSBub3N0cmEs
IHBlciBpbmNlcHRvcyBoaW1lbmFlb3MuIE51bmMgb3JjaSBtYXVyaXMsIHVsdHJpY2VzIG5vbiBi
bGFuZGl0IG5vbiwgZmVybWVudHVtIGEgbGliZXJvLiBNb3JiaSBhbnRlIGVsaXQsIGZhdWNpYnVz
IHZlbCBkaWduaXNzaW0gcXVpcywgZXVpc21vZCBhIGFyY3UuIFNlZCB0ZW1wdXMgc3VzY2lwaXQg
bnVsbGEsIHZpdGFlIHZhcml1cyBlbGl0IHN1c2NpcGl0IGV0LiBQZWxsZW50ZXNxdWUgY29uc2Vx
dWF0IGxvYm9ydGlzIGJsYW5kaXQuIFZpdmFtdXMgYSB0ZW1wdXMgZGlhbS4gU3VzcGVuZGlzc2Ug
bnVsbGEgbGVjdHVzLCBjb25zZXF1YXQgcXVpcyB0ZW1wb3Igdml0YWUsIHBsYWNlcmF0IHNlZCBs
b3JlbS4gUGhhc2VsbHVzIGF0IGRvbG9yIGZlbGlzLCB1dCB1bHRyaWNpZXMgbGFjdXMuIFByYWVz
ZW50IHZlbCB0dXJwaXMgbGFjdXMuIE5hbSB1bHRyaWNpZXMgYXVndWUgaW4gZXJhdCBjb25ndWUg
YWMgdGVtcG9yIG5lcXVlIGN1cnN1cy48L2Rpdj4KKwkJCTwvZGl2PgorCQk8L2Rpdj4KKwk8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBz
ZS1zaWJsaW5ncy1idC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJn
aW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1idC1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFiNTNkMjU4Zjc4ZGRmZjQzZWYwOTJmNzVlY2M3YjRiYjczYTllMjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBz
ZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWJ0LWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSw5NSBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTxzdHlsZT4KKwkJZGl2IHsKKwkJCW1hcmdp
bjogMHB4OworCQl9CisKKwkJLmNvbnRhaW5lciB7CisJCQlib3JkZXI6IHRoaW4gc29saWQgYmx1
ZTsKKwkJCXdpZHRoOiAzMDBweDsKKwkJfQorCisJCS5ibG9jayB7CisJCQliYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsKKwkJCW1hcmdpbi10b3A6IDRweDsKKwkJCW1hcmdpbi1ib3R0b206IDZweDsK
KwkJCWJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKKwkJCS13ZWJraXQtd3JpdGluZy1tb2RlOiBo
b3Jpem9udGFsLWJ0OworCQl9CisKKwkJLmNvbGxhcHNlX3RvcDpiZWZvcmUsIC5jb2xsYXBzZV9i
b3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIkNvbGxhcHNlIjsKKwkJfQorCisJCS5kaXNjYXJk
X3RvcDpiZWZvcmUsIC5kaXNjYXJkX2JvdHRvbTphZnRlciB7CisJCQljb250ZW50OiAiRGlzY2Fy
ZCI7CisJCX0KKworCQkuc2VwYXJhdGVfdG9wOmJlZm9yZSwgLnNlcGFyYXRlX2JvdHRvbTphZnRl
ciB7CisJCQljb250ZW50OiAiU2VwYXJhdGUiOworCQl9CisKKwkJI2IyIHsKKwkJCW1hcmdpbi10
b3A6IDZweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNiMyB7CisJCQltYXJn
aW4tdG9wOiA2cHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjYjQgeworCQkJ
bWFyZ2luLXRvcDogNnB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI2I1IHsK
KwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNi
NiB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKwor
CQkjYjcgeworCQkJbWFyZ2luLXRvcDogMTRweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJ
fQorCisJCSNiOCB7CisJCQltYXJnaW4tdG9wOiA0cHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7
CisJCX0KKworCQkjYjkgeworCQkJbWFyZ2luLXRvcDogMTBweDsKKwkJCW1hcmdpbi1ib3R0b206
IDEwcHg7CisJCX0KKworCQkjYjEwIHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCW1hcmdpbi1i
b3R0b206IDBweDsKKwkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVz
dCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
ODE2OCI+SW1wbGVtZW50IHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNv
cnJlY3QgcmVuZGVyaW5nPC9hPi48L3A+CisJCTxwPlRoaXMgcmVmIHRlc3QgY292ZXJzIGJhc2lj
IGNvbGxhcHNpbmcgYmVoYXZpb3IgYmV0d2VlbiBzaWJsaW5nIGJveGVzIHdoZW4gdXNpbmcgLXdl
YmtpdC1tYXJnaW4tY29sbGFwc2UuIFRoZSBibG9ja3MgaGF2ZSBsci1idCB3cml0aW5nIG1vZGUu
PC9wPgorCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorCQkJPGRpdiBpZD0iYjEiIGNsYXNzPSJi
bG9jayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBp
ZD0iYjIiIGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwv
ZGl2PgorCQkJPGRpdiBpZD0iYjMiIGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3AgY29sbGFwc2Vf
Ym90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjQiIGNsYXNzPSJibG9jayBkaXNjYXJk
X3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI1IiBjbGFzcz0i
YmxvY2sgY29sbGFwc2VfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBp
ZD0iYjYiIGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9k
aXY+CisJCQk8ZGl2IGlkPSJiNyIgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9wIHNlcGFyYXRlX2Jv
dHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI4IiBjbGFzcz0iYmxvY2sgY29sbGFwc2Vf
dG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI5IiBjbGFzcz0i
YmxvY2sgc2VwYXJhdGVfdG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYg
aWQ9ImIxMCIgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48
L2Rpdj4KKwkJPC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNl
L3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3Mt
YnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mOGEzMGUxYTMyZGQ4YjBlNGQ1ZTYzOTM5ZjhhMGRiNGM2OTU0
MWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29s
bGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1idC5odG1sCkBAIC0wLDAgKzEs
ODkgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8c3R5bGU+CisJCWRpdiB7CisJCQltYXJnaW46IDBw
eDsKKwkJfQorCisJCS5jb250YWluZXIgeworCQkJYm9yZGVyOiB0aGluIHNvbGlkIGJsdWU7CisJ
CQl3aWR0aDogMzAwcHg7CisJCX0KKworCQkuYmxvY2sgeworCQkJYmFja2dyb3VuZC1jb2xvcjog
Z3JlZW47CisJCQltYXJnaW4tdG9wOiA0cHg7CisJCQltYXJnaW4tYm90dG9tOiA2cHg7CisJCQli
b3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7CisJCQktd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpv
bnRhbC1idDsKKwkJfQorCisJCS5zZWxmX2NvbGxhcHNlIHsKKwkJCW1hcmdpbi10b3A6IDJweDsK
KwkJCW1hcmdpbi1ib3R0b206IDRweDsKKwkJCWhlaWdodDogMHB4OworCQl9CisKKwkJLmNvbGxh
cHNlX3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IGNvbGxhcHNlOworCQl9
CisKKwkJLmNvbGxhcHNlX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdpbi1ib3R0b20tY29sbGFw
c2U6IGNvbGxhcHNlOworCQl9CisKKwkJLmNvbGxhcHNlX3RvcDpiZWZvcmUsIC5jb2xsYXBzZV9i
b3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIkNvbGxhcHNlIjsKKwkJfQorCisJCS5kaXNjYXJk
X3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IGRpc2NhcmQ7CisJCX0KKwor
CQkuZGlzY2FyZF9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlOiBk
aXNjYXJkOworCQl9CisKKwkJLmRpc2NhcmRfdG9wOmJlZm9yZSwgLmRpc2NhcmRfYm90dG9tOmFm
dGVyIHsKKwkJCWNvbnRlbnQ6ICJEaXNjYXJkIjsKKwkJfQorCisJCS5zZXBhcmF0ZV90b3Agewor
CQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBzZXBhcmF0ZTsKKwkJfQorCisJCS5zZXBh
cmF0ZV9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlOiBzZXBhcmF0
ZTsKKwkJfQorCisJCS5zZXBhcmF0ZV90b3A6YmVmb3JlLCAuc2VwYXJhdGVfYm90dG9tOmFmdGVy
IHsKKwkJCWNvbnRlbnQ6ICJTZXBhcmF0ZSI7CisJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJ
PGJvZHk+CisJCTxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDgxNjgiPkltcGxlbWVudCB0aGUgLXdlYmtpdC1tYXJnaW4tY29sbGFw
c2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZzwvYT4uPC9wPgorCQk8cD5UaGlzIHJlZiB0
ZXN0IGNvdmVycyBiYXNpYyBjb2xsYXBzaW5nIGJlaGF2aW9yIGJldHdlZW4gc2libGluZyBib3hl
cyB3aGVuIHVzaW5nIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlLiBUaGUgYmxvY2tzIGhhdmUgbHIt
YnQgd3JpdGluZyBtb2RlLjwvcD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKwkJCTxkaXYg
Y2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJ
CQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2Nr
IGNvbGxhcHNlX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNz
PSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3Rv
cCBjb2xsYXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxh
cHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9wIGRpc2NhcmRfYm90
dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJ
CQk8ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9k
aXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9
ImJsb2NrIHNlcGFyYXRlX3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYg
Y2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgZGlzY2Fy
ZF90b3Agc2VwYXJhdGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9j
b2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3Agc2VwYXJh
dGVfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9k
aXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3Agc2VwYXJhdGVfYm90dG9tIj48
YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2
IGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBjb2xsYXBzZV9ib3R0b20iPjxici8+PC9kaXY+CisJ
CTwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQt
bWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJmZDI5M2U0NzMyNjI5MGIwYWIyMjBmZWRkYmNmMTZk
MDI0YzljNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2lu
LWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDkzIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYgeworCQkJ
bWFyZ2luOiAwcHg7CisJCX0KKworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhpbiBzb2xp
ZCBibHVlOworCQkJd2lkdGg6IDMwMHB4OworCQl9CisKKwkJLmJsb2NrIHsKKwkJCWJhY2tncm91
bmQtY29sb3I6IGdyZWVuOworCQkJbWFyZ2luLXRvcDogNHB4OworCQkJbWFyZ2luLWJvdHRvbTog
NnB4OworCQkJYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOworCQl9CisKKwkJLmNvbGxhcHNlX3Rv
cDpiZWZvcmUsIC5jb2xsYXBzZV9ib3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIkNvbGxhcHNl
IjsKKwkJfQorCisJCS5kaXNjYXJkX3RvcDpiZWZvcmUsIC5kaXNjYXJkX2JvdHRvbTphZnRlciB7
CisJCQljb250ZW50OiAiRGlzY2FyZCI7CisJCX0KKworCQkuc2VwYXJhdGVfdG9wOmJlZm9yZSwg
LnNlcGFyYXRlX2JvdHRvbTphZnRlciB7CisJCQljb250ZW50OiAiU2VwYXJhdGUiOworCQl9CisK
KwkJI2IyIHsKKwkJCW1hcmdpbi10b3A6IDZweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJ
fQorCisJCSNiMyB7CisJCQltYXJnaW4tdG9wOiAxMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4
OworCQl9CisKKwkJI2I0IHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCW1hcmdpbi1ib3R0b206
IDBweDsKKwkJfQorCisJCSNiNSB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90
dG9tOiAwcHg7CisJCX0KKworCQkjYjYgeworCQkJbWFyZ2luLXRvcDogNHB4OworCQkJbWFyZ2lu
LWJvdHRvbTogMHB4OworCQl9CisKKwkJI2I3IHsKKwkJCW1hcmdpbi10b3A6IDBweDsKKwkJCW1h
cmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNiOCB7CisJCQltYXJnaW4tdG9wOiAxMHB4Owor
CQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI2I5IHsKKwkJCW1hcmdpbi10b3A6IDE0
cHg7CisJCQltYXJnaW4tYm90dG9tOiA2cHg7CisJCX0KKworCQkjYjEwIHsKKwkJCW1hcmdpbi10
b3A6IDBweDsKKwkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBm
b3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2
OCI+SW1wbGVtZW50IHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJl
Y3QgcmVuZGVyaW5nPC9hPi48L3A+CisJCTxwPlRoaXMgcmVmIHRlc3QgY292ZXJzIGJhc2ljIGNv
bGxhcHNpbmcgYmVoYXZpb3IgYmV0d2VlbiBzaWJsaW5nIGJveGVzIHdoZW4gdXNpbmcgLXdlYmtp
dC1tYXJnaW4tY29sbGFwc2UuIFRoZSBibG9ja3MgaGF2ZSBsci10YiB3cml0aW5nIG1vZGUuPC9w
PgorCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorCQkJPGRpdiBpZD0iYjEiIGNsYXNzPSJibG9j
ayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0i
YjIiIGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2
PgorCQkJPGRpdiBpZD0iYjMiIGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3AgY29sbGFwc2VfYm90
dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjQiIGNsYXNzPSJibG9jayBkaXNjYXJkX3Rv
cCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI1IiBjbGFzcz0iYmxv
Y2sgY29sbGFwc2VfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0i
YjYiIGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+
CisJCQk8ZGl2IGlkPSJiNyIgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9wIHNlcGFyYXRlX2JvdHRv
bSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI4IiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9w
IHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI5IiBjbGFzcz0iYmxv
Y2sgc2VwYXJhdGVfdG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9
ImIxMCIgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rp
dj4KKwkJPC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dl
YmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYmxv
Y2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hYjZjZDg4MTJmODNjMTM2ZDU2YWE2ZTBhOTZhYzZiN2IwMGY5MWNmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Vi
a2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy5odG1sCkBAIC0wLDAgKzEsODggQEAKKzxodG1s
PgorCTxoZWFkPgorCQk8c3R5bGU+CisJCWRpdiB7CisJCQltYXJnaW46IDBweDsKKwkJfQorCisJ
CS5jb250YWluZXIgeworCQkJYm9yZGVyOiB0aGluIHNvbGlkIGJsdWU7CisJCQl3aWR0aDogMzAw
cHg7CisJCX0KKworCQkuYmxvY2sgeworCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisJCQlt
YXJnaW4tdG9wOiA0cHg7CisJCQltYXJnaW4tYm90dG9tOiA2cHg7CisJCQlib3JkZXI6IDFweCBk
YXNoZWQgYmxhY2s7CisJCX0KKworCQkuc2VsZl9jb2xsYXBzZSB7CisJCQltYXJnaW4tdG9wOiAy
cHg7CisJCQltYXJnaW4tYm90dG9tOiA0cHg7CisJCQloZWlnaHQ6IDBweDsKKwkJfQorCisJCS5j
b2xsYXBzZV90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBjb2xsYXBzZTsK
KwkJfQorCisJCS5jb2xsYXBzZV9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNv
bGxhcHNlOiBjb2xsYXBzZTsKKwkJfQorCisJCS5jb2xsYXBzZV90b3A6YmVmb3JlLCAuY29sbGFw
c2VfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJDb2xsYXBzZSI7CisJCX0KKworCQkuZGlz
Y2FyZF90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBkaXNjYXJkOworCQl9
CisKKwkJLmRpc2NhcmRfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBz
ZTogZGlzY2FyZDsKKwkJfQorCisJCS5kaXNjYXJkX3RvcDpiZWZvcmUsIC5kaXNjYXJkX2JvdHRv
bTphZnRlciB7CisJCQljb250ZW50OiAiRGlzY2FyZCI7CisJCX0KKworCQkuc2VwYXJhdGVfdG9w
IHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogc2VwYXJhdGU7CisJCX0KKworCQku
c2VwYXJhdGVfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBzZTogc2Vw
YXJhdGU7CisJCX0KKworCQkuc2VwYXJhdGVfdG9wOmJlZm9yZSwgLnNlcGFyYXRlX2JvdHRvbTph
ZnRlciB7CisJCQljb250ZW50OiAiU2VwYXJhdGUiOworCQl9CisJCTwvc3R5bGU+CisJPC9oZWFk
PgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBsZW1lbnQgdGhlIC13ZWJraXQtbWFyZ2luLWNv
bGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5kZXJpbmc8L2E+LjwvcD4KKwkJPHA+VGhpcyBy
ZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2luZyBiZWhhdmlvciBiZXR3ZWVuIHNpYmxpbmcg
Ym94ZXMgd2hlbiB1c2luZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS4gVGhlIGJsb2NrcyBoYXZl
IGxyLXRiIHdyaXRpbmcgbW9kZS48L3A+CisJCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisJCQk8
ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2
PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJi
bG9jayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBj
bGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBzZXBhcmF0
ZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9j
b2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBkaXNjYXJk
X2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2
PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGRpc2NhcmRfYm90dG9tIj48YnIv
PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNs
YXNzPSJibG9jayBzZXBhcmF0ZV90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8
ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGRp
c2NhcmRfdG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNl
bGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIHNl
cGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2Ui
PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIHNlcGFyYXRlX2JvdHRv
bSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJ
PGRpdiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2
PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187101</attachid>
            <date>2013-02-07 07:15:12 -0800</date>
            <delta_ts>2013-02-15 02:24:08 -0800</delta_ts>
            <desc>Patch v4</desc>
            <filename>bug-108168-20130207171147.patch</filename>
            <type>text/plain</type>
            <size>62832</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjNTBiZjA0NjVkYjUw
MDQ4OTU5YzgxYTZhYTI4NWYzNjcyYWFiMC4uNDc0MmE4NWFjMTNmY2JjYWZkYWYwZmE1NjdhODdm
ZThmNGIwMWUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEzLTAyLTA2ICBBbmRy
ZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0aGUgLXdl
YmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHBhdGNoIGltcGxl
bWVudHMgdGhlIGNvcnJlY3QgYmVoYXZpb3IgZm9yIHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBz
ZSBwcm9wZXJ0aWVzOgorICAgICAgICAtIGEgdmFsdWUgb2YgImRpc2NhcmQiIG9uIGEgbWFyZ2lu
IHdpbGwgdHJ1bmNhdGUgYWxsIHRoZSBtYXJnaW5zIGNvbGxhcHNpbmcgd2l0aCBpdDsKKyAgICAg
ICAgLSBhIHZhbHVlIG9mICJzZXBhcmF0ZSIgd2lsbCBwcmV2ZW50IHRoZSBtYXJnaW4gdG8gY29s
bGFwc2U7CisgICAgICAgIC0gYSB2YWx1ZSBvZiAiY29sbGFwc2UiIGlzIHRoZSBkZWZhdWx0IGNv
bGxhcHNlIGJlaGF2aW9yLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhd2FyZSBv
ZiBtdWx0aXBsZSB3cml0aW5nLW1vZGVzOgorICAgICAgICAtIGlmIHRoZSB3cml0aW5nIG1vZGUg
b2YgYSBjaGlsZCBpcyBwYXJhbGxlbCB3aXRoIHRoZSB3cml0aW5nIG1vZGUgb2YgdGhlIGNvbnRh
aW5lciBhbmQgaGFzIHRoZSBzYW1lIGRpcmVjdGlvbiwKKyAgICAgICAgdGhlIC13ZWJraXQtbWFy
Z2luLWNvbGxhcHNlIHByb3BlcnRpZXMgb24gdGhlIGNoaWxkIGFyZSBsZWZ0IGFzIGlzOworICAg
ICAgICAtIGlmIHRoZSB3cml0aW5nIG1vZGUgb2YgYSBjaGlsZCBpcyBwYXJhbGxlbCB3aXRoIHRo
ZSB3cml0aW5nIG1vZGUgb2YgdGhlIGNvbnRhaW5lciBidXQgaGFzIGEgZGlmZmVyZW50IGRpcmVj
dGlvbiwKKyAgICAgICAgdGhlIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgb24g
dGhlIGNoaWxkIGFyZSByZXZlcnNlZDsKKyAgICAgICAgLSBpZiB0aGUgd3JpdGluZyBtb2RlIG9m
IGEgY2hpbGQgaXMgcGVycGVuZGljdWxhciBvbiB0aGUgd3JpdGluZyBtb2RlIG9mIHRoZSBjb250
YWluZXIsCisgICAgICAgIHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIG9u
IHRoZSBjaGlsZCBhcmUgaWdub3JlZDsKKworICAgICAgICBJLiBUaGUgImRpc2NhcmQiIHZhbHVl
IGltcGxlbWVudGF0aW9uCisgICAgICAgIFRoZXJlIGFyZSB0d28gbmV3IGJpdHMgKGJlZm9yZSBh
bmQgYWZ0ZXIpIGFkZGVkIG9uIHRoZSBSZW5kZXJCbG9ja1JhcmVEYXRhIHN0cnVjdHVyZSBzcGVj
aWZ5aW5nIGlmIHRoZSBtYXJnaW5zCisgICAgICAgIG9mIHRoZSBibG9jayB3aWxsIGJlIGRpc2Nh
cmRlZCBvciBub3QuIFdlIGNhbid0IHJlbHkgb25seSBvbiB0aGUgdmFsdWUgZnJvbSBzdHlsZSgp
IGJlY2F1c2UKKyAgICAgICAgaXQncyBwb3NzaWJsZSBhIGJsb2NrIHRvIGRpc2NhcmQgaXQncyBt
YXJnaW5zIGJlY2F1c2UgaXQgaGFzIGNvbGxhcHNlZCB3aXRoIGEgY2hpbGRyZW4gdGhhdAorICAg
ICAgICBzcGVjaWZpZWQgImRpc2NhcmQiIGZvciAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS4gSG93
ZXZlciwgdGhlIGJpdHMgYXJlIHNldCBvbmx5IGlmIGl0IGlzCisgICAgICAgIHJlcXVpcmVkLgor
ICAgICAgICBBbm90aGVyIGJpdCBpcyBhZGRlZCBvbiB0aGUgTWFyZ2luSW5mbyBzdHJ1Y3R1cmUg
c3BlY2lmeWluZyBpZiB0aGUgbWFyZ2luIGhhcyB0byBiZSBkaXNjYXJkZWQgb3Igbm90LiBXaGVu
CisgICAgICAgIGNvbGxhcHNpbmcgYXQgdGhlIGJlZm9yZSBzaWRlIG9mIGEgYmxvY2sgaXQgd2ls
bCBob2xkIGluZm9ybWF0aW9uIGlmIHRoZSBjb250YWluZXIgYmxvY2sgbmVlZHMgdG8gZGlzY2Fy
ZAorICAgICAgICBvciBub3QuIElmIHRoZSBjb2xsYXBzaW5nIGhhcHBlbnMgYmV0d2VlbiBzaWJs
aW5ncy93aXRoIGFmdGVyIHNpZGUgb2YgdGhlIGNvbnRhaW5lciBpdCB3aWxsIHRlbGwgaWYgdGhl
IHByZXZpb3VzCisgICAgICAgIGNoaWxkIGRpc2NhcmRzIHRoZSBtYXJnaW4gb3Igbm90LiBUaGUg
c2VsZiBjb2xsYXBzaW5nIGJsb2NrcyBhcmUgYSBzcGVjaWFsIGNhc2UuIElmIGFueSBvZiBpdHMg
bWFyZ2lucworICAgICAgICBkaXNjYXJkcyB0aGVuIGJvdGggaXRzIG1hcmdpbnMgZGlzY2FyZCBh
bmQgYWxsIHRoZSBvdGhlciBtYXJnaW5zIGNvbGxhcHNpbmcgd2l0aCBpdC4KKyAgICAgICAgVG8g
ZW5zdXJlIGFuIG9wdGltYWwgYmVoYXZpb3IgaXQgaXMgYXNzZXJ0ZWQgbWFyZ2luIHZhbHVlcyBj
YW4ndCBiZSBzZXQgb24gdGhlIE1hcmdpbkluZm8gb2JqZWN0IGlmIHRoZQorICAgICAgICBkaXNj
YXJkIGZsYWcgaXMgYWN0aXZlLiBJZiB0aGlzIGhhcHBlbnMgaXQgbWF5IGluZGljYXRlIHNvbWVv
bmUgaWdub3JlZCB0aGUgcG9zc2liaWxpdHkgb2YgdGhlIG1hcmdpbiBiZWluZworICAgICAgICBk
aXNjYXJkZWQgYWx0b2dldGhlciBhbmQgaW5jb3JyZWN0bHkgdXBkYXRlZCB0aGUgbWFyZ2luIHZh
bHVlcy4KKyAgICAgICAgRmxvYXQgY2xlYXJpbmcgYWxzbyBuZWVkcyB0byBjaGFuZ2UgYmVjYXVz
ZSBpdCBtYXkgZm9yY2UgbWFyZ2lucyB0byBzdG9wIGNvbGxhcHNpbmcuIElmIHRoaXMgaGFwcGVu
cyB0aGUgZGlzY2FyZAorICAgICAgICBmbGFncyBhbmQgbWFyZ2lucyBuZWVkcyB0byBiZSByZXN0
b3JlZCB0byB0aGVpciB2YWx1ZXMgYmVmb3JlIHRoZSBjb2xsYXBzZS4KKworICAgICAgICBJSS4g
VGhlICJzZXBhcmF0ZSIgdmFsdWUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgVGhlIGltcGxlbWVu
dGF0aW9uIGZvciBzZXBhcmF0ZSB3YXMgbm90IGNoYW5nZWQgdG9vIG11Y2guIEkndmUgYWRkZWQg
bmV3IGFjY2Vzc29yIG1ldGhvZHMgZm9yIHRoZSBwcm9wZXJ0eQorICAgICAgICB0aGF0IHRha2Ug
d3JpdGluZyBtb2RlIGludG8gY29uc2lkZXJhdGlvbiBhbmQgSSd2ZSByZW1vdmVkIHNvbWUgY29k
ZSB0aGF0IGRpZG4ndCB3b3JrIGNvcnJlY3RseSBpbiBsYXlvdXRCbG9ja0NoaWxkLgorICAgICAg
ICBUaGUgcHJvYmxlbSB3YXMgdGhlIG1hcmdpbkluZm8gc3RydWN0dXJlIHdhcyBjbGVhcmVkIGlm
IHRoZSBjaGlsZCB3YXMgc3BlY2lmeWluZyB0aGUgInNlcGFyYXRlIiB2YWx1ZSBmb3IgYmVmb3Jl
LgorICAgICAgICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgeW91IGxvc2UgdGhlIG1hcmdpbiBpbmZv
cm1hdGlvbiBvZiB0aGUgcHJldmlvdXMgY2hpbGQvYmVmb3JlIHNpZGUuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29u
dGFpbmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dl
YmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvYmxv
Y2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdp
bi1jb2xsYXBzZS1zaWJsaW5ncy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1hcmdpbkluZm86Ok1hcmdp
bkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNsZWFyRmxvYXRzSWZOZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUVzdGltYXRlRm9yQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmVzdGltYXRlTG9naWNhbFRvcFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzZXRDb2xsYXBzZWRCb3R0b21NYXJnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmhhbmRsZUFmdGVyU2lkZU9mQmxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE11c3REaXNjYXJkTWFyZ2luQmVmb3JlKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE11c3RE
aXNjYXJkTWFyZ2luQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Om11c3RE
aXNjYXJkTWFyZ2luQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0
RGlzY2FyZE1hcmdpbkFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0
RGlzY2FyZE1hcmdpbkJlZm9yZUZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjptdXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6Om11c3RTZXBhcmF0ZU1hcmdpbkJlZm9yZUZvckNoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjptdXN0U2VwYXJhdGVNYXJnaW5BZnRlckZvckNoaWxkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFJlbmRlckJsb2Nr
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbml0TWF4TWFyZ2luVmFsdWVzKToK
KyAgICAgICAgKE1hcmdpbkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1h
cmdpbkluZm86OnNldFBvc2l0aXZlTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpNYXJnaW5JbmZvOjpzZXROZWdhdGl2ZU1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0UG9zaXRpdmVNYXJnaW5JZkxhcmdlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0TmVnYXRpdmVNYXJnaW5J
Zkxhcmdlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbzo6c2V0
TWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpzZXRD
YW5Db2xsYXBzZU1hcmdpbkFmdGVyV2l0aENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpNYXJnaW5JbmZvOjpzZXREaXNjYXJkTWFyZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpkaXNjYXJkTWFyZ2luKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRhOjpSZW5kZXJCbG9ja1JhcmVE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJCbG9ja1JhcmVEYXRh
Ojpwb3NpdGl2ZU1hcmdpbkJlZm9yZURlZmF1bHQpOgorICAgICAgICAoUmVuZGVyQmxvY2tSYXJl
RGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKIDIwMTMt
MDItMDcgIFBldGVyIFJ5YmluICA8cHJ5YmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBzdXBwb3J0IEphdmFTY3JpcHQgdmFyaWFibGUgbXV0YXRpb24gaW4gcHJvdG9j
b2wgYW5kIFY4IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cAppbmRleCBkOGUxYTVmZDY1YmQ0YWNmMDYyOGVmY2YyZWU3NTE3NWU5MGZmM2JjLi5iMmUwYmVk
MTIwZWUzOWY2ZDExNWFiZDUyZjU2M2VjOTE3YTE5ZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE2OSw2ICsxNjksNyBAQCBSZW5kZXJCbG9jazo6TWFy
Z2luSW5mbzo6TWFyZ2luSW5mbyhSZW5kZXJCbG9jayogYmxvY2ssIExheW91dFVuaXQgYmVmb3Jl
Qm9yZGVyUAogICAgICwgbV9tYXJnaW5CZWZvcmVRdWlyayhmYWxzZSkKICAgICAsIG1fbWFyZ2lu
QWZ0ZXJRdWlyayhmYWxzZSkKICAgICAsIG1fZGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKGZh
bHNlKQorICAgICwgbV9kaXNjYXJkTWFyZ2luKGZhbHNlKQogewogICAgIFJlbmRlclN0eWxlKiBi
bG9ja1N0eWxlID0gYmxvY2stPnN0eWxlKCk7CiAgICAgQVNTRVJUKGJsb2NrLT5pc1JlbmRlclZp
ZXcoKSB8fCBibG9jay0+cGFyZW50KCkpOwpAQCAtMTg2LDExICsxODcsMTIgQEAgUmVuZGVyQmxv
Y2s6Ok1hcmdpbkluZm86Ok1hcmdpbkluZm8oUmVuZGVyQmxvY2sqIGJsb2NrLCBMYXlvdXRVbml0
IGJlZm9yZUJvcmRlclAKICAgICBtX2NhbkNvbGxhcHNlTWFyZ2luQWZ0ZXJXaXRoQ2hpbGRyZW4g
PSBtX2NhbkNvbGxhcHNlV2l0aENoaWxkcmVuICYmIChhZnRlckJvcmRlclBhZGRpbmcgPT0gMCkg
JiYKICAgICAgICAgKGJsb2NrU3R5bGUtPmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8oKSAmJiAhYmxv
Y2tTdHlsZS0+bG9naWNhbEhlaWdodCgpLnZhbHVlKCkpICYmIGJsb2NrU3R5bGUtPm1hcmdpbkFm
dGVyQ29sbGFwc2UoKSAhPSBNU0VQQVJBVEU7CiAgICAgCi0gICAgbV9xdWlya0NvbnRhaW5lciA9
IGJsb2NrLT5pc1RhYmxlQ2VsbCgpIHx8IGJsb2NrLT5pc0JvZHkoKSB8fCBibG9ja1N0eWxlLT5t
YXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1ESVNDQVJECi0gICAgICAgIHx8IGJsb2NrU3R5bGUt
Pm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElTQ0FSRDsKKyAgICBtX3F1aXJrQ29udGFpbmVy
ID0gYmxvY2stPmlzVGFibGVDZWxsKCkgfHwgYmxvY2stPmlzQm9keSgpOwogCi0gICAgbV9wb3Np
dGl2ZU1hcmdpbiA9IG1fY2FuQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoQ2hpbGRyZW4gPyBibG9j
ay0+bWF4UG9zaXRpdmVNYXJnaW5CZWZvcmUoKSA6IExheW91dFVuaXQoKTsKLSAgICBtX25lZ2F0
aXZlTWFyZ2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiA/IGJsb2Nr
LT5tYXhOZWdhdGl2ZU1hcmdpbkJlZm9yZSgpIDogTGF5b3V0VW5pdCgpOworICAgIG1fZGlzY2Fy
ZE1hcmdpbiA9IG1fY2FuQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoQ2hpbGRyZW4gJiYgYmxvY2st
Pm11c3REaXNjYXJkTWFyZ2luQmVmb3JlKCk7CisKKyAgICBtX3Bvc2l0aXZlTWFyZ2luID0gKG1f
Y2FuQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoQ2hpbGRyZW4gJiYgIWJsb2NrLT5tdXN0RGlzY2Fy
ZE1hcmdpbkJlZm9yZSgpKSA/IGJsb2NrLT5tYXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpIDogTGF5
b3V0VW5pdCgpOworICAgIG1fbmVnYXRpdmVNYXJnaW4gPSAobV9jYW5Db2xsYXBzZU1hcmdpbkJl
Zm9yZVdpdGhDaGlsZHJlbiAmJiAhYmxvY2stPm11c3REaXNjYXJkTWFyZ2luQmVmb3JlKCkpID8g
YmxvY2stPm1heE5lZ2F0aXZlTWFyZ2luQmVmb3JlKCkgOiBMYXlvdXRVbml0KCk7CiB9CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1MjYs
OCArMTUyOCw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdoCiAgICAgaWYgKCFpc0NlbGwpIHsK
ICAgICAgICAgaW5pdE1heE1hcmdpblZhbHVlcygpOwogICAgICAgICAKLSAgICAgICAgc2V0TWFy
Z2luQmVmb3JlUXVpcmsoc3R5bGVUb1VzZS0+bWFyZ2luQmVmb3JlKCkucXVpcmsoKSk7Ci0gICAg
ICAgIHNldE1hcmdpbkFmdGVyUXVpcmsoc3R5bGVUb1VzZS0+bWFyZ2luQWZ0ZXIoKS5xdWlyaygp
KTsKKyAgICAgICAgc2V0TWFyZ2luQmVmb3JlUXVpcmsoc3R5bGVUb1VzZS0+aXNNYXJnaW5CZWZv
cmVRdWlyaygpKTsKKyAgICAgICAgc2V0TWFyZ2luQWZ0ZXJRdWlyayhzdHlsZVRvVXNlLT5pc01h
cmdpbkFmdGVyUXVpcmsoKSk7CiAgICAgICAgIHNldFBhZ2luYXRpb25TdHJ1dCgwKTsKICAgICB9
CiAKQEAgLTE5NTcsNiArMTk1OSwxMyBAQCB2b2lkIFJlbmRlckJsb2NrOjptb3ZlUnVuSW5Ub09y
aWdpbmFsUG9zaXRpb24oUmVuZGVyT2JqZWN0KiBydW5JbikKIAogTGF5b3V0VW5pdCBSZW5kZXJC
bG9jazo6Y29sbGFwc2VNYXJnaW5zKFJlbmRlckJveCogY2hpbGQsIE1hcmdpbkluZm8mIG1hcmdp
bkluZm8pCiB7CisgICAgYm9vbCBjaGlsZERpc2NhcmRNYXJnaW5CZWZvcmUgPSBtdXN0RGlzY2Fy
ZE1hcmdpbkJlZm9yZUZvckNoaWxkKGNoaWxkKTsKKyAgICBib29sIGNoaWxkRGlzY2FyZE1hcmdp
bkFmdGVyID0gbXVzdERpc2NhcmRNYXJnaW5BZnRlckZvckNoaWxkKGNoaWxkKTsKKyAgICBib29s
IGNoaWxkSXNTZWxmQ29sbGFwc2luZyA9IGNoaWxkLT5pc1NlbGZDb2xsYXBzaW5nQmxvY2soKTsK
KworICAgIC8vIFRoZSBjaGlsZCBkaXNjYXJkcyB0aGUgYmVmb3JlIG1hcmdpbiB3aGVuIHRoZSB0
aGUgYWZ0ZXIgbWFyZ2luIGhhcyBkaXNjYXJkIGluIHRoZSBjYXNlIG9mIGEgc2VsZiBjb2xsYXBz
aW5nIGJsb2NrLgorICAgIGNoaWxkRGlzY2FyZE1hcmdpbkJlZm9yZSA9IGNoaWxkRGlzY2FyZE1h
cmdpbkJlZm9yZSB8fCAoY2hpbGREaXNjYXJkTWFyZ2luQWZ0ZXIgJiYgY2hpbGRJc1NlbGZDb2xs
YXBzaW5nKTsKKwogICAgIC8vIEdldCB0aGUgZm91ciBtYXJnaW4gdmFsdWVzIGZvciB0aGUgY2hp
bGQgYW5kIGNhY2hlIHRoZW0uCiAgICAgY29uc3QgTWFyZ2luVmFsdWVzIGNoaWxkTWFyZ2lucyA9
IG1hcmdpblZhbHVlc0ZvckNoaWxkKGNoaWxkKTsKIApAQCAtMTk2NiwzOCArMTk3NSw0OCBAQCBM
YXlvdXRVbml0IFJlbmRlckJsb2NrOjpjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQm94KiBjaGlsZCwg
TWFyZ2luSW5mbyYgbWFyZ2luSW5mbwogCiAgICAgLy8gRm9yIHNlbGYtY29sbGFwc2luZyBibG9j
a3MsIGNvbGxhcHNlIG91ciBib3R0b20gbWFyZ2lucyBpbnRvIG91cgogICAgIC8vIHRvcCB0byBn
ZXQgbmV3IHBvc1RvcCBhbmQgbmVnVG9wIHZhbHVlcy4KLSAgICBpZiAoY2hpbGQtPmlzU2VsZkNv
bGxhcHNpbmdCbG9jaygpKSB7CisgICAgaWYgKGNoaWxkSXNTZWxmQ29sbGFwc2luZykgewogICAg
ICAgICBwb3NUb3AgPSBtYXgocG9zVG9wLCBjaGlsZE1hcmdpbnMucG9zaXRpdmVNYXJnaW5BZnRl
cigpKTsKICAgICAgICAgbmVnVG9wID0gbWF4KG5lZ1RvcCwgY2hpbGRNYXJnaW5zLm5lZ2F0aXZl
TWFyZ2luQWZ0ZXIoKSk7CiAgICAgfQogICAgIAogICAgIC8vIFNlZSBpZiB0aGUgdG9wIG1hcmdp
biBpcyBxdWlya3kuIFdlIG9ubHkgY2FyZSBpZiB0aGlzIGNoaWxkIGhhcwogICAgIC8vIG1hcmdp
bnMgdGhhdCB3aWxsIGNvbGxhcHNlIHdpdGggdXMuCi0gICAgYm9vbCB0b3BRdWlyayA9IGNoaWxk
LT5pc01hcmdpbkJlZm9yZVF1aXJrKCkgfHwgc3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2Uo
KSA9PSBNRElTQ0FSRDsKKyAgICBib29sIHRvcFF1aXJrID0gY2hpbGQtPmlzTWFyZ2luQmVmb3Jl
UXVpcmsoKTsKIAogICAgIGlmIChtYXJnaW5JbmZvLmNhbkNvbGxhcHNlV2l0aE1hcmdpbkJlZm9y
ZSgpKSB7Ci0gICAgICAgIC8vIFRoaXMgY2hpbGQgaXMgY29sbGFwc2luZyB3aXRoIHRoZSB0b3Ag
b2YgdGhlCi0gICAgICAgIC8vIGJsb2NrLiAgSWYgaXQgaGFzIGxhcmdlciBtYXJnaW4gdmFsdWVz
LCB0aGVuIHdlIG5lZWQgdG8gdXBkYXRlCi0gICAgICAgIC8vIG91ciBvd24gbWF4aW1hbCB2YWx1
ZXMuCi0gICAgICAgIGlmICghZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkgfHwgIW1hcmdpbklu
Zm8ucXVpcmtDb250YWluZXIoKSB8fCAhdG9wUXVpcmspCi0gICAgICAgICAgICBzZXRNYXhNYXJn
aW5CZWZvcmVWYWx1ZXMobWF4KHBvc1RvcCwgbWF4UG9zaXRpdmVNYXJnaW5CZWZvcmUoKSksIG1h
eChuZWdUb3AsIG1heE5lZ2F0aXZlTWFyZ2luQmVmb3JlKCkpKTsKLQotICAgICAgICAvLyBUaGUg
bWludXRlIGFueSBvZiB0aGUgbWFyZ2lucyBpbnZvbHZlZCBpc24ndCBhIHF1aXJrLCBkb24ndAot
ICAgICAgICAvLyBjb2xsYXBzZSBpdCBhd2F5LCBldmVuIGlmIHRoZSBtYXJnaW4gaXMgc21hbGxl
ciAod3d3LndlYnJlZmVyZW5jZS5jb20KLSAgICAgICAgLy8gaGFzIGFuIGV4YW1wbGUgb2YgdGhp
cywgYSA8ZHQ+IHdpdGggMC44ZW0gYXV0aG9yLXNwZWNpZmllZCBpbnNpZGUKLSAgICAgICAgLy8g
YSA8ZGw+IGluc2lkZSBhIDx0ZD4uCi0gICAgICAgIGlmICghbWFyZ2luSW5mby5kZXRlcm1pbmVk
TWFyZ2luQmVmb3JlUXVpcmsoKSAmJiAhdG9wUXVpcmsgJiYgKHBvc1RvcCAtIG5lZ1RvcCkpIHsK
LSAgICAgICAgICAgIHNldE1hcmdpbkJlZm9yZVF1aXJrKGZhbHNlKTsKLSAgICAgICAgICAgIG1h
cmdpbkluZm8uc2V0RGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKHRydWUpOwotICAgICAgICB9
Ci0KLSAgICAgICAgaWYgKCFtYXJnaW5JbmZvLmRldGVybWluZWRNYXJnaW5CZWZvcmVRdWlyaygp
ICYmIHRvcFF1aXJrICYmICFtYXJnaW5CZWZvcmUoKSkKLSAgICAgICAgICAgIC8vIFdlIGhhdmUg
bm8gdG9wIG1hcmdpbiBhbmQgb3VyIHRvcCBjaGlsZCBoYXMgYSBxdWlya3kgbWFyZ2luLgotICAg
ICAgICAgICAgLy8gV2Ugd2lsbCBwaWNrIHVwIHRoaXMgcXVpcmt5IG1hcmdpbiBhbmQgcGFzcyBp
dCB0aHJvdWdoLgotICAgICAgICAgICAgLy8gVGhpcyBkZWFscyB3aXRoIHRoZSA8dGQ+PGRpdj48
cD4gY2FzZS4KLSAgICAgICAgICAgIC8vIERvbid0IGRvIHRoaXMgZm9yIGEgYmxvY2sgdGhhdCBz
cGxpdCB0d28gaW5saW5lcyB0aG91Z2guICBZb3UgZG8KLSAgICAgICAgICAgIC8vIHN0aWxsIGFw
cGx5IG1hcmdpbnMgaW4gdGhpcyBjYXNlLgotICAgICAgICAgICAgc2V0TWFyZ2luQmVmb3JlUXVp
cmsodHJ1ZSk7CisgICAgICAgIGlmICghY2hpbGREaXNjYXJkTWFyZ2luQmVmb3JlICYmICFtYXJn
aW5JbmZvLmRpc2NhcmRNYXJnaW4oKSkgeworICAgICAgICAgICAgLy8gVGhpcyBjaGlsZCBpcyBj
b2xsYXBzaW5nIHdpdGggdGhlIHRvcCBvZiB0aGUKKyAgICAgICAgICAgIC8vIGJsb2NrLiBJZiBp
dCBoYXMgbGFyZ2VyIG1hcmdpbiB2YWx1ZXMsIHRoZW4gd2UgbmVlZCB0byB1cGRhdGUKKyAgICAg
ICAgICAgIC8vIG91ciBvd24gbWF4aW1hbCB2YWx1ZXMuCisgICAgICAgICAgICBpZiAoIWRvY3Vt
ZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgfHwg
IXRvcFF1aXJrKQorICAgICAgICAgICAgICAgIHNldE1heE1hcmdpbkJlZm9yZVZhbHVlcyhtYXgo
cG9zVG9wLCBtYXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpKSwgbWF4KG5lZ1RvcCwgbWF4TmVnYXRp
dmVNYXJnaW5CZWZvcmUoKSkpOworCisgICAgICAgICAgICAvLyBUaGUgbWludXRlIGFueSBvZiB0
aGUgbWFyZ2lucyBpbnZvbHZlZCBpc24ndCBhIHF1aXJrLCBkb24ndAorICAgICAgICAgICAgLy8g
Y29sbGFwc2UgaXQgYXdheSwgZXZlbiBpZiB0aGUgbWFyZ2luIGlzIHNtYWxsZXIgKHd3dy53ZWJy
ZWZlcmVuY2UuY29tCisgICAgICAgICAgICAvLyBoYXMgYW4gZXhhbXBsZSBvZiB0aGlzLCBhIDxk
dD4gd2l0aCAwLjhlbSBhdXRob3Itc3BlY2lmaWVkIGluc2lkZQorICAgICAgICAgICAgLy8gYSA8
ZGw+IGluc2lkZSBhIDx0ZD4uCisgICAgICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGV0ZXJtaW5l
ZE1hcmdpbkJlZm9yZVF1aXJrKCkgJiYgIXRvcFF1aXJrICYmIChwb3NUb3AgLSBuZWdUb3ApKSB7
CisgICAgICAgICAgICAgICAgc2V0TWFyZ2luQmVmb3JlUXVpcmsoZmFsc2UpOworICAgICAgICAg
ICAgICAgIG1hcmdpbkluZm8uc2V0RGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKHRydWUpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIW1hcmdpbkluZm8uZGV0ZXJtaW5lZE1h
cmdpbkJlZm9yZVF1aXJrKCkgJiYgdG9wUXVpcmsgJiYgIW1hcmdpbkJlZm9yZSgpKQorICAgICAg
ICAgICAgICAgIC8vIFdlIGhhdmUgbm8gdG9wIG1hcmdpbiBhbmQgb3VyIHRvcCBjaGlsZCBoYXMg
YSBxdWlya3kgbWFyZ2luLgorICAgICAgICAgICAgICAgIC8vIFdlIHdpbGwgcGljayB1cCB0aGlz
IHF1aXJreSBtYXJnaW4gYW5kIHBhc3MgaXQgdGhyb3VnaC4KKyAgICAgICAgICAgICAgICAvLyBU
aGlzIGRlYWxzIHdpdGggdGhlIDx0ZD48ZGl2PjxwPiBjYXNlLgorICAgICAgICAgICAgICAgIC8v
IERvbid0IGRvIHRoaXMgZm9yIGEgYmxvY2sgdGhhdCBzcGxpdCB0d28gaW5saW5lcyB0aG91Z2gu
IFlvdSBkbworICAgICAgICAgICAgICAgIC8vIHN0aWxsIGFwcGx5IG1hcmdpbnMgaW4gdGhpcyBj
YXNlLgorICAgICAgICAgICAgICAgIHNldE1hcmdpbkJlZm9yZVF1aXJrKHRydWUpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIC8vIFRoZSBiZWZvcmUgbWFyZ2luIG9mIHRoZSBjb250YWlu
ZXIgd2lsbCBhbHNvIGRpc2NhcmQgYWxsIHRoZSBtYXJnaW5zIGl0IGlzIGNvbGxhcHNpbmcgd2l0
aC4KKyAgICAgICAgICAgIHNldE11c3REaXNjYXJkTWFyZ2luQmVmb3JlKCk7CisgICAgfQorCisg
ICAgLy8gT25jZSB3ZSBmaW5kIGEgY2hpbGQgd2l0aCBkaXNjYXJkTWFyZ2luQmVmb3JlIGFsbCB0
aGUgbWFyZ2lucyBjb2xsYXBzaW5nIHdpdGggdXMgbXVzdCBhbHNvIGRpc2NhcmQuIAorICAgIGlm
IChjaGlsZERpc2NhcmRNYXJnaW5CZWZvcmUpIHsKKyAgICAgICAgbWFyZ2luSW5mby5zZXREaXNj
YXJkTWFyZ2luKHRydWUpOworICAgICAgICBtYXJnaW5JbmZvLmNsZWFyTWFyZ2luKCk7CiAgICAg
fQogCiAgICAgaWYgKG1hcmdpbkluZm8ucXVpcmtDb250YWluZXIoKSAmJiBtYXJnaW5JbmZvLmF0
QmVmb3JlU2lkZU9mQmxvY2soKSAmJiAocG9zVG9wIC0gbmVnVG9wKSkKQEAgLTIwMDUsNDUgKzIw
MjQsNTMgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6Y29sbGFwc2VNYXJnaW5zKFJlbmRlckJv
eCogY2hpbGQsIE1hcmdpbkluZm8mIG1hcmdpbkluZm8KIAogICAgIExheW91dFVuaXQgYmVmb3Jl
Q29sbGFwc2VMb2dpY2FsVG9wID0gbG9naWNhbEhlaWdodCgpOwogICAgIExheW91dFVuaXQgbG9n
aWNhbFRvcCA9IGJlZm9yZUNvbGxhcHNlTG9naWNhbFRvcDsKLSAgICBpZiAoY2hpbGQtPmlzU2Vs
ZkNvbGxhcHNpbmdCbG9jaygpKSB7Ci0gICAgICAgIC8vIFRoaXMgY2hpbGQgaGFzIG5vIGhlaWdo
dC4gIFdlIG5lZWQgdG8gY29tcHV0ZSBvdXIKLSAgICAgICAgLy8gcG9zaXRpb24gYmVmb3JlIHdl
IGNvbGxhcHNlIHRoZSBjaGlsZCdzIG1hcmdpbnMgdG9nZXRoZXIsCi0gICAgICAgIC8vIHNvIHRo
YXQgd2UgY2FuIGdldCBhbiBhY2N1cmF0ZSBwb3NpdGlvbiBmb3IgdGhlIHplcm8taGVpZ2h0IGJs
b2NrLgotICAgICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZVBvcyA9IG1heChtYXJnaW5J
bmZvLnBvc2l0aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkJlZm9yZSgp
KTsKLSAgICAgICAgTGF5b3V0VW5pdCBjb2xsYXBzZWRCZWZvcmVOZWcgPSBtYXgobWFyZ2luSW5m
by5uZWdhdGl2ZU1hcmdpbigpLCBjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJnaW5CZWZvcmUoKSk7
Ci0gICAgICAgIG1hcmdpbkluZm8uc2V0TWFyZ2luKGNvbGxhcHNlZEJlZm9yZVBvcywgY29sbGFw
c2VkQmVmb3JlTmVnKTsKLSAgICAgICAgCi0gICAgICAgIC8vIE5vdyBjb2xsYXBzZSB0aGUgY2hp
bGQncyBtYXJnaW5zIHRvZ2V0aGVyLCB3aGljaCBtZWFucyBleGFtaW5pbmcgb3VyCi0gICAgICAg
IC8vIGJvdHRvbSBtYXJnaW4gdmFsdWVzIGFzIHdlbGwuIAotICAgICAgICBtYXJnaW5JbmZvLnNl
dFBvc2l0aXZlTWFyZ2luSWZMYXJnZXIoY2hpbGRNYXJnaW5zLnBvc2l0aXZlTWFyZ2luQWZ0ZXIo
KSk7Ci0gICAgICAgIG1hcmdpbkluZm8uc2V0TmVnYXRpdmVNYXJnaW5JZkxhcmdlcihjaGlsZE1h
cmdpbnMubmVnYXRpdmVNYXJnaW5BZnRlcigpKTsKLQotICAgICAgICBpZiAoIW1hcmdpbkluZm8u
Y2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVmb3JlKCkpCi0gICAgICAgICAgICAvLyBXZSBuZWVkIHRv
IG1ha2Ugc3VyZSB0aGF0IHRoZSBwb3NpdGlvbiBvZiB0aGUgc2VsZi1jb2xsYXBzaW5nIGJsb2Nr
Ci0gICAgICAgICAgICAvLyBpcyBjb3JyZWN0LCBzaW5jZSBpdCBjb3VsZCBoYXZlIG92ZXJmbG93
aW5nIGNvbnRlbnQKLSAgICAgICAgICAgIC8vIHRoYXQgbmVlZHMgdG8gYmUgcG9zaXRpb25lZCBj
b3JyZWN0bHkgKGUuZy4sIGEgYmxvY2sgdGhhdAotICAgICAgICAgICAgLy8gaGFkIGEgc3BlY2lm
aWVkIGhlaWdodCBvZiAwIGJ1dCB0aGF0IGFjdHVhbGx5IGhhZCBzdWJjb250ZW50KS4KLSAgICAg
ICAgICAgIGxvZ2ljYWxUb3AgPSBsb2dpY2FsSGVpZ2h0KCkgKyBjb2xsYXBzZWRCZWZvcmVQb3Mg
LSBjb2xsYXBzZWRCZWZvcmVOZWc7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICBpZiAoY2hp
bGQtPnN0eWxlKCktPm1hcmdpbkJlZm9yZUNvbGxhcHNlKCkgPT0gTVNFUEFSQVRFKSB7CisgICAg
aWYgKGNoaWxkSXNTZWxmQ29sbGFwc2luZykgeworICAgICAgICAvLyBGb3IgYSBzZWxmIGNvbGxh
cHNpbmcgYmxvY2sgYm90aCB0aGUgYmVmb3JlIGFuZCBhZnRlciBtYXJnaW5zIGdldCBkaXNjYXJk
ZWQuIFRoZSBibG9jayBkb2Vzbid0IGNvbnRyaWJ1dGUgYW55dGhpbmcgdG8gdGhlIGhlaWdodCBv
ZiB0aGUgYmxvY2suCisgICAgICAgIC8vIEFsc28sIHRoZSBjaGlsZCdzIHRvcCBwb3NpdGlvbiBl
cXVhbHMgdGhlIGxvZ2ljYWwgaGVpZ2h0IG9mIHRoZSBjb250YWluZXIuCisgICAgICAgIGlmICgh
Y2hpbGREaXNjYXJkTWFyZ2luQmVmb3JlICYmICFtYXJnaW5JbmZvLmRpc2NhcmRNYXJnaW4oKSkg
eworICAgICAgICAgICAgLy8gVGhpcyBjaGlsZCBoYXMgbm8gaGVpZ2h0LiBXZSBuZWVkIHRvIGNv
bXB1dGUgb3VyCisgICAgICAgICAgICAvLyBwb3NpdGlvbiBiZWZvcmUgd2UgY29sbGFwc2UgdGhl
IGNoaWxkJ3MgbWFyZ2lucyB0b2dldGhlciwKKyAgICAgICAgICAgIC8vIHNvIHRoYXQgd2UgY2Fu
IGdldCBhbiBhY2N1cmF0ZSBwb3NpdGlvbiBmb3IgdGhlIHplcm8taGVpZ2h0IGJsb2NrLgorICAg
ICAgICAgICAgTGF5b3V0VW5pdCBjb2xsYXBzZWRCZWZvcmVQb3MgPSBtYXgobWFyZ2luSW5mby5w
b3NpdGl2ZU1hcmdpbigpLCBjaGlsZE1hcmdpbnMucG9zaXRpdmVNYXJnaW5CZWZvcmUoKSk7Cisg
ICAgICAgICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZEJlZm9yZU5lZyA9IG1heChtYXJnaW5JbmZv
Lm5lZ2F0aXZlTWFyZ2luKCksIGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkJlZm9yZSgpKTsK
KyAgICAgICAgICAgIG1hcmdpbkluZm8uc2V0TWFyZ2luKGNvbGxhcHNlZEJlZm9yZVBvcywgY29s
bGFwc2VkQmVmb3JlTmVnKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTm93IGNvbGxh
cHNlIHRoZSBjaGlsZCdzIG1hcmdpbnMgdG9nZXRoZXIsIHdoaWNoIG1lYW5zIGV4YW1pbmluZyBv
dXIKKyAgICAgICAgICAgIC8vIGJvdHRvbSBtYXJnaW4gdmFsdWVzIGFzIHdlbGwuIAorICAgICAg
ICAgICAgbWFyZ2luSW5mby5zZXRQb3NpdGl2ZU1hcmdpbklmTGFyZ2VyKGNoaWxkTWFyZ2lucy5w
b3NpdGl2ZU1hcmdpbkFmdGVyKCkpOworICAgICAgICAgICAgbWFyZ2luSW5mby5zZXROZWdhdGl2
ZU1hcmdpbklmTGFyZ2VyKGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkFmdGVyKCkpOworCisg
ICAgICAgICAgICBpZiAoIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVmb3JlKCkp
CisgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcG9zaXRp
b24gb2YgdGhlIHNlbGYtY29sbGFwc2luZyBibG9jaworICAgICAgICAgICAgICAgIC8vIGlzIGNv
cnJlY3QsIHNpbmNlIGl0IGNvdWxkIGhhdmUgb3ZlcmZsb3dpbmcgY29udGVudAorICAgICAgICAg
ICAgICAgIC8vIHRoYXQgbmVlZHMgdG8gYmUgcG9zaXRpb25lZCBjb3JyZWN0bHkgKGUuZy4sIGEg
YmxvY2sgdGhhdAorICAgICAgICAgICAgICAgIC8vIGhhZCBhIHNwZWNpZmllZCBoZWlnaHQgb2Yg
MCBidXQgdGhhdCBhY3R1YWxseSBoYWQgc3ViY29udGVudCkuCisgICAgICAgICAgICAgICAgbG9n
aWNhbFRvcCA9IGxvZ2ljYWxIZWlnaHQoKSArIGNvbGxhcHNlZEJlZm9yZVBvcyAtIGNvbGxhcHNl
ZEJlZm9yZU5lZzsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChtdXN0U2Vw
YXJhdGVNYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZCkpIHsKKyAgICAgICAgICAgIEFTU0VSVCgh
bWFyZ2luSW5mby5kaXNjYXJkTWFyZ2luKCkgfHwgKG1hcmdpbkluZm8uZGlzY2FyZE1hcmdpbigp
ICYmICFtYXJnaW5JbmZvLm1hcmdpbigpKSk7CiAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0
KGxvZ2ljYWxIZWlnaHQoKSArIG1hcmdpbkluZm8ubWFyZ2luKCkgKyBtYXJnaW5CZWZvcmVGb3JD
aGlsZChjaGlsZCkpOwogICAgICAgICAgICAgbG9naWNhbFRvcCA9IGxvZ2ljYWxIZWlnaHQoKTsK
LSAgICAgICAgfQotICAgICAgICBlbHNlIGlmICghbWFyZ2luSW5mby5hdEJlZm9yZVNpZGVPZkJs
b2NrKCkgfHwKLSAgICAgICAgICAgICghbWFyZ2luSW5mby5jYW5Db2xsYXBzZU1hcmdpbkJlZm9y
ZVdpdGhDaGlsZHJlbigpCi0gICAgICAgICAgICAgJiYgKCFkb2N1bWVudCgpLT5pblF1aXJrc01v
ZGUoKSB8fCAhbWFyZ2luSW5mby5xdWlya0NvbnRhaW5lcigpIHx8ICFtYXJnaW5JbmZvLm1hcmdp
bkJlZm9yZVF1aXJrKCkpKSkgeworICAgICAgICB9IGVsc2UgaWYgKCFtYXJnaW5JbmZvLmRpc2Nh
cmRNYXJnaW4oKSAmJiAoIW1hcmdpbkluZm8uYXRCZWZvcmVTaWRlT2ZCbG9jaygpCisgICAgICAg
ICAgICB8fCAoIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoQ2hpbGRyZW4o
KQorICAgICAgICAgICAgJiYgKCFkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSB8fCAhbWFyZ2lu
SW5mby5xdWlya0NvbnRhaW5lcigpIHx8ICFtYXJnaW5JbmZvLm1hcmdpbkJlZm9yZVF1aXJrKCkp
KSkpIHsKICAgICAgICAgICAgIC8vIFdlJ3JlIGNvbGxhcHNpbmcgd2l0aCBhIHByZXZpb3VzIHNp
YmxpbmcncyBtYXJnaW5zIGFuZCBub3QKICAgICAgICAgICAgIC8vIHdpdGggdGhlIHRvcCBvZiB0
aGUgYmxvY2suCiAgICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSAr
IG1heChtYXJnaW5JbmZvLnBvc2l0aXZlTWFyZ2luKCksIHBvc1RvcCkgLSBtYXgobWFyZ2luSW5m
by5uZWdhdGl2ZU1hcmdpbigpLCBuZWdUb3ApKTsKICAgICAgICAgICAgIGxvZ2ljYWxUb3AgPSBs
b2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIH0KIAotICAgICAgICBtYXJnaW5JbmZvLnNldFBvc2l0
aXZlTWFyZ2luKGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkFmdGVyKCkpOwotICAgICAgICBt
YXJnaW5JbmZvLnNldE5lZ2F0aXZlTWFyZ2luKGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkFm
dGVyKCkpOworICAgICAgICBtYXJnaW5JbmZvLnNldERpc2NhcmRNYXJnaW4oY2hpbGREaXNjYXJk
TWFyZ2luQWZ0ZXIpOworICAgICAgICAKKyAgICAgICAgaWYgKCFtYXJnaW5JbmZvLmRpc2NhcmRN
YXJnaW4oKSkgeworICAgICAgICAgICAgbWFyZ2luSW5mby5zZXRQb3NpdGl2ZU1hcmdpbihjaGls
ZE1hcmdpbnMucG9zaXRpdmVNYXJnaW5BZnRlcigpKTsKKyAgICAgICAgICAgIG1hcmdpbkluZm8u
c2V0TmVnYXRpdmVNYXJnaW4oY2hpbGRNYXJnaW5zLm5lZ2F0aXZlTWFyZ2luQWZ0ZXIoKSk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbWFyZ2luSW5mby5jbGVhck1hcmdpbigpOwogCiAg
ICAgICAgIGlmIChtYXJnaW5JbmZvLm1hcmdpbigpKQotICAgICAgICAgICAgbWFyZ2luSW5mby5z
ZXRNYXJnaW5BZnRlclF1aXJrKGNoaWxkLT5pc01hcmdpbkFmdGVyUXVpcmsoKSB8fCBzdHlsZSgp
LT5tYXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTURJU0NBUkQpOworICAgICAgICAgICAgbWFyZ2lu
SW5mby5zZXRNYXJnaW5BZnRlclF1aXJrKGNoaWxkLT5pc01hcmdpbkFmdGVyUXVpcmsoKSk7CiAg
ICAgfQogICAgIAogICAgIC8vIElmIG1hcmdpbnMgd291bGQgcHVsbCB1cyBwYXN0IHRoZSB0b3Ag
b2YgdGhlIG5leHQgcGFnZSwgdGhlbiB3ZSBuZWVkIHRvIHB1bGwgYmFjayBhbmQgcHJldGVuZCBs
aWtlIHRoZSBtYXJnaW5zCkBAIC0yMDc5LDEyICsyMTA2LDE5IEBAIExheW91dFVuaXQgUmVuZGVy
QmxvY2s6OmNsZWFyRmxvYXRzSWZOZWVkZWQoUmVuZGVyQm94KiBjaGlsZCwgTWFyZ2luSW5mbyYg
bWFyZ2luCiAgICAgICAgIHJldHVybiB5UG9zOwogCiAgICAgaWYgKGNoaWxkLT5pc1NlbGZDb2xs
YXBzaW5nQmxvY2soKSkgeworICAgICAgICBib29sIGNoaWxkRGlzY2FyZE1hcmdpbiA9IG11c3RE
aXNjYXJkTWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGQpIHx8IG11c3REaXNjYXJkTWFyZ2luQWZ0
ZXJGb3JDaGlsZChjaGlsZCk7CisKICAgICAgICAgLy8gRm9yIHNlbGYtY29sbGFwc2luZyBibG9j
a3MgdGhhdCBjbGVhciwgdGhleSBjYW4gc3RpbGwgY29sbGFwc2UgdGhlaXIKICAgICAgICAgLy8g
bWFyZ2lucyB3aXRoIGZvbGxvd2luZyBzaWJsaW5ncy4gIFJlc2V0IHRoZSBjdXJyZW50IG1hcmdp
bnMgdG8gcmVwcmVzZW50CiAgICAgICAgIC8vIHRoZSBzZWxmLWNvbGxhcHNpbmcgYmxvY2sncyBt
YXJnaW5zIG9ubHkuCi0gICAgICAgIE1hcmdpblZhbHVlcyBjaGlsZE1hcmdpbnMgPSBtYXJnaW5W
YWx1ZXNGb3JDaGlsZChjaGlsZCk7Ci0gICAgICAgIG1hcmdpbkluZm8uc2V0UG9zaXRpdmVNYXJn
aW4obWF4KGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkJlZm9yZSgpLCBjaGlsZE1hcmdpbnMu
cG9zaXRpdmVNYXJnaW5BZnRlcigpKSk7Ci0gICAgICAgIG1hcmdpbkluZm8uc2V0TmVnYXRpdmVN
YXJnaW4obWF4KGNoaWxkTWFyZ2lucy5uZWdhdGl2ZU1hcmdpbkJlZm9yZSgpLCBjaGlsZE1hcmdp
bnMubmVnYXRpdmVNYXJnaW5BZnRlcigpKSk7CisgICAgICAgIC8vIElmIERJU0NBUkQgaXMgc3Bl
Y2lmaWVkIGZvciAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSwgcmVzZXQgdGhlIG1hcmdpbiB2YWx1
ZXMuCisgICAgICAgIGlmICghY2hpbGREaXNjYXJkTWFyZ2luKSB7CisgICAgICAgICAgICBNYXJn
aW5WYWx1ZXMgY2hpbGRNYXJnaW5zID0gbWFyZ2luVmFsdWVzRm9yQ2hpbGQoY2hpbGQpOworICAg
ICAgICAgICAgbWFyZ2luSW5mby5zZXRQb3NpdGl2ZU1hcmdpbihtYXgoY2hpbGRNYXJnaW5zLnBv
c2l0aXZlTWFyZ2luQmVmb3JlKCksIGNoaWxkTWFyZ2lucy5wb3NpdGl2ZU1hcmdpbkFmdGVyKCkp
KTsKKyAgICAgICAgICAgIG1hcmdpbkluZm8uc2V0TmVnYXRpdmVNYXJnaW4obWF4KGNoaWxkTWFy
Z2lucy5uZWdhdGl2ZU1hcmdpbkJlZm9yZSgpLCBjaGlsZE1hcmdpbnMubmVnYXRpdmVNYXJnaW5B
ZnRlcigpKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbWFyZ2luSW5mby5jbGVhck1h
cmdpbigpOworICAgICAgICBtYXJnaW5JbmZvLnNldERpc2NhcmRNYXJnaW4oY2hpbGREaXNjYXJk
TWFyZ2luKTsKIAogICAgICAgICAvLyBDU1MyLjEgc3RhdGVzOgogICAgICAgICAvLyAiSWYgdGhl
IHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb2YgYW4gZWxlbWVudCB3aXRoIGNsZWFyYW5jZSBhcmUg
YWRqb2luaW5nLCBpdHMgbWFyZ2lucyBjb2xsYXBzZSB3aXRoIApAQCAtMjExNyw2ICsyMTUxLDkg
QEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6Y2xlYXJGbG9hdHNJZk5lZWRlZChSZW5kZXJCb3gq
IGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJnaW4KICAgICAgICAgLy8gbWFyZ2lucyBpbnZvbHZlZC4K
ICAgICAgICAgc2V0TWF4TWFyZ2luQmVmb3JlVmFsdWVzKG9sZFRvcFBvc01hcmdpbiwgb2xkVG9w
TmVnTWFyZ2luKTsKICAgICAgICAgbWFyZ2luSW5mby5zZXRBdEJlZm9yZVNpZGVPZkJsb2NrKGZh
bHNlKTsKKworICAgICAgICAvLyBJbiBjYXNlIHRoZSBjaGlsZCBkaXNjYXJkZWQgdGhlIGJlZm9y
ZSBtYXJnaW4gb2YgdGhlIGJsb2NrIHdlIG5lZWQgdG8gcmVzZXQgdGhlIG11c3REaXNjYXJkTWFy
Z2luQmVmb3JlIGZsYWcgdG8gdGhlIGluaXRpYWwgdmFsdWUuCisgICAgICAgIHNldE11c3REaXNj
YXJkTWFyZ2luQmVmb3JlKHN0eWxlKCktPm1hcmdpbkJlZm9yZUNvbGxhcHNlKCkgPT0gTURJU0NB
UkQpOwogICAgIH0KIAogICAgIExheW91dFVuaXQgbG9naWNhbFRvcCA9IHlQb3MgKyBoZWlnaHRJ
bmNyZWFzZTsKQEAgLTIxMjgsMTIgKzIxNjUsMjIgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6
Y2xlYXJGbG9hdHNJZk5lZWRlZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJnaW4K
ICAgICByZXR1cm4gbG9naWNhbFRvcDsKIH0KIAotdm9pZCBSZW5kZXJCbG9jazo6bWFyZ2luQmVm
b3JlRXN0aW1hdGVGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0JiBwb3NpdGl2
ZU1hcmdpbkJlZm9yZSwgTGF5b3V0VW5pdCYgbmVnYXRpdmVNYXJnaW5CZWZvcmUpIGNvbnN0Cit2
b2lkIFJlbmRlckJsb2NrOjptYXJnaW5CZWZvcmVFc3RpbWF0ZUZvckNoaWxkKFJlbmRlckJveCog
Y2hpbGQsIExheW91dFVuaXQmIHBvc2l0aXZlTWFyZ2luQmVmb3JlLCBMYXlvdXRVbml0JiBuZWdh
dGl2ZU1hcmdpbkJlZm9yZSwgYm9vbCYgZGlzY2FyZE1hcmdpbkJlZm9yZSkgY29uc3QKIHsKLSAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRlYWwgd2l0aCB0aGUgbWFyZ2luLWNvbGxhcHNlLSogc3R5
bGUgZXh0ZW5zaW9ucyB0aGF0IHByZXZlbnQgY29sbGFwc2luZyBhbmQgdGhhdCBkaXNjYXJkIG1h
cmdpbnMuCiAgICAgLy8gR2l2ZSB1cCBpZiBpbiBxdWlya3MgbW9kZSBhbmQgd2UncmUgYSBib2R5
L3RhYmxlIGNlbGwgYW5kIHRoZSB0b3AgbWFyZ2luIG9mIHRoZSBjaGlsZCBib3ggaXMgcXVpcmt5
LgotICAgIGlmIChkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSAmJiBjaGlsZC0+aXNNYXJnaW5C
ZWZvcmVRdWlyaygpICYmIChpc1RhYmxlQ2VsbCgpIHx8IGlzQm9keSgpKSkKKyAgICAvLyBHaXZl
IHVwIGlmIHRoZSBjaGlsZCBzcGVjaWZpZWQgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2U6IHNlcGFy
YXRlIHRoYXQgcHJldmVudHMgY29sbGFwc2luZy4KKyAgICAvLyBGSVhNRTogVXNlIHdyaXRpbmcg
bW9kZSBpbmRlcGVuZGVudCBhY2Nlc3NvciBmb3IgbWFyZ2luQmVmb3JlQ29sbGFwc2UuCisgICAg
aWYgKChkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSAmJiBjaGlsZC0+aXNNYXJnaW5CZWZvcmVR
dWlyaygpICYmIChpc1RhYmxlQ2VsbCgpIHx8IGlzQm9keSgpKSkgfHwgY2hpbGQtPnN0eWxlKCkt
Pm1hcmdpbkJlZm9yZUNvbGxhcHNlKCkgPT0gTVNFUEFSQVRFKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBUaGUgbWFyZ2lucyBhcmUgZGlzY2FyZGVkIGJ5IGEgY2hpbGQgdGhhdCBzcGVjaWZp
ZWQgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2U6IGRpc2NhcmQuCisgICAgLy8gRklYTUU6IFVzZSB3
cml0aW5nIG1vZGUgaW5kZXBlbmRlbnQgYWNjZXNzb3IgZm9yIG1hcmdpbkJlZm9yZUNvbGxhcHNl
LgorICAgIGlmIChjaGlsZC0+c3R5bGUoKS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNRElT
Q0FSRCkgeworICAgICAgICBwb3NpdGl2ZU1hcmdpbkJlZm9yZSA9IDA7CisgICAgICAgIG5lZ2F0
aXZlTWFyZ2luQmVmb3JlID0gMDsKKyAgICAgICAgZGlzY2FyZE1hcmdpbkJlZm9yZSA9IHRydWU7
CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBMYXlvdXRVbml0IGJlZm9yZUNoaWxkTWFy
Z2luID0gbWFyZ2luQmVmb3JlRm9yQ2hpbGQoY2hpbGQpOwogICAgIHBvc2l0aXZlTWFyZ2luQmVm
b3JlID0gbWF4KHBvc2l0aXZlTWFyZ2luQmVmb3JlLCBiZWZvcmVDaGlsZE1hcmdpbik7CkBAIC0y
MTYzLDEyICsyMjEwLDEyIEBAIHZvaWQgUmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUVzdGltYXRl
Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCYgcG9zCiAgICAgLy8gTWFrZSBz
dXJlIHRvIHVwZGF0ZSB0aGUgYmxvY2sgbWFyZ2lucyBub3cgZm9yIHRoZSBncmFuZGNoaWxkIGJv
eCBzbyB0aGF0IHdlJ3JlIGxvb2tpbmcgYXQgY3VycmVudCB2YWx1ZXMuCiAgICAgaWYgKGdyYW5k
Y2hpbGRCb3gtPm5lZWRzTGF5b3V0KCkpIHsKICAgICAgICAgZ3JhbmRjaGlsZEJveC0+Y29tcHV0
ZUFuZFNldEJsb2NrRGlyZWN0aW9uTWFyZ2lucyh0aGlzKTsKLSAgICAgICAgZ3JhbmRjaGlsZEJv
eC0+c2V0TWFyZ2luQmVmb3JlUXVpcmsoZ3JhbmRjaGlsZEJveC0+c3R5bGUoKS0+bWFyZ2luQmVm
b3JlKCkucXVpcmsoKSk7Ci0gICAgICAgIGdyYW5kY2hpbGRCb3gtPnNldE1hcmdpbkFmdGVyUXVp
cmsoZ3JhbmRjaGlsZEJveC0+c3R5bGUoKS0+bWFyZ2luQWZ0ZXIoKS5xdWlyaygpKTsKKyAgICAg
ICAgZ3JhbmRjaGlsZEJveC0+c2V0TWFyZ2luQmVmb3JlUXVpcmsoZ3JhbmRjaGlsZEJveC0+c3R5
bGUoKS0+aXNNYXJnaW5CZWZvcmVRdWlyaygpKTsKKyAgICAgICAgZ3JhbmRjaGlsZEJveC0+c2V0
TWFyZ2luQWZ0ZXJRdWlyayhncmFuZGNoaWxkQm94LT5zdHlsZSgpLT5pc01hcmdpbkFmdGVyUXVp
cmsoKSk7CiAgICAgfQogCiAgICAgLy8gQ29sbGFwc2UgdGhlIG1hcmdpbiBvZiB0aGUgZ3JhbmRj
aGlsZCBib3ggd2l0aCBvdXIgb3duIHRvIHByb2R1Y2UgYW4gZXN0aW1hdGUuCi0gICAgY2hpbGRC
bG9jay0+bWFyZ2luQmVmb3JlRXN0aW1hdGVGb3JDaGlsZChncmFuZGNoaWxkQm94LCBwb3NpdGl2
ZU1hcmdpbkJlZm9yZSwgbmVnYXRpdmVNYXJnaW5CZWZvcmUpOworICAgIGNoaWxkQmxvY2stPm1h
cmdpbkJlZm9yZUVzdGltYXRlRm9yQ2hpbGQoZ3JhbmRjaGlsZEJveCwgcG9zaXRpdmVNYXJnaW5C
ZWZvcmUsIG5lZ2F0aXZlTWFyZ2luQmVmb3JlLCBkaXNjYXJkTWFyZ2luQmVmb3JlKTsKIH0KIAog
TGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6ZXN0aW1hdGVMb2dpY2FsVG9wUG9zaXRpb24oUmVuZGVy
Qm94KiBjaGlsZCwgY29uc3QgTWFyZ2luSW5mbyYgbWFyZ2luSW5mbywgTGF5b3V0VW5pdCYgZXN0
aW1hdGVXaXRob3V0UGFnaW5hdGlvbikKQEAgLTIxNzksMTkgKzIyMjYsMjIgQEAgTGF5b3V0VW5p
dCBSZW5kZXJCbG9jazo6ZXN0aW1hdGVMb2dpY2FsVG9wUG9zaXRpb24oUmVuZGVyQm94KiBjaGls
ZCwgY29uc3QgTWFyZ2kKICAgICBpZiAoIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2lu
QmVmb3JlKCkpIHsKICAgICAgICAgTGF5b3V0VW5pdCBwb3NpdGl2ZU1hcmdpbkJlZm9yZSA9IDA7
CiAgICAgICAgIExheW91dFVuaXQgbmVnYXRpdmVNYXJnaW5CZWZvcmUgPSAwOworICAgICAgICBi
b29sIGRpc2NhcmRNYXJnaW5CZWZvcmUgPSBmYWxzZTsKICAgICAgICAgaWYgKGNoaWxkLT5zZWxm
TmVlZHNMYXlvdXQoKSkgewogICAgICAgICAgICAgLy8gVHJ5IHRvIGRvIGEgYmFzaWMgZXN0aW1h
dGlvbiBvZiBob3cgdGhlIGNvbGxhcHNlIGlzIGdvaW5nIHRvIGdvLgotICAgICAgICAgICAgbWFy
Z2luQmVmb3JlRXN0aW1hdGVGb3JDaGlsZChjaGlsZCwgcG9zaXRpdmVNYXJnaW5CZWZvcmUsIG5l
Z2F0aXZlTWFyZ2luQmVmb3JlKTsKKyAgICAgICAgICAgIG1hcmdpbkJlZm9yZUVzdGltYXRlRm9y
Q2hpbGQoY2hpbGQsIHBvc2l0aXZlTWFyZ2luQmVmb3JlLCBuZWdhdGl2ZU1hcmdpbkJlZm9yZSwg
ZGlzY2FyZE1hcmdpbkJlZm9yZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBV
c2UgdGhlIGNhY2hlZCBjb2xsYXBzZWQgbWFyZ2luIHZhbHVlcyBmcm9tIGEgcHJldmlvdXMgbGF5
b3V0LiBNb3N0IG9mIHRoZSB0aW1lIHRoZXkKICAgICAgICAgICAgIC8vIHdpbGwgYmUgcmlnaHQu
CiAgICAgICAgICAgICBNYXJnaW5WYWx1ZXMgbWFyZ2luVmFsdWVzID0gbWFyZ2luVmFsdWVzRm9y
Q2hpbGQoY2hpbGQpOwogICAgICAgICAgICAgcG9zaXRpdmVNYXJnaW5CZWZvcmUgPSBtYXgocG9z
aXRpdmVNYXJnaW5CZWZvcmUsIG1hcmdpblZhbHVlcy5wb3NpdGl2ZU1hcmdpbkJlZm9yZSgpKTsK
ICAgICAgICAgICAgIG5lZ2F0aXZlTWFyZ2luQmVmb3JlID0gbWF4KG5lZ2F0aXZlTWFyZ2luQmVm
b3JlLCBtYXJnaW5WYWx1ZXMubmVnYXRpdmVNYXJnaW5CZWZvcmUoKSk7CisgICAgICAgICAgICBk
aXNjYXJkTWFyZ2luQmVmb3JlID0gbXVzdERpc2NhcmRNYXJnaW5CZWZvcmVGb3JDaGlsZChjaGls
ZCk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDb2xsYXBzZSB0aGUgcmVzdWx0IHdpdGggb3Vy
IGN1cnJlbnQgbWFyZ2lucy4KLSAgICAgICAgbG9naWNhbFRvcEVzdGltYXRlICs9IG1heChtYXJn
aW5JbmZvLnBvc2l0aXZlTWFyZ2luKCksIHBvc2l0aXZlTWFyZ2luQmVmb3JlKSAtIG1heChtYXJn
aW5JbmZvLm5lZ2F0aXZlTWFyZ2luKCksIG5lZ2F0aXZlTWFyZ2luQmVmb3JlKTsKKyAgICAgICAg
aWYgKCFkaXNjYXJkTWFyZ2luQmVmb3JlKQorICAgICAgICAgICAgbG9naWNhbFRvcEVzdGltYXRl
ICs9IG1heChtYXJnaW5JbmZvLnBvc2l0aXZlTWFyZ2luKCksIHBvc2l0aXZlTWFyZ2luQmVmb3Jl
KSAtIG1heChtYXJnaW5JbmZvLm5lZ2F0aXZlTWFyZ2luKCksIG5lZ2F0aXZlTWFyZ2luQmVmb3Jl
KTsKICAgICB9CiAKICAgICAvLyBBZGp1c3QgbG9naWNhbFRvcEVzdGltYXRlIGRvd24gdG8gdGhl
IG5leHQgcGFnZSBpZiB0aGUgbWFyZ2lucyBhcmUgc28gbGFyZ2UgdGhhdCB3ZSBkb24ndCBmaXQg
b24gdGhlIGN1cnJlbnQKQEAgLTIyNjYsNiArMjMxNiwxMyBAQCB2b2lkIFJlbmRlckJsb2NrOjpk
ZXRlcm1pbmVMb2dpY2FsTGVmdFBvc2l0aW9uRm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCkKIHZv
aWQgUmVuZGVyQmxvY2s6OnNldENvbGxhcHNlZEJvdHRvbU1hcmdpbihjb25zdCBNYXJnaW5JbmZv
JiBtYXJnaW5JbmZvKQogewogICAgIGlmIChtYXJnaW5JbmZvLmNhbkNvbGxhcHNlV2l0aE1hcmdp
bkFmdGVyKCkgJiYgIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VXaXRoTWFyZ2luQmVmb3JlKCkpIHsK
KyAgICAgICAgLy8gVXBkYXRlIHRoZSBhZnRlciBzaWRlIG1hcmdpbiBvZiB0aGUgY29udGFpbmVy
IHRvIGRpc2NhcmQgaWYgdGhlIGFmdGVyIG1hcmdpbiBvZiB0aGUgbGFzdCBjaGlsZCBhbHNvIGRp
c2NhcmRzIGFuZCB3ZSBjb2xsYXBzZSB3aXRoIGl0LgorICAgICAgICAvLyBEb24ndCB1cGRhdGUg
dGhlIG1heCBtYXJnaW4gdmFsdWVzIGJlY2F1c2Ugd2Ugd29uJ3QgbmVlZCB0aGVtIGFueXdheS4K
KyAgICAgICAgaWYgKG1hcmdpbkluZm8uZGlzY2FyZE1hcmdpbigpKSB7CisgICAgICAgICAgICBz
ZXRNdXN0RGlzY2FyZE1hcmdpbkFmdGVyKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKwogICAgICAgICAvLyBVcGRhdGUgb3VyIG1heCBwb3MvbmVnIGJvdHRvbSBtYXJnaW5zLCBz
aW5jZSB3ZSBjb2xsYXBzZWQgb3VyIGJvdHRvbSBtYXJnaW5zCiAgICAgICAgIC8vIHdpdGggb3Vy
IGNoaWxkcmVuLgogICAgICAgICBzZXRNYXhNYXJnaW5BZnRlclZhbHVlcyhtYXgobWF4UG9zaXRp
dmVNYXJnaW5BZnRlcigpLCBtYXJnaW5JbmZvLnBvc2l0aXZlTWFyZ2luKCkpLCBtYXgobWF4TmVn
YXRpdmVNYXJnaW5BZnRlcigpLCBtYXJnaW5JbmZvLm5lZ2F0aXZlTWFyZ2luKCkpKTsKQEAgLTIy
ODgsOSArMjM0NSw5IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmhhbmRsZUFmdGVyU2lkZU9mQmxvY2so
TGF5b3V0VW5pdCBiZWZvcmVTaWRlLCBMYXlvdXRVbml0IGFmdGVyCiAgICAgLy8gSWYgd2UgY2Fu
J3QgY29sbGFwc2Ugd2l0aCBjaGlsZHJlbiB0aGVuIGdvIGFoZWFkIGFuZCBhZGQgaW4gdGhlIGJv
dHRvbSBtYXJnaW4uCiAgICAgLy8gRG9uJ3QgZG8gdGhpcyBmb3Igb3JkaW5hcnkgYW5vbnltb3Vz
IGJsb2NrcyBhcyBvbmx5IHRoZSBlbmNsb3NpbmcgYm94IHNob3VsZCBhZGQgaW4KICAgICAvLyBp
dHMgbWFyZ2luLgotICAgIGlmICghbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5BZnRl
cigpICYmICFtYXJnaW5JbmZvLmNhbkNvbGxhcHNlV2l0aE1hcmdpbkJlZm9yZSgpCisgICAgaWYg
KCFtYXJnaW5JbmZvLmRpc2NhcmRNYXJnaW4oKSAmJiAoIW1hcmdpbkluZm8uY2FuQ29sbGFwc2VX
aXRoTWFyZ2luQWZ0ZXIoKSAmJiAhbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZv
cmUoKQogICAgICAgICAmJiAoIWlzQW5vbnltb3VzQmxvY2soKSB8fCBpc0Fub255bW91c0NvbHVt
bnNCbG9jaygpIHx8IGlzQW5vbnltb3VzQ29sdW1uU3BhbkJsb2NrKCkpCi0gICAgICAgICYmICgh
ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkgfHwgIW1hcmdpbkluZm8ucXVpcmtDb250YWluZXIo
KSB8fCAhbWFyZ2luSW5mby5tYXJnaW5BZnRlclF1aXJrKCkpKQorICAgICAgICAmJiAoIWRvY3Vt
ZW50KCktPmluUXVpcmtzTW9kZSgpIHx8ICFtYXJnaW5JbmZvLnF1aXJrQ29udGFpbmVyKCkgfHwg
IW1hcmdpbkluZm8ubWFyZ2luQWZ0ZXJRdWlyaygpKSkpCiAgICAgICAgIHNldExvZ2ljYWxIZWln
aHQobG9naWNhbEhlaWdodCgpICsgbWFyZ2luSW5mby5tYXJnaW4oKSk7CiAgICAgICAgIAogICAg
IC8vIE5vdyBhZGQgaW4gb3VyIGJvdHRvbSBib3JkZXIvcGFkZGluZy4KQEAgLTI0MTUsMTMgKzI0
NzIsNiBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9ja0NoaWxkKFJlbmRlckJveCogY2hp
bGQsIE1hcmdpbkluZm8mIG1hcmdpbkluZm8sIExheQogICAgIC8vIFRoZSBjaGlsZCBpcyBhIG5v
cm1hbCBmbG93IG9iamVjdC4gIENvbXB1dGUgdGhlIG1hcmdpbnMgd2Ugd2lsbCB1c2UgZm9yIGNv
bGxhcHNpbmcgbm93LgogICAgIGNoaWxkLT5jb21wdXRlQW5kU2V0QmxvY2tEaXJlY3Rpb25NYXJn
aW5zKHRoaXMpOwogCi0gICAgLy8gRG8gbm90IGFsbG93IGEgY29sbGFwc2UgaWYgdGhlIG1hcmdp
bi1iZWZvcmUtY29sbGFwc2Ugc3R5bGUgaXMgc2V0IHRvIFNFUEFSQVRFLgotICAgIFJlbmRlclN0
eWxlKiBjaGlsZFN0eWxlID0gY2hpbGQtPnN0eWxlKCk7Ci0gICAgaWYgKGNoaWxkU3R5bGUtPm1h
cmdpbkJlZm9yZUNvbGxhcHNlKCkgPT0gTVNFUEFSQVRFKSB7Ci0gICAgICAgIG1hcmdpbkluZm8u
c2V0QXRCZWZvcmVTaWRlT2ZCbG9jayhmYWxzZSk7Ci0gICAgICAgIG1hcmdpbkluZm8uY2xlYXJN
YXJnaW4oKTsKLSAgICB9Ci0KICAgICAvLyBUcnkgdG8gZ3Vlc3Mgb3VyIGNvcnJlY3QgbG9naWNh
bCB0b3AgcG9zaXRpb24uICBJbiBtb3N0IGNhc2VzIHRoaXMgZ3Vlc3Mgd2lsbAogICAgIC8vIGJl
IGNvcnJlY3QuICBPbmx5IGlmIHdlJ3JlIHdyb25nICh3aGVuIHdlIGNvbXB1dGUgdGhlIHJlYWwg
bG9naWNhbCB0b3AgcG9zaXRpb24pCiAgICAgLy8gd2lsbCB3ZSBoYXZlIHRvIHBvdGVudGlhbGx5
IHJlbGF5b3V0LgpAQCAtMjUxNSw3ICsyNTY1LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0
QmxvY2tDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiBtYXJnaW5JbmZvLCBMYXkK
IAogICAgIC8vIFVwZGF0ZSBvdXIgaGVpZ2h0IG5vdyB0aGF0IHRoZSBjaGlsZCBoYXMgYmVlbiBw
bGFjZWQgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb24uCiAgICAgc2V0TG9naWNhbEhlaWdodChsb2dp
Y2FsSGVpZ2h0KCkgKyBsb2dpY2FsSGVpZ2h0Rm9yQ2hpbGQoY2hpbGQpKTsKLSAgICBpZiAoY2hp
bGRTdHlsZS0+bWFyZ2luQWZ0ZXJDb2xsYXBzZSgpID09IE1TRVBBUkFURSkgeworICAgIGlmICht
dXN0U2VwYXJhdGVNYXJnaW5BZnRlckZvckNoaWxkKGNoaWxkKSkgewogICAgICAgICBzZXRMb2dp
Y2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSArIG1hcmdpbkFmdGVyRm9yQ2hpbGQoY2hpbGQpKTsK
ICAgICAgICAgbWFyZ2luSW5mby5jbGVhck1hcmdpbigpOwogICAgIH0KQEAgLTY4NDEsNiArNjg5
MSw5OSBAQCB2b2lkIFJlbmRlckJsb2NrOjpzZXRNYXhNYXJnaW5BZnRlclZhbHVlcyhMYXlvdXRV
bml0IHBvcywgTGF5b3V0VW5pdCBuZWcpCiAgICAgbV9yYXJlRGF0YS0+bV9tYXJnaW5zLnNldE5l
Z2F0aXZlTWFyZ2luQWZ0ZXIobmVnKTsKIH0KIAordm9pZCBSZW5kZXJCbG9jazo6c2V0TXVzdERp
c2NhcmRNYXJnaW5CZWZvcmUoYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAoc3R5bGUoKS0+bWFyZ2lu
QmVmb3JlQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCkgeworICAgICAgICBBU1NFUlQodmFsdWUpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmICghbV9yYXJlRGF0YSAmJiAhdmFs
dWUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9yYXJlRGF0YSkKKyAgICAgICAgbV9y
YXJlRGF0YSA9IGFkb3B0UHRyKG5ldyBSZW5kZXJCbG9ja1JhcmVEYXRhKHRoaXMpKTsKKworICAg
IG1fcmFyZURhdGEtPm1fZGlzY2FyZE1hcmdpbkJlZm9yZSA9IHZhbHVlOworfQorCit2b2lkIFJl
bmRlckJsb2NrOjpzZXRNdXN0RGlzY2FyZE1hcmdpbkFmdGVyKGJvb2wgdmFsdWUpCit7CisgICAg
aWYgKHN0eWxlKCktPm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElTQ0FSRCkgeworICAgICAg
ICBBU1NFUlQodmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3Jh
cmVEYXRhICYmICF2YWx1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3JhcmVEYXRh
KQorICAgICAgICBtX3JhcmVEYXRhID0gYWRvcHRQdHIobmV3IFJlbmRlckJsb2NrUmFyZURhdGEo
dGhpcykpOworCisgICAgbV9yYXJlRGF0YS0+bV9kaXNjYXJkTWFyZ2luQWZ0ZXIgPSB2YWx1ZTsK
K30KKworYm9vbCBSZW5kZXJCbG9jazo6bXVzdERpc2NhcmRNYXJnaW5CZWZvcmUoKSBjb25zdAor
eworICAgIHJldHVybiBzdHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1ESVNDQVJE
IHx8IChtX3JhcmVEYXRhICYmIG1fcmFyZURhdGEtPm1fZGlzY2FyZE1hcmdpbkJlZm9yZSk7Cit9
CisKK2Jvb2wgUmVuZGVyQmxvY2s6Om11c3REaXNjYXJkTWFyZ2luQWZ0ZXIoKSBjb25zdAorewor
ICAgIHJldHVybiBzdHlsZSgpLT5tYXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTURJU0NBUkQgfHwg
KG1fcmFyZURhdGEgJiYgbV9yYXJlRGF0YS0+bV9kaXNjYXJkTWFyZ2luQWZ0ZXIpOworfQorCiti
b29sIFJlbmRlckJsb2NrOjptdXN0RGlzY2FyZE1hcmdpbkJlZm9yZUZvckNoaWxkKGNvbnN0IFJl
bmRlckJveCogY2hpbGQpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFjaGlsZC0+c2VsZk5lZWRzTGF5
b3V0KCkpOworICAgIGlmICghY2hpbGQtPmlzV3JpdGluZ01vZGVSb290KCkpCisgICAgICAgIHJl
dHVybiBjaGlsZC0+aXNSZW5kZXJCbG9jaygpID8gdG9SZW5kZXJCbG9jayhjaGlsZCktPm11c3RE
aXNjYXJkTWFyZ2luQmVmb3JlKCkgOiAoY2hpbGQtPnN0eWxlKCktPm1hcmdpbkJlZm9yZUNvbGxh
cHNlKCkgPT0gTURJU0NBUkQpOworICAgIGlmIChjaGlsZC0+aXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSA9PSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICByZXR1cm4gY2hpbGQt
PmlzUmVuZGVyQmxvY2soKSA/IHRvUmVuZGVyQmxvY2soY2hpbGQpLT5tdXN0RGlzY2FyZE1hcmdp
bkFmdGVyKCkgOiAoY2hpbGQtPnN0eWxlKCktPm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNRElT
Q0FSRCk7CisKKyAgICAvLyBGSVhNRTogV2UgcmV0dXJuIGZhbHNlIGhlcmUgYmVjYXVzZSB0aGUg
aW1wbGVtZW50YXRpb24gaXMgbm90IGdlb21ldHJpY2FsbHkgY29tcGxldGUuIFdlIGhhdmUgdmFs
dWVzIG9ubHkgZm9yIGJlZm9yZS9hZnRlciwgbm90IHN0YXJ0L2VuZC4KKyAgICAvLyBJbiBjYXNl
IHRoZSBib3hlcyBhcmUgcGVycGVuZGljdWxhciB3ZSBhc3N1bWUgdGhlIHByb3BlcnR5IGlzIG5v
dCBzcGVjaWZpZWQuCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFJlbmRlckJsb2NrOjpt
dXN0RGlzY2FyZE1hcmdpbkFmdGVyRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCkgY29u
c3QKK3sKKyAgICBBU1NFUlQoIWNoaWxkLT5zZWxmTmVlZHNMYXlvdXQoKSk7CisgICAgaWYgKCFj
aGlsZC0+aXNXcml0aW5nTW9kZVJvb3QoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkLT5pc1JlbmRl
ckJsb2NrKCkgPyB0b1JlbmRlckJsb2NrKGNoaWxkKS0+bXVzdERpc2NhcmRNYXJnaW5BZnRlcigp
IDogKGNoaWxkLT5zdHlsZSgpLT5tYXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTURJU0NBUkQpOwor
ICAgIGlmIChjaGlsZC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKQorICAgICAgICByZXR1cm4gY2hpbGQtPmlzUmVuZGVyQmxvY2soKSA/IHRv
UmVuZGVyQmxvY2soY2hpbGQpLT5tdXN0RGlzY2FyZE1hcmdpbkJlZm9yZSgpIDogKGNoaWxkLT5z
dHlsZSgpLT5tYXJnaW5CZWZvcmVDb2xsYXBzZSgpID09IE1ESVNDQVJEKTsKKworICAgIC8vIEZJ
WE1FOiBTZWUgfG11c3REaXNjYXJkTWFyZ2luQmVmb3JlRm9yQ2hpbGR8IGFib3ZlLgorICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBSZW5kZXJCbG9jazo6bXVzdFNlcGFyYXRlTWFyZ2luQmVm
b3JlRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKK3sKKyAgICBBU1NFUlQo
IWNoaWxkLT5zZWxmTmVlZHNMYXlvdXQoKSk7CisgICAgY29uc3QgUmVuZGVyU3R5bGUqIGNoaWxk
U3R5bGUgPSBjaGlsZC0+c3R5bGUoKTsKKyAgICBpZiAoIWNoaWxkLT5pc1dyaXRpbmdNb2RlUm9v
dCgpKQorICAgICAgICByZXR1cm4gY2hpbGRTdHlsZS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9
PSBNU0VQQVJBVEU7CisgICAgaWYgKGNoaWxkLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID09
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHJldHVybiBjaGlsZFN0eWxlLT5t
YXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTVNFUEFSQVRFOworCisgICAgLy8gRklYTUU6IFNlZSB8
bXVzdERpc2NhcmRNYXJnaW5CZWZvcmVGb3JDaGlsZHwgYWJvdmUuCisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFJlbmRlckJsb2NrOjptdXN0U2VwYXJhdGVNYXJnaW5BZnRlckZvckNoaWxk
KGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFjaGlsZC0+c2Vs
Zk5lZWRzTGF5b3V0KCkpOworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBjaGlsZFN0eWxlID0gY2hp
bGQtPnN0eWxlKCk7CisgICAgaWYgKCFjaGlsZC0+aXNXcml0aW5nTW9kZVJvb3QoKSkKKyAgICAg
ICAgcmV0dXJuIGNoaWxkU3R5bGUtPm1hcmdpbkFmdGVyQ29sbGFwc2UoKSA9PSBNU0VQQVJBVEU7
CisgICAgaWYgKGNoaWxkLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID09IGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHJldHVybiBjaGlsZFN0eWxlLT5tYXJnaW5CZWZvcmVD
b2xsYXBzZSgpID09IE1TRVBBUkFURTsKKworICAgIC8vIEZJWE1FOiBTZWUgfG11c3REaXNjYXJk
TWFyZ2luQmVmb3JlRm9yQ2hpbGR8IGFib3ZlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9p
ZCBSZW5kZXJCbG9jazo6c2V0UGFnaW5hdGlvblN0cnV0KExheW91dFVuaXQgc3RydXQpCiB7CiAg
ICAgaWYgKCFtX3JhcmVEYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5o
CmluZGV4IDRmODFlYTAzNzc2MzM5ZDIzOTA1NmQyZTdhNjgwMWEwY2JkNGIzMTcuLjc1MTVlNjM3
MmM5YmNmZGE4MTFhY2JlMjZjNGRiN2EyZmFhZmZiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oCkBAIC00NTUsMTIgKzQ1NSwyNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBzZXRNYXhNYXJnaW5CZWZvcmVWYWx1ZXMoTGF5b3V0VW5pdCBwb3MsIExheW91dFVuaXQgbmVn
KTsKICAgICB2b2lkIHNldE1heE1hcmdpbkFmdGVyVmFsdWVzKExheW91dFVuaXQgcG9zLCBMYXlv
dXRVbml0IG5lZyk7CiAKKyAgICB2b2lkIHNldE11c3REaXNjYXJkTWFyZ2luQmVmb3JlKGJvb2wg
PSB0cnVlKTsKKyAgICB2b2lkIHNldE11c3REaXNjYXJkTWFyZ2luQWZ0ZXIoYm9vbCA9IHRydWUp
OworCisgICAgYm9vbCBtdXN0RGlzY2FyZE1hcmdpbkJlZm9yZSgpIGNvbnN0OworICAgIGJvb2wg
bXVzdERpc2NhcmRNYXJnaW5BZnRlcigpIGNvbnN0OworCisgICAgYm9vbCBtdXN0RGlzY2FyZE1h
cmdpbkJlZm9yZUZvckNoaWxkKGNvbnN0IFJlbmRlckJveCopIGNvbnN0OworICAgIGJvb2wgbXVz
dERpc2NhcmRNYXJnaW5BZnRlckZvckNoaWxkKGNvbnN0IFJlbmRlckJveCopIGNvbnN0OworCisg
ICAgYm9vbCBtdXN0U2VwYXJhdGVNYXJnaW5CZWZvcmVGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gq
KSBjb25zdDsKKyAgICBib29sIG11c3RTZXBhcmF0ZU1hcmdpbkFmdGVyRm9yQ2hpbGQoY29uc3Qg
UmVuZGVyQm94KikgY29uc3Q7CisKICAgICB2b2lkIGluaXRNYXhNYXJnaW5WYWx1ZXMoKQogICAg
IHsKICAgICAgICAgaWYgKG1fcmFyZURhdGEpIHsKICAgICAgICAgICAgIG1fcmFyZURhdGEtPm1f
bWFyZ2lucyA9IE1hcmdpblZhbHVlcyhSZW5kZXJCbG9ja1JhcmVEYXRhOjpwb3NpdGl2ZU1hcmdp
bkJlZm9yZURlZmF1bHQodGhpcykgLCBSZW5kZXJCbG9ja1JhcmVEYXRhOjpuZWdhdGl2ZU1hcmdp
bkJlZm9yZURlZmF1bHQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmVuZGVyQmxvY2tSYXJlRGF0YTo6cG9zaXRpdmVNYXJnaW5BZnRlckRl
ZmF1bHQodGhpcyksIFJlbmRlckJsb2NrUmFyZURhdGE6Om5lZ2F0aXZlTWFyZ2luQWZ0ZXJEZWZh
dWx0KHRoaXMpKTsKICAgICAgICAgICAgIG1fcmFyZURhdGEtPm1fcGFnaW5hdGlvblN0cnV0ID0g
MDsKKworICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV9kaXNjYXJkTWFyZ2luQmVmb3JlID0gZmFs
c2U7CisgICAgICAgICAgICBtX3JhcmVEYXRhLT5tX2Rpc2NhcmRNYXJnaW5BZnRlciA9IGZhbHNl
OwogICAgICAgICB9CiAgICAgfQogCkBAIC05NTgsNiArOTczLDggQEAgcHJpdmF0ZToKICAgICAg
ICAgYm9vbCBtX21hcmdpbkFmdGVyUXVpcmsgOiAxOwogICAgICAgICBib29sIG1fZGV0ZXJtaW5l
ZE1hcmdpbkJlZm9yZVF1aXJrIDogMTsKIAorICAgICAgICBib29sIG1fZGlzY2FyZE1hcmdpbiA6
IDE7CisKICAgICAgICAgLy8gVGhlc2UgZmxhZ3MgdHJhY2sgdGhlIHByZXZpb3VzIG1heGltYWwg
cG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG1hcmdpbnMuCiAgICAgICAgIExheW91dFVuaXQgbV9wb3Np
dGl2ZU1hcmdpbjsKICAgICAgICAgTGF5b3V0VW5pdCBtX25lZ2F0aXZlTWFyZ2luOwpAQCAtOTc1
LDMzICs5OTIsMzcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXRNYXJnaW5CZWZvcmVRdWly
ayhib29sIGIpIHsgbV9tYXJnaW5CZWZvcmVRdWlyayA9IGI7IH0KICAgICAgICAgdm9pZCBzZXRN
YXJnaW5BZnRlclF1aXJrKGJvb2wgYikgeyBtX21hcmdpbkFmdGVyUXVpcmsgPSBiOyB9CiAgICAg
ICAgIHZvaWQgc2V0RGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrKGJvb2wgYikgeyBtX2RldGVy
bWluZWRNYXJnaW5CZWZvcmVRdWlyayA9IGI7IH0KLSAgICAgICAgdm9pZCBzZXRQb3NpdGl2ZU1h
cmdpbihMYXlvdXRVbml0IHApIHsgbV9wb3NpdGl2ZU1hcmdpbiA9IHA7IH0KLSAgICAgICAgdm9p
ZCBzZXROZWdhdGl2ZU1hcmdpbihMYXlvdXRVbml0IG4pIHsgbV9uZWdhdGl2ZU1hcmdpbiA9IG47
IH0KKyAgICAgICAgdm9pZCBzZXRQb3NpdGl2ZU1hcmdpbihMYXlvdXRVbml0IHApIHsgQVNTRVJU
KCFtX2Rpc2NhcmRNYXJnaW4pOyBtX3Bvc2l0aXZlTWFyZ2luID0gcDsgfQorICAgICAgICB2b2lk
IHNldE5lZ2F0aXZlTWFyZ2luKExheW91dFVuaXQgbikgeyBBU1NFUlQoIW1fZGlzY2FyZE1hcmdp
bik7IG1fbmVnYXRpdmVNYXJnaW4gPSBuOyB9CiAgICAgICAgIHZvaWQgc2V0UG9zaXRpdmVNYXJn
aW5JZkxhcmdlcihMYXlvdXRVbml0IHApCiAgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCgh
bV9kaXNjYXJkTWFyZ2luKTsKICAgICAgICAgICAgIGlmIChwID4gbV9wb3NpdGl2ZU1hcmdpbikK
ICAgICAgICAgICAgICAgICBtX3Bvc2l0aXZlTWFyZ2luID0gcDsKICAgICAgICAgfQogICAgICAg
ICB2b2lkIHNldE5lZ2F0aXZlTWFyZ2luSWZMYXJnZXIoTGF5b3V0VW5pdCBuKQogICAgICAgICB7
CisgICAgICAgICAgICBBU1NFUlQoIW1fZGlzY2FyZE1hcmdpbik7CiAgICAgICAgICAgICBpZiAo
biA+IG1fbmVnYXRpdmVNYXJnaW4pCiAgICAgICAgICAgICAgICAgbV9uZWdhdGl2ZU1hcmdpbiA9
IG47CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHNldE1hcmdpbihMYXlvdXRVbml0IHAsIExh
eW91dFVuaXQgbikgeyBtX3Bvc2l0aXZlTWFyZ2luID0gcDsgbV9uZWdhdGl2ZU1hcmdpbiA9IG47
IH0KKyAgICAgICAgdm9pZCBzZXRNYXJnaW4oTGF5b3V0VW5pdCBwLCBMYXlvdXRVbml0IG4pIHsg
QVNTRVJUKCFtX2Rpc2NhcmRNYXJnaW4pOyBtX3Bvc2l0aXZlTWFyZ2luID0gcDsgbV9uZWdhdGl2
ZU1hcmdpbiA9IG47IH0KKyAgICAgICAgdm9pZCBzZXRDYW5Db2xsYXBzZU1hcmdpbkFmdGVyV2l0
aENoaWxkcmVuKGJvb2wgY29sbGFwc2UpIHsgbV9jYW5Db2xsYXBzZU1hcmdpbkFmdGVyV2l0aENo
aWxkcmVuID0gY29sbGFwc2U7IH0KKyAgICAgICAgdm9pZCBzZXREaXNjYXJkTWFyZ2luKGJvb2wg
dmFsdWUpIHsgbV9kaXNjYXJkTWFyZ2luID0gdmFsdWU7IH0KIAogICAgICAgICBib29sIGF0QmVm
b3JlU2lkZU9mQmxvY2soKSBjb25zdCB7IHJldHVybiBtX2F0QmVmb3JlU2lkZU9mQmxvY2s7IH0K
ICAgICAgICAgYm9vbCBjYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUoKSBjb25zdCB7IHJldHVy
biBtX2F0QmVmb3JlU2lkZU9mQmxvY2sgJiYgbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhD
aGlsZHJlbjsgfQogICAgICAgICBib29sIGNhbkNvbGxhcHNlV2l0aE1hcmdpbkFmdGVyKCkgY29u
c3QgeyByZXR1cm4gbV9hdEFmdGVyU2lkZU9mQmxvY2sgJiYgbV9jYW5Db2xsYXBzZU1hcmdpbkFm
dGVyV2l0aENoaWxkcmVuOyB9CiAgICAgICAgIGJvb2wgY2FuQ29sbGFwc2VNYXJnaW5CZWZvcmVX
aXRoQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX2NhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0
aENoaWxkcmVuOyB9CiAgICAgICAgIGJvb2wgY2FuQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhDaGls
ZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2FuQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhDaGlsZHJl
bjsgfQotICAgICAgICB2b2lkIHNldENhbkNvbGxhcHNlTWFyZ2luQWZ0ZXJXaXRoQ2hpbGRyZW4o
Ym9vbCBjb2xsYXBzZSkgeyBtX2NhbkNvbGxhcHNlTWFyZ2luQWZ0ZXJXaXRoQ2hpbGRyZW4gPSBj
b2xsYXBzZTsgfQogICAgICAgICBib29sIHF1aXJrQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4g
bV9xdWlya0NvbnRhaW5lcjsgfQogICAgICAgICBib29sIGRldGVybWluZWRNYXJnaW5CZWZvcmVR
dWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fZGV0ZXJtaW5lZE1hcmdpbkJlZm9yZVF1aXJrOyB9CiAg
ICAgICAgIGJvb2wgbWFyZ2luQmVmb3JlUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX21hcmdpbkJl
Zm9yZVF1aXJrOyB9CiAgICAgICAgIGJvb2wgbWFyZ2luQWZ0ZXJRdWlyaygpIGNvbnN0IHsgcmV0
dXJuIG1fbWFyZ2luQWZ0ZXJRdWlyazsgfQogICAgICAgICBMYXlvdXRVbml0IHBvc2l0aXZlTWFy
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGl2ZU1hcmdpbjsgfQogICAgICAgICBMYXlvdXRV
bml0IG5lZ2F0aXZlTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gbV9uZWdhdGl2ZU1hcmdpbjsgfQor
ICAgICAgICBib29sIGRpc2NhcmRNYXJnaW4oKSBjb25zdCB7IHJldHVybiBtX2Rpc2NhcmRNYXJn
aW47IH0KICAgICAgICAgTGF5b3V0VW5pdCBtYXJnaW4oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0
aXZlTWFyZ2luIC0gbV9uZWdhdGl2ZU1hcmdpbjsgfQogICAgIH07CiAKQEAgLTEwMTksNyArMTA0
MCw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBjb2xsYXBzZU1hcmdpbnMoUmVuZGVyQm94
KiBjaGlsZCwgTWFyZ2luSW5mbyYpOwogICAgIExheW91dFVuaXQgY2xlYXJGbG9hdHNJZk5lZWRl
ZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5JbmZvJiwgTGF5b3V0VW5pdCBvbGRUb3BQb3NNYXJn
aW4sIExheW91dFVuaXQgb2xkVG9wTmVnTWFyZ2luLCBMYXlvdXRVbml0IHlQb3MpOwogICAgIExh
eW91dFVuaXQgZXN0aW1hdGVMb2dpY2FsVG9wUG9zaXRpb24oUmVuZGVyQm94KiBjaGlsZCwgY29u
c3QgTWFyZ2luSW5mbyYsIExheW91dFVuaXQmIGVzdGltYXRlV2l0aG91dFBhZ2luYXRpb24pOwot
ICAgIHZvaWQgbWFyZ2luQmVmb3JlRXN0aW1hdGVGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBM
YXlvdXRVbml0JiBwb3NpdGl2ZU1hcmdpbkJlZm9yZSwgTGF5b3V0VW5pdCYgbmVnYXRpdmVNYXJn
aW5CZWZvcmUpIGNvbnN0OworICAgIHZvaWQgbWFyZ2luQmVmb3JlRXN0aW1hdGVGb3JDaGlsZChS
ZW5kZXJCb3gqLCBMYXlvdXRVbml0JiwgTGF5b3V0VW5pdCYsIGJvb2wmKSBjb25zdDsKICAgICB2
b2lkIGRldGVybWluZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxk
KTsKICAgICB2b2lkIGhhbmRsZUFmdGVyU2lkZU9mQmxvY2soTGF5b3V0VW5pdCB0b3AsIExheW91
dFVuaXQgYm90dG9tLCBNYXJnaW5JbmZvJik7CiAgICAgdm9pZCBzZXRDb2xsYXBzZWRCb3R0b21N
YXJnaW4oY29uc3QgTWFyZ2luSW5mbyYpOwpAQCAtMTE4MSw4ICsxMjAyLDEwIEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgICAgICwgbV9wYWdpbmF0aW9uU3RydXQoMCkKICAgICAgICAgICAgICwgbV9w
YWdlTG9naWNhbE9mZnNldCgwKQogICAgICAgICAgICAgLCBtX2xpbmVHcmlkQm94KDApCi0gICAg
ICAgICAgICAsIG1fc2hvdWxkQnJlYWtBdExpbmVUb0F2b2lkV2lkb3coZmFsc2UpCiAgICAgICAg
ICAgICAsIG1fbGluZUJyZWFrVG9Bdm9pZFdpZG93KDApCisgICAgICAgICAgICAsIG1fc2hvdWxk
QnJlYWtBdExpbmVUb0F2b2lkV2lkb3coZmFsc2UpCisgICAgICAgICAgICAsIG1fZGlzY2FyZE1h
cmdpbkJlZm9yZShmYWxzZSkKKyAgICAgICAgICAgICwgbV9kaXNjYXJkTWFyZ2luQWZ0ZXIoZmFs
c2UpCiAgICAgICAgIHsgCiAgICAgICAgIH0KIApAQCAtMTE5MCw3ICsxMjEzLDYgQEAgcHJvdGVj
dGVkOgogICAgICAgICB7IAogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+
KGJsb2NrLT5tYXJnaW5CZWZvcmUoKSwgMCk7CiAgICAgICAgIH0KLSAgICAgICAgCiAgICAgICAg
IHN0YXRpYyBMYXlvdXRVbml0IG5lZ2F0aXZlTWFyZ2luQmVmb3JlRGVmYXVsdChjb25zdCBSZW5k
ZXJCbG9jayogYmxvY2spCiAgICAgICAgIHsgCiAgICAgICAgICAgICByZXR1cm4gc3RkOjptYXg8
TGF5b3V0VW5pdD4oLWJsb2NrLT5tYXJnaW5CZWZvcmUoKSwgMCk7CkBAIC0xMjEwLDggKzEyMzIs
MTAgQEAgcHJvdGVjdGVkOgogICAgICAgICAKICAgICAgICAgUm9vdElubGluZUJveCogbV9saW5l
R3JpZEJveDsKIAotICAgICAgICBib29sIG1fc2hvdWxkQnJlYWtBdExpbmVUb0F2b2lkV2lkb3c7
CiAgICAgICAgIFJvb3RJbmxpbmVCb3gqIG1fbGluZUJyZWFrVG9Bdm9pZFdpZG93OworICAgICAg
ICBib29sIG1fc2hvdWxkQnJlYWtBdExpbmVUb0F2b2lkV2lkb3cgOiAxOworICAgICAgICBib29s
IG1fZGlzY2FyZE1hcmdpbkJlZm9yZSA6IDE7CisgICAgICAgIGJvb2wgbV9kaXNjYXJkTWFyZ2lu
QWZ0ZXIgOiAxOwogICAgICB9OwogCiAgICAgT3duUHRyPFJlbmRlckJsb2NrUmFyZURhdGE+IG1f
cmFyZURhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CmluZGV4IGY1ZTVjZDM3Y2JmZDlmZTgzOGQxMDQyOTc0NGFiMzVjOWNkZDhlYmMuLjBiZmQ5NDFm
YWUwMWNiMDY3MDllMjk1NzQ5ZWNkMzNkOGZhMTU3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0zNzcsNiArMzc3LDggQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzQm9yZGVyKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5oYXNC
b3JkZXIoKTsgfQogICAgIGJvb2wgaGFzUGFkZGluZygpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5k
LT5wYWRkaW5nLm5vblplcm8oKTsgfQogICAgIGJvb2wgaGFzT2Zmc2V0KCkgY29uc3QgeyByZXR1
cm4gc3Vycm91bmQtPm9mZnNldC5ub25aZXJvKCk7IH0KKyAgICBib29sIGlzTWFyZ2luQmVmb3Jl
UXVpcmsoKSBjb25zdCB7IHJldHVybiBtYXJnaW5CZWZvcmUoKS5xdWlyaygpOyB9CisgICAgYm9v
bCBpc01hcmdpbkFmdGVyUXVpcmsoKSBjb25zdCB7IHJldHVybiBtYXJnaW5BZnRlcigpLnF1aXJr
KCk7IH0KIAogICAgIGJvb2wgaGFzQmFja2dyb3VuZEltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9i
YWNrZ3JvdW5kLT5iYWNrZ3JvdW5kKCkuaGFzSW1hZ2UoKTsgfQogICAgIGJvb2wgaGFzRml4ZWRC
YWNrZ3JvdW5kSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmQtPmJhY2tncm91bmQo
KS5oYXNGaXhlZEltYWdlKCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZDAyNzk3ZTJhM2E4ZWRlMTRmYjRhOGUzYjZl
OTJmZWRjZGY2NzNhLi4yOTI4NjMwZGJiMjg4OTExNmRmY2ViOWY3OWMxZTg4NzdhZjYyNDk5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDItMDYgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBh
ZG9iZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBz
ZSBwcm9wZXJ0aWVzIGNvcnJlY3QgcmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBGb3VyIG5ldyB0ZXN0cyBjb3ZlcmluZyB0aGUgLXdlYmtp
dC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydHkgYmFzaWMgYmVoYXZpb3I6IGNvbGxhcHNpbmcKKyAg
ICAgICAgYmV0d2VlbiBhIGJsb2NrIGNvbnRhaW5lciBhbmQgaXRzIGNoaWxkcmVuLCBjb2xsYXBz
aW5nIGJldHdlZW4gc2libGluZyBib3hlcyBpbiBib3RoIFRUQgorICAgICAgICBhbmQgQlRUIGRp
cmVjdGlvbi4gVGhlIGxhc3QgdGVzdCB2ZXJpZmllcyBpZiBhIGNvbnRhaW5lcidzIGJlZm9yZSBt
YXJnaW4gY29ycmVjdGx5IHJlc2V0cworICAgICAgICB0aGUgZGlzY2FyZCB2YWx1ZSBhZnRlciBh
IGNsZWFyIG9mIHRoZSBjaGlsZCB0aGF0IGluaXRhbGx5IGNhdXNlZCBpdC4KKworICAgICAgICAq
IGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFp
bmVyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNv
bGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtY29udGFpbmVyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Ut
ZmxvYXRzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYmxvY2svbWFyZ2lu
LWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Ut
c2libGluZ3MtYnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ibG9jay9t
YXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1idC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2lu
LWNvbGxhcHNlLXNpYmxpbmdzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
YmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MuaHRt
bDogQWRkZWQuCisKIDIwMTMtMDItMDcgIFBldGVyIFJ5YmluICA8cHJ5YmluQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IEphdmFTY3JpcHQgdmFyaWFibGUg
bXV0YXRpb24gaW4gcHJvdG9jb2wgYW5kIFY4IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWNv
bnRhaW5lci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29s
bGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1jb250YWluZXItZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMmUzMjg1MWZkYTc4NzFjMWM4MzI2N2EzYzVmNmU5MDQzZWUzMjQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0
LW1hcmdpbi1jb2xsYXBzZS1jb250YWluZXItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1OSBA
QAorPGh0bWw+CisJPGhlYWQ+CisJCTxzdHlsZT4KKwkJZGl2IHsKKwkJCW1hcmdpbjogMHB4Owor
CQl9CisKKwkJLmNvbnRhaW5lciB7CisJCQlib3JkZXI6IHRoaW4gc29saWQgYmx1ZTsKKwkJCXdp
ZHRoOiAzNTBweDsKKwkJCWZsb2F0OiBsZWZ0OworCQl9CisKKwkJLmxldmVsMSB7CisJCQltYXJn
aW4tdG9wOiAxMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMTBweDsKKwkJCWJvcmRlcjogMXB4IGRh
c2hlZCBibGFjazsKKwkJCWJhY2tncm91bmQtY29sb3I6IGdyZWVuOworCQl9CisKKwkJLmxldmVs
MiB7CisJCQltYXJnaW4tdG9wOiAyNXB4OworCQkJbWFyZ2luLWJvdHRvbTogMjBweDsKKwkJCWJh
Y2tncm91bmQtY29sb3I6IG9yYW5nZTsKKwkJfQorCisJCS5sZXZlbDMgeworCQkJbWFyZ2luLXRv
cDogMzBweDsKKwkJCW1hcmdpbi1ib3R0b206IDMwcHg7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBw
aW5rOworCQl9CisKKwkJI3QxIC5sZXZlbDIgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQl9CisK
KwkJI3QxIC5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQl9CisKKwkJI3QyIC5sZXZl
bDIgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI3QyIC5sZXZlbDMgeworCQkJ
bWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI3QzIC5sZXZlbDIgeworCQkJbWFyZ2luLXRv
cDogMHB4OworCQl9CisKKwkJI3QzIC5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQl9
CisKKwkJI3Q0IC5sZXZlbDIgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI3Q0
IC5sZXZlbDMgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI3Q1IC5sZXZlbDIg
eworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJ
I3Q1IC5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4
OworCQl9CisKKwkJI3Q2IC5sZXZlbDIgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2lu
LWJvdHRvbTogMHB4OworCQl9CisKKwkJI3Q2IC5sZXZlbDMgeworCQkJbWFyZ2luLXRvcDogMHB4
OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI3Q3IC5sZXZlbDMgeworCQkJbWFy
Z2luLXRvcDogMHB4OworCQl9CisKKwkJI3Q4IC5sZXZlbDMgeworCQkJbWFyZ2luLWJvdHRvbTog
MHB4OworCQl9CisKKwkJI3Q5IC5sZXZlbDIgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJcGFk
ZGluZy10b3A6IDMwcHg7CisJCX0KKworCQkjdDkgLmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiAw
cHg7CisJCX0KKworCQkjdDEwIC5sZXZlbDIgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQkJ
cGFkZGluZy1ib3R0b206IDMwcHg7CisJCX0KKworCQkjdDEwIC5sZXZlbDMgeworCQkJbWFyZ2lu
LWJvdHRvbTogMHB4OworCQl9CisKKwkJI3QxMSAubGV2ZWwyIHsKKwkJCW1hcmdpbi10b3A6IDBw
eDsKKwkJCXBhZGRpbmctdG9wOiAzMHB4OworCQl9CisKKwkJI3QxMSAubGV2ZWwzIHsKKwkJCW1h
cmdpbi10b3A6IDBweDsKKwkJfQorCisJCSN0MTEgeworCQkJcGFkZGluZy10b3A6IDI1cHg7CisJ
CX0KKworCQkjdDEyIC5sZXZlbDIgeworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQkJcGFkZGlu
Zy1ib3R0b206IDMwcHg7CisJCX0KKworCQkjdDEyIC5sZXZlbDMgeworCQkJbWFyZ2luLWJvdHRv
bTogMHB4OworCQl9CisKKwkJI3QxMiB7CisJCQlwYWRkaW5nLWJvdHRvbTogMjBweDsKKwkJfQor
CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBsZW1lbnQg
dGhlIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5kZXJpbmc8
L2E+LjwvcD4KKwkJPHA+VGhpcyByZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2luZyBiZWhh
dmlvciBiZXR3ZWVuIGEgYm94IGFuZCBpdHMgY29udGFpbmVyIHdoZW4gdXNpbmcgLXdlYmtpdC1t
YXJnaW4tY29sbGFwc2UuPC9wPgorCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorCQkJPGRpdiBp
ZD0idDEiIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2
ZWwzIj5QaW5rOiBkaXNjYXJkIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDIi
IGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5Q
aW5rOiBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDMiIGNs
YXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFu
Z2U6IGRpc2NhcmQgdG9wPC9kaXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0NCIgY2xhc3M9
ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTog
ZGlzY2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9InQ1IiBjbGFzcz0i
bGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBk
aXNjYXJkIHRvcCwgZGlzY2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgaWQ9
InQ2IiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVs
MyI+UGluazogZGlzY2FyZCB0b3AsIGRpc2NhcmQgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJ
CQk8ZGl2IGlkPSJ0NyIgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNs
YXNzPSJsZXZlbDMiPk9yYW5nZTogc2VwYXJhdGUgdG9wLCBQaW5rOiBkaXNjYXJkIHRvcDwvZGl2
PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDgiIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9
ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IHNlcGFyYXRlIGJvdHRvbSwgUGlu
azogZGlzY2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJPC9kaXY+CisJCTxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisJCQk8ZGl2IGlkPSJ0OSIgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFz
cz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMiPk9yYW5nZTogZGlzY2FyZCB0b3AsIFBpbms6
IHNlcGFyYXRlIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBpZD0idDEwIiBjbGFzcz0i
bGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBk
aXNjYXJkIGJvdHRvbSwgUGluazogc2VwYXJhdGUgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJ
CQk8ZGl2IGlkPSJ0MTEiIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBj
bGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IHNlcGFyYXRlIHRvcCwgUGluazogc2VwYXJhdGUgdG9wPC9k
aXY+PC9kaXY+PC9kaXY+CisJCQk8ZGl2IGlkPSJ0MTIiIGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xh
c3M9ImxldmVsMiI+PGRpdiBjbGFzcz0ibGV2ZWwzIj5PcmFuZ2U6IHNlcGFyYXRlIGJvdHRvbSwg
UGluazogc2VwYXJhdGUgYm90dG9tPC9kaXY+PC9kaXY+PC9kaXY+CisJCTwvZGl2PgorCTwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNl
LWNvbnRhaW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uv
d2Via2l0LW1hcmdpbi1jb2xsYXBzZS1jb250YWluZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2Q4NmNh
NDM5YmYwNjJjZDA5OWY1ZWYyMmVmNTZhOTZmNmZjZjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBz
ZS1jb250YWluZXIuaHRtbApAQCAtMCwwICsxLDc4IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHN0
eWxlPgorCQlkaXYgeworCQkJbWFyZ2luOiAwcHg7CisJCX0KKworCQkuY29udGFpbmVyIHsKKwkJ
CWJvcmRlcjogdGhpbiBzb2xpZCBibHVlOworCQkJd2lkdGg6IDM1MHB4OworCQkJZmxvYXQ6IGxl
ZnQ7CisJCX0KKworCQkubGV2ZWwxIHsKKwkJCW1hcmdpbi10b3A6IDEwcHg7CisJCQltYXJnaW4t
Ym90dG9tOiAxMHB4OworCQkJYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOworCQkJYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47CisJCX0KKworCQkubGV2ZWwyIHsKKwkJCW1hcmdpbi10b3A6IDI1cHg7
CisJCQltYXJnaW4tYm90dG9tOiAyMHB4OworCQkJYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOwor
CQl9CisKKwkJLmxldmVsMyB7CisJCQltYXJnaW4tdG9wOiAzMHB4OworCQkJbWFyZ2luLWJvdHRv
bTogMzBweDsKKwkJCWJhY2tncm91bmQtY29sb3I6IHBpbms7CisJCX0KKworCQkuY29sbGFwc2Vf
dG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogY29sbGFwc2U7CisJCX0KKwor
CQkuY29sbGFwc2VfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBzZTog
Y29sbGFwc2U7CisJCX0KKworCQkuZGlzY2FyZF90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9w
LWNvbGxhcHNlOiBkaXNjYXJkOworCQl9CisKKwkJLmRpc2NhcmRfYm90dG9tIHsKKwkJCS13ZWJr
aXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBzZTogZGlzY2FyZDsKKwkJfQorCisJCS5zZXBhcmF0ZV90
b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBzZXBhcmF0ZTsKKwkJfQorCisJ
CS5zZXBhcmF0ZV9ib3R0b20geworCQkJLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlOiBz
ZXBhcmF0ZTsKKwkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBm
b3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2
OCI+SW1wbGVtZW50IHRoZSAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJl
Y3QgcmVuZGVyaW5nPC9hPi48L3A+CisJCTxwPlRoaXMgcmVmIHRlc3QgY292ZXJzIGJhc2ljIGNv
bGxhcHNpbmcgYmVoYXZpb3IgYmV0d2VlbiBhIGJveCBhbmQgaXRzIGNvbnRhaW5lciB3aGVuIHVz
aW5nIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlLjwvcD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNz
PSJsZXZlbDMgZGlzY2FyZF90b3AiPlBpbms6IGRpc2NhcmQgdG9wPC9kaXY+PC9kaXY+PC9kaXY+
CisJCQk8ZGl2IGNsYXNzPSJsZXZlbDEiPjxkaXYgY2xhc3M9ImxldmVsMiI+PGRpdiBjbGFzcz0i
bGV2ZWwzIGRpc2NhcmRfYm90dG9tIj5QaW5rOiBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2Pjwv
ZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgZGlzY2FyZF90
b3AiPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIHRvcDwvZGl2PjwvZGl2Pjwv
ZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgZGlzY2FyZF9i
b3R0b20iPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNjYXJkIGJvdHRvbTwvZGl2Pjwv
ZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgZGlz
Y2FyZF90b3AgZGlzY2FyZF9ib3R0b20iPjxkaXYgY2xhc3M9ImxldmVsMyI+T3JhbmdlOiBkaXNj
YXJkIHRvcCwgZGlzY2FyZCBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9
ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIj48ZGl2IGNsYXNzPSJsZXZlbDMgZGlzY2FyZF90
b3AgZGlzY2FyZF9ib3R0b20iPlBpbms6IGRpc2NhcmQgdG9wLCBkaXNjYXJkIGJvdHRvbTwvZGl2
PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIg
c2VwYXJhdGVfdG9wIj48ZGl2IGNsYXNzPSJsZXZlbDMgZGlzY2FyZF90b3AiPk9yYW5nZTogc2Vw
YXJhdGUgdG9wLCBQaW5rOiBkaXNjYXJkIHRvcDwvZGl2PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBj
bGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIgc2VwYXJhdGVfYm90dG9tIj48ZGl2IGNs
YXNzPSJsZXZlbDMgZGlzY2FyZF9ib3R0b20iPk9yYW5nZTogc2VwYXJhdGUgYm90dG9tLCBQaW5r
OiBkaXNjYXJkIGJvdHRvbTwvZGl2PjwvZGl2PjwvZGl2PgorCQk8L2Rpdj4KKwkJPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKwkJCTxkaXYgY2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwy
IGRpc2NhcmRfdG9wIj48ZGl2IGNsYXNzPSJsZXZlbDMgc2VwYXJhdGVfdG9wIj5PcmFuZ2U6IGRp
c2NhcmQgdG9wLCBQaW5rOiBzZXBhcmF0ZSB0b3A8L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYg
Y2xhc3M9ImxldmVsMSI+PGRpdiBjbGFzcz0ibGV2ZWwyIGRpc2NhcmRfYm90dG9tIj48ZGl2IGNs
YXNzPSJsZXZlbDMgc2VwYXJhdGVfYm90dG9tIj5PcmFuZ2U6IGRpc2NhcmQgYm90dG9tLCBQaW5r
OiBzZXBhcmF0ZSBib3R0b208L2Rpdj48L2Rpdj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImxldmVs
MSI+PGRpdiBjbGFzcz0ibGV2ZWwyIHNlcGFyYXRlX3RvcCI+PGRpdiBjbGFzcz0ibGV2ZWwzIHNl
cGFyYXRlX3RvcCI+T3JhbmdlOiBzZXBhcmF0ZSB0b3AsIFBpbms6IHNlcGFyYXRlIHRvcDwvZGl2
PjwvZGl2PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ibGV2ZWwxIj48ZGl2IGNsYXNzPSJsZXZlbDIg
c2VwYXJhdGVfYm90dG9tIj48ZGl2IGNsYXNzPSJsZXZlbDMgc2VwYXJhdGVfYm90dG9tIj5PcmFu
Z2U6IHNlcGFyYXRlIGJvdHRvbSwgUGluazogc2VwYXJhdGUgYm90dG9tPC9kaXY+PC9kaXY+PC9k
aXY+CisJCTwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93
ZWJraXQtbWFyZ2luLWNvbGxhcHNlLWZsb2F0cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1mbG9hdHMt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2ExZDM5NWQyMTAwN2E5YTBhOTU3ZWFmOWZhM2Jh
Y2NiMTYyMTY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJn
aW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1mbG9hdHMtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDQxIEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYgeworCQkJ
bWFyZ2luOiAwcHg7CisJCX0KKworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhpbiBzb2xp
ZCBibHVlOworCQkJd2lkdGg6IDYwMHB4OworCQl9CisKKwkJI2Zsb2F0IHsKKwkJCWZsb2F0OiBs
ZWZ0OworCQkJd2lkdGg6IDIwMHB4OworCQkJaGVpZ2h0OiAyMDBweDsKKwkJCWJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOworCQl9CisKKwkJI3BhcmVudCB7CisJCQltYXJnaW4tdG9wOiA1MHB4Owor
CQl9CisKKwkJI2NvbnRlbnQgeworCQkJbWFyZ2luLXRvcDogNTBweDsKKwkJCWNsZWFyOiBsZWZ0
OworCQl9CisJCTwvc3R5bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBs
ZW1lbnQgdGhlIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5k
ZXJpbmc8L2E+LjwvcD4KKwkJPHA+VGhpcyByZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2lu
ZyBiZWhhdmlvciB3aGVuIGEgY2hpbGQgd2l0aCBhIGRpc2NhcmQgdG9wIG1hcmdpbiBpcyBjbGVh
cmVkIGFuZCBpdHMgdG9wIG1hcmdpbiBkb2Vzbid0IGNvbGxhcHNlIHdpdGggdGhlIHRvcCBtYXJn
aW4gb2YgdGhlIGNvbnRhaW5pbmcgYmxvY2sgYW55IG1vcmUuCisJCQlUaGUgdG9wIG1hcmdpbiBv
ZiB0aGUgY29udGFpbmluZyBibG9jayBuZWVkcyB0byBiZSByZXN0b3JlZC48L3A+CisJCTxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisJCQk8ZGl2IGlkPSJwYXJlbnQiPgorCQkJCTxkaXYgaWQ9ImZs
b2F0Ij48L2Rpdj4KKwkJCQk8ZGl2IGlkPSJjb250ZW50Ij5DbGFzcyBhcHRlbnQgdGFjaXRpIHNv
Y2lvc3F1IGFkIGxpdG9yYSB0b3JxdWVudCBwZXIgY29udWJpYSBub3N0cmEsIHBlciBpbmNlcHRv
cyBoaW1lbmFlb3MuIE51bmMgb3JjaSBtYXVyaXMsIHVsdHJpY2VzIG5vbiBibGFuZGl0IG5vbiwg
ZmVybWVudHVtIGEgbGliZXJvLiBNb3JiaSBhbnRlIGVsaXQsIGZhdWNpYnVzIHZlbCBkaWduaXNz
aW0gcXVpcywgZXVpc21vZCBhIGFyY3UuIFNlZCB0ZW1wdXMgc3VzY2lwaXQgbnVsbGEsIHZpdGFl
IHZhcml1cyBlbGl0IHN1c2NpcGl0IGV0LiBQZWxsZW50ZXNxdWUgY29uc2VxdWF0IGxvYm9ydGlz
IGJsYW5kaXQuIFZpdmFtdXMgYSB0ZW1wdXMgZGlhbS4gU3VzcGVuZGlzc2UgbnVsbGEgbGVjdHVz
LCBjb25zZXF1YXQgcXVpcyB0ZW1wb3Igdml0YWUsIHBsYWNlcmF0IHNlZCBsb3JlbS4gUGhhc2Vs
bHVzIGF0IGRvbG9yIGZlbGlzLCB1dCB1bHRyaWNpZXMgbGFjdXMuIFByYWVzZW50IHZlbCB0dXJw
aXMgbGFjdXMuIE5hbSB1bHRyaWNpZXMgYXVndWUgaW4gZXJhdCBjb25ndWUgYWMgdGVtcG9yIG5l
cXVlIGN1cnN1cy48L2Rpdj4KKwkJCTwvZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1mbG9hdHMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4t
Y29sbGFwc2UtZmxvYXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY5YTQ5YTBhZWI0NGViZmFkYzY4NThh
MjJiYTk0OWI5MjRhMmVkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxv
Y2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2UtZmxvYXRzLmh0bWwKQEAg
LTAsMCArMSw0NSBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTxzdHlsZT4KKwkJZGl2IHsKKwkJCW1h
cmdpbjogMHB4OworCQl9CisKKwkJLmNvbnRhaW5lciB7CisJCQlib3JkZXI6IHRoaW4gc29saWQg
Ymx1ZTsKKwkJCXdpZHRoOiA2MDBweDsKKwkJfQorCisJCS5kaXNjYXJkX3RvcCB7CisJCQktd2Vi
a2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IGRpc2NhcmQ7CisJCX0KKworCQkjZmxvYXQgeworCQkJ
ZmxvYXQ6IGxlZnQ7CisJCQl3aWR0aDogMjAwcHg7CisJCQloZWlnaHQ6IDIwMHB4OworCQkJYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47CisJCX0KKworCQkjcGFyZW50IHsKKwkJCW1hcmdpbi10b3A6
IDUwcHg7CisJCX0KKworCQkjY29udGVudCB7CisJCQltYXJnaW4tdG9wOiA1MHB4OworCQkJY2xl
YXI6IGxlZnQ7CisJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxwPlRlc3Qg
Zm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgx
NjgiPkltcGxlbWVudCB0aGUgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2UgcHJvcGVydGllcyBjb3Jy
ZWN0IHJlbmRlcmluZzwvYT4uPC9wPgorCQk8cD5UaGlzIHJlZiB0ZXN0IGNvdmVycyBiYXNpYyBj
b2xsYXBzaW5nIGJlaGF2aW9yIHdoZW4gYSBjaGlsZCB3aXRoIGEgZGlzY2FyZCB0b3AgbWFyZ2lu
IGlzIGNsZWFyZWQgYW5kIGl0cyB0b3AgbWFyZ2luIGRvZXNuJ3QgY29sbGFwc2Ugd2l0aCB0aGUg
dG9wIG1hcmdpbiBvZiB0aGUgY29udGFpbmluZyBibG9jayBhbnkgbW9yZS4KKwkJCVRoZSB0b3Ag
bWFyZ2luIG9mIHRoZSBjb250YWluaW5nIGJsb2NrIG5lZWRzIHRvIGJlIHJlc3RvcmVkLjwvcD4K
KwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKwkJCTxkaXYgaWQ9InBhcmVudCI+CisJCQkJPGRp
diBpZD0iZmxvYXQiPjwvZGl2PgorCQkJCTxkaXYgaWQ9ImNvbnRlbnQiIGNsYXNzPSJkaXNjYXJk
X3RvcCI+Q2xhc3MgYXB0ZW50IHRhY2l0aSBzb2Npb3NxdSBhZCBsaXRvcmEgdG9ycXVlbnQgcGVy
IGNvbnViaWEgbm9zdHJhLCBwZXIgaW5jZXB0b3MgaGltZW5hZW9zLiBOdW5jIG9yY2kgbWF1cmlz
LCB1bHRyaWNlcyBub24gYmxhbmRpdCBub24sIGZlcm1lbnR1bSBhIGxpYmVyby4gTW9yYmkgYW50
ZSBlbGl0LCBmYXVjaWJ1cyB2ZWwgZGlnbmlzc2ltIHF1aXMsIGV1aXNtb2QgYSBhcmN1LiBTZWQg
dGVtcHVzIHN1c2NpcGl0IG51bGxhLCB2aXRhZSB2YXJpdXMgZWxpdCBzdXNjaXBpdCBldC4gUGVs
bGVudGVzcXVlIGNvbnNlcXVhdCBsb2JvcnRpcyBibGFuZGl0LiBWaXZhbXVzIGEgdGVtcHVzIGRp
YW0uIFN1c3BlbmRpc3NlIG51bGxhIGxlY3R1cywgY29uc2VxdWF0IHF1aXMgdGVtcG9yIHZpdGFl
LCBwbGFjZXJhdCBzZWQgbG9yZW0uIFBoYXNlbGx1cyBhdCBkb2xvciBmZWxpcywgdXQgdWx0cmlj
aWVzIGxhY3VzLiBQcmFlc2VudCB2ZWwgdHVycGlzIGxhY3VzLiBOYW0gdWx0cmljaWVzIGF1Z3Vl
IGluIGVyYXQgY29uZ3VlIGFjIHRlbXBvciBuZXF1ZSBjdXJzdXMuPC9kaXY+CisJCQk8L2Rpdj4K
KwkJPC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtp
dC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvYmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGlu
Z3MtYnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjUzZDI1OGY3OGRkZmY0M2VmMDkyZjc1
ZWNjN2I0YmI3M2E5ZTIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9j
ay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1idC1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsOTUgQEAKKzxodG1sPgorCTxoZWFkPgorCQk8c3R5bGU+CisJ
CWRpdiB7CisJCQltYXJnaW46IDBweDsKKwkJfQorCisJCS5jb250YWluZXIgeworCQkJYm9yZGVy
OiB0aGluIHNvbGlkIGJsdWU7CisJCQl3aWR0aDogMzAwcHg7CisJCX0KKworCQkuYmxvY2sgewor
CQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisJCQltYXJnaW4tdG9wOiA0cHg7CisJCQltYXJn
aW4tYm90dG9tOiA2cHg7CisJCQlib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7CisJCQktd2Via2l0
LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsKKwkJfQorCisJCS5jb2xsYXBzZV90b3A6YmVm
b3JlLCAuY29sbGFwc2VfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJDb2xsYXBzZSI7CisJ
CX0KKworCQkuZGlzY2FyZF90b3A6YmVmb3JlLCAuZGlzY2FyZF9ib3R0b206YWZ0ZXIgeworCQkJ
Y29udGVudDogIkRpc2NhcmQiOworCQl9CisKKwkJLnNlcGFyYXRlX3RvcDpiZWZvcmUsIC5zZXBh
cmF0ZV9ib3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIlNlcGFyYXRlIjsKKwkJfQorCisJCSNi
MiB7CisJCQltYXJnaW4tdG9wOiA2cHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKwor
CQkjYjMgeworCQkJbWFyZ2luLXRvcDogNnB4OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9
CisKKwkJI2I0IHsKKwkJCW1hcmdpbi10b3A6IDZweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsK
KwkJfQorCisJCSNiNSB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAw
cHg7CisJCX0KKworCQkjYjYgeworCQkJbWFyZ2luLXRvcDogMHB4OworCQkJbWFyZ2luLWJvdHRv
bTogMHB4OworCQl9CisKKwkJI2I3IHsKKwkJCW1hcmdpbi10b3A6IDE0cHg7CisJCQltYXJnaW4t
Ym90dG9tOiAwcHg7CisJCX0KKworCQkjYjggeworCQkJbWFyZ2luLXRvcDogNHB4OworCQkJbWFy
Z2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI2I5IHsKKwkJCW1hcmdpbi10b3A6IDEwcHg7CisJ
CQltYXJnaW4tYm90dG9tOiAxMHB4OworCQl9CisKKwkJI2IxMCB7CisJCQltYXJnaW4tdG9wOiAw
cHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJ
PGJvZHk+CisJCTxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDgxNjgiPkltcGxlbWVudCB0aGUgLXdlYmtpdC1tYXJnaW4tY29sbGFw
c2UgcHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZzwvYT4uPC9wPgorCQk8cD5UaGlzIHJlZiB0
ZXN0IGNvdmVycyBiYXNpYyBjb2xsYXBzaW5nIGJlaGF2aW9yIGJldHdlZW4gc2libGluZyBib3hl
cyB3aGVuIHVzaW5nIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlLiBUaGUgYmxvY2tzIGhhdmUgbHIt
YnQgd3JpdGluZyBtb2RlLjwvcD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKwkJCTxkaXYg
aWQ9ImIxIiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48
L2Rpdj4KKwkJCTxkaXYgaWQ9ImIyIiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNl
X2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImIzIiBjbGFzcz0iYmxvY2sgc2VwYXJh
dGVfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI0IiBjbGFz
cz0iYmxvY2sgZGlzY2FyZF90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2
IGlkPSJiNSIgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48
L2Rpdj4KKwkJCTxkaXYgaWQ9ImI2IiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIGRpc2NhcmRf
Ym90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjciIGNsYXNzPSJibG9jayBkaXNjYXJk
X3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiOCIgY2xhc3M9
ImJsb2NrIGNvbGxhcHNlX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2
IGlkPSJiOSIgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+
PC9kaXY+CisJCQk8ZGl2IGlkPSJiMTAiIGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBjb2xsYXBz
ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCTwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2Nr
L21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLWJ0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNv
bGxhcHNlLXNpYmxpbmdzLWJ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhhMzBlMWEzMmRkOGIwZTRkNWU2
MzkzOWY4YTBkYjRjNjk1NDFlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
YmxvY2svbWFyZ2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MtYnQu
aHRtbApAQCAtMCwwICsxLDg5IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYg
eworCQkJbWFyZ2luOiAwcHg7CisJCX0KKworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhp
biBzb2xpZCBibHVlOworCQkJd2lkdGg6IDMwMHB4OworCQl9CisKKwkJLmJsb2NrIHsKKwkJCWJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworCQkJbWFyZ2luLXRvcDogNHB4OworCQkJbWFyZ2luLWJv
dHRvbTogNnB4OworCQkJYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOworCQkJLXdlYmtpdC13cml0
aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7CisJCX0KKworCQkuc2VsZl9jb2xsYXBzZSB7CisJCQlt
YXJnaW4tdG9wOiAycHg7CisJCQltYXJnaW4tYm90dG9tOiA0cHg7CisJCQloZWlnaHQ6IDBweDsK
KwkJfQorCisJCS5jb2xsYXBzZV90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNl
OiBjb2xsYXBzZTsKKwkJfQorCisJCS5jb2xsYXBzZV9ib3R0b20geworCQkJLXdlYmtpdC1tYXJn
aW4tYm90dG9tLWNvbGxhcHNlOiBjb2xsYXBzZTsKKwkJfQorCisJCS5jb2xsYXBzZV90b3A6YmVm
b3JlLCAuY29sbGFwc2VfYm90dG9tOmFmdGVyIHsKKwkJCWNvbnRlbnQ6ICJDb2xsYXBzZSI7CisJ
CX0KKworCQkuZGlzY2FyZF90b3AgeworCQkJLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBk
aXNjYXJkOworCQl9CisKKwkJLmRpc2NhcmRfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJv
dHRvbS1jb2xsYXBzZTogZGlzY2FyZDsKKwkJfQorCisJCS5kaXNjYXJkX3RvcDpiZWZvcmUsIC5k
aXNjYXJkX2JvdHRvbTphZnRlciB7CisJCQljb250ZW50OiAiRGlzY2FyZCI7CisJCX0KKworCQku
c2VwYXJhdGVfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogc2VwYXJhdGU7
CisJCX0KKworCQkuc2VwYXJhdGVfYm90dG9tIHsKKwkJCS13ZWJraXQtbWFyZ2luLWJvdHRvbS1j
b2xsYXBzZTogc2VwYXJhdGU7CisJCX0KKworCQkuc2VwYXJhdGVfdG9wOmJlZm9yZSwgLnNlcGFy
YXRlX2JvdHRvbTphZnRlciB7CisJCQljb250ZW50OiAiU2VwYXJhdGUiOworCQl9CisJCTwvc3R5
bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQk8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTY4Ij5JbXBsZW1lbnQgdGhlIC13ZWJr
aXQtbWFyZ2luLWNvbGxhcHNlIHByb3BlcnRpZXMgY29ycmVjdCByZW5kZXJpbmc8L2E+LjwvcD4K
KwkJPHA+VGhpcyByZWYgdGVzdCBjb3ZlcnMgYmFzaWMgY29sbGFwc2luZyBiZWhhdmlvciBiZXR3
ZWVuIHNpYmxpbmcgYm94ZXMgd2hlbiB1c2luZyAtd2Via2l0LW1hcmdpbi1jb2xsYXBzZS4gVGhl
IGJsb2NrcyBoYXZlIGxyLWJ0IHdyaXRpbmcgbW9kZS48L3A+CisJCTxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90dG9t
Ij48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8
ZGl2IGNsYXNzPSJibG9jayBjb2xsYXBzZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2
PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJi
bG9jayBzZXBhcmF0ZV90b3AgY29sbGFwc2VfYm90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBj
bGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJibG9jayBkaXNjYXJk
X3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29s
bGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGRpc2NhcmRf
Ym90dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+
CisJCQk8ZGl2IGNsYXNzPSJibG9jayBzZXBhcmF0ZV90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+
PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xh
c3M9ImJsb2NrIGRpc2NhcmRfdG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxk
aXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgY29s
bGFwc2VfdG9wIHNlcGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNl
bGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIHNl
cGFyYXRlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2Ui
PjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgZGlzY2FyZF90b3AgY29sbGFwc2VfYm90dG9t
Ij48YnIvPjwvZGl2PgorCQk8L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4t
Y29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xsYXBzZS1zaWJsaW5ncy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tYXJnaW4tY29sbGFwc2Uvd2Via2l0LW1hcmdpbi1jb2xs
YXBzZS1zaWJsaW5ncy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyZmQyOTNlNDczMjYyOTBi
MGFiMjIwZmVkZGJjZjE2ZDAyNGM5YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdz
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw5MyBAQAorPGh0bWw+CisJPGhlYWQ+CisJCTxzdHls
ZT4KKwkJZGl2IHsKKwkJCW1hcmdpbjogMHB4OworCQl9CisKKwkJLmNvbnRhaW5lciB7CisJCQli
b3JkZXI6IHRoaW4gc29saWQgYmx1ZTsKKwkJCXdpZHRoOiAzMDBweDsKKwkJfQorCisJCS5ibG9j
ayB7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKwkJCW1hcmdpbi10b3A6IDRweDsKKwkJ
CW1hcmdpbi1ib3R0b206IDZweDsKKwkJCWJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKKwkJfQor
CisJCS5jb2xsYXBzZV90b3A6YmVmb3JlLCAuY29sbGFwc2VfYm90dG9tOmFmdGVyIHsKKwkJCWNv
bnRlbnQ6ICJDb2xsYXBzZSI7CisJCX0KKworCQkuZGlzY2FyZF90b3A6YmVmb3JlLCAuZGlzY2Fy
ZF9ib3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIkRpc2NhcmQiOworCQl9CisKKwkJLnNlcGFy
YXRlX3RvcDpiZWZvcmUsIC5zZXBhcmF0ZV9ib3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIlNl
cGFyYXRlIjsKKwkJfQorCisJCSNiMiB7CisJCQltYXJnaW4tdG9wOiA2cHg7CisJCQltYXJnaW4t
Ym90dG9tOiAwcHg7CisJCX0KKworCQkjYjMgeworCQkJbWFyZ2luLXRvcDogMTBweDsKKwkJCW1h
cmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNiNCB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJ
CQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjYjUgeworCQkJbWFyZ2luLXRvcDogMHB4
OworCQkJbWFyZ2luLWJvdHRvbTogMHB4OworCQl9CisKKwkJI2I2IHsKKwkJCW1hcmdpbi10b3A6
IDRweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNiNyB7CisJCQltYXJnaW4t
dG9wOiAwcHg7CisJCQltYXJnaW4tYm90dG9tOiAwcHg7CisJCX0KKworCQkjYjggeworCQkJbWFy
Z2luLXRvcDogMTBweDsKKwkJCW1hcmdpbi1ib3R0b206IDBweDsKKwkJfQorCisJCSNiOSB7CisJ
CQltYXJnaW4tdG9wOiAxNHB4OworCQkJbWFyZ2luLWJvdHRvbTogNnB4OworCQl9CisKKwkJI2Ix
MCB7CisJCQltYXJnaW4tdG9wOiAwcHg7CisJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJv
ZHk+CisJCTxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDgxNjgiPkltcGxlbWVudCB0aGUgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2Ug
cHJvcGVydGllcyBjb3JyZWN0IHJlbmRlcmluZzwvYT4uPC9wPgorCQk8cD5UaGlzIHJlZiB0ZXN0
IGNvdmVycyBiYXNpYyBjb2xsYXBzaW5nIGJlaGF2aW9yIGJldHdlZW4gc2libGluZyBib3hlcyB3
aGVuIHVzaW5nIC13ZWJraXQtbWFyZ2luLWNvbGxhcHNlLiBUaGUgYmxvY2tzIGhhdmUgbHItdGIg
d3JpdGluZyBtb2RlLjwvcD4KKwkJPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKwkJCTxkaXYgaWQ9
ImIxIiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rp
dj4KKwkJCTxkaXYgaWQ9ImIyIiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2Jv
dHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImIzIiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVf
dG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgaWQ9ImI0IiBjbGFzcz0i
YmxvY2sgZGlzY2FyZF90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlk
PSJiNSIgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBkaXNjYXJkX2JvdHRvbSI+PGJyLz48L2Rp
dj4KKwkJCTxkaXYgaWQ9ImI2IiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIGRpc2NhcmRfYm90
dG9tIj48YnIvPjwvZGl2PgorCQkJPGRpdiBpZD0iYjciIGNsYXNzPSJibG9jayBkaXNjYXJkX3Rv
cCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlkPSJiOCIgY2xhc3M9ImJs
b2NrIGNvbGxhcHNlX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGlk
PSJiOSIgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9k
aXY+CisJCQk8ZGl2IGlkPSJiMTAiIGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBjb2xsYXBzZV9i
b3R0b20iPjxici8+PC9kaXY+CisJCTwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL21h
cmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNlLXNpYmxpbmdzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Jsb2NrL21hcmdpbi1jb2xsYXBzZS93ZWJraXQtbWFyZ2luLWNvbGxhcHNl
LXNpYmxpbmdzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI2Y2Q4ODEyZjgzYzEzNmQ1NmFhNmUwYTk2YWM2
YjdiMDBmOTFjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbWFy
Z2luLWNvbGxhcHNlL3dlYmtpdC1tYXJnaW4tY29sbGFwc2Utc2libGluZ3MuaHRtbApAQCAtMCww
ICsxLDg4IEBACis8aHRtbD4KKwk8aGVhZD4KKwkJPHN0eWxlPgorCQlkaXYgeworCQkJbWFyZ2lu
OiAwcHg7CisJCX0KKworCQkuY29udGFpbmVyIHsKKwkJCWJvcmRlcjogdGhpbiBzb2xpZCBibHVl
OworCQkJd2lkdGg6IDMwMHB4OworCQl9CisKKwkJLmJsb2NrIHsKKwkJCWJhY2tncm91bmQtY29s
b3I6IGdyZWVuOworCQkJbWFyZ2luLXRvcDogNHB4OworCQkJbWFyZ2luLWJvdHRvbTogNnB4Owor
CQkJYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOworCQl9CisKKwkJLnNlbGZfY29sbGFwc2Ugewor
CQkJbWFyZ2luLXRvcDogMnB4OworCQkJbWFyZ2luLWJvdHRvbTogNHB4OworCQkJaGVpZ2h0OiAw
cHg7CisJCX0KKworCQkuY29sbGFwc2VfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xs
YXBzZTogY29sbGFwc2U7CisJCX0KKworCQkuY29sbGFwc2VfYm90dG9tIHsKKwkJCS13ZWJraXQt
bWFyZ2luLWJvdHRvbS1jb2xsYXBzZTogY29sbGFwc2U7CisJCX0KKworCQkuY29sbGFwc2VfdG9w
OmJlZm9yZSwgLmNvbGxhcHNlX2JvdHRvbTphZnRlciB7CisJCQljb250ZW50OiAiQ29sbGFwc2Ui
OworCQl9CisKKwkJLmRpc2NhcmRfdG9wIHsKKwkJCS13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBz
ZTogZGlzY2FyZDsKKwkJfQorCisJCS5kaXNjYXJkX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdp
bi1ib3R0b20tY29sbGFwc2U6IGRpc2NhcmQ7CisJCX0KKworCQkuZGlzY2FyZF90b3A6YmVmb3Jl
LCAuZGlzY2FyZF9ib3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIkRpc2NhcmQiOworCQl9CisK
KwkJLnNlcGFyYXRlX3RvcCB7CisJCQktd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IHNlcGFy
YXRlOworCQl9CisKKwkJLnNlcGFyYXRlX2JvdHRvbSB7CisJCQktd2Via2l0LW1hcmdpbi1ib3R0
b20tY29sbGFwc2U6IHNlcGFyYXRlOworCQl9CisKKwkJLnNlcGFyYXRlX3RvcDpiZWZvcmUsIC5z
ZXBhcmF0ZV9ib3R0b206YWZ0ZXIgeworCQkJY29udGVudDogIlNlcGFyYXRlIjsKKwkJfQorCQk8
L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODE2OCI+SW1wbGVtZW50IHRoZSAt
d2Via2l0LW1hcmdpbi1jb2xsYXBzZSBwcm9wZXJ0aWVzIGNvcnJlY3QgcmVuZGVyaW5nPC9hPi48
L3A+CisJCTxwPlRoaXMgcmVmIHRlc3QgY292ZXJzIGJhc2ljIGNvbGxhcHNpbmcgYmVoYXZpb3Ig
YmV0d2VlbiBzaWJsaW5nIGJveGVzIHdoZW4gdXNpbmcgLXdlYmtpdC1tYXJnaW4tY29sbGFwc2Uu
IFRoZSBibG9ja3MgaGF2ZSBsci10YiB3cml0aW5nIG1vZGUuPC9wPgorCQk8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2Jv
dHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2Pgor
CQkJPGRpdiBjbGFzcz0iYmxvY2sgY29sbGFwc2VfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48
L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFz
cz0iYmxvY2sgc2VwYXJhdGVfdG9wIGNvbGxhcHNlX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxk
aXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgZGlz
Y2FyZF90b3AgZGlzY2FyZF9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxm
X2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGNvbGxhcHNlX3RvcCBkaXNj
YXJkX2JvdHRvbSI+PGJyLz48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9InNlbGZfY29sbGFwc2UiPjwv
ZGl2PgorCQkJPGRpdiBjbGFzcz0iYmxvY2sgc2VwYXJhdGVfdG9wIGRpc2NhcmRfYm90dG9tIj48
YnIvPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0ic2VsZl9jb2xsYXBzZSI+PC9kaXY+CisJCQk8ZGl2
IGNsYXNzPSJibG9jayBkaXNjYXJkX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJ
CQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2Nr
IGNvbGxhcHNlX3RvcCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNz
PSJzZWxmX2NvbGxhcHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIHNlcGFyYXRlX3Rv
cCBzZXBhcmF0ZV9ib3R0b20iPjxici8+PC9kaXY+CisJCQk8ZGl2IGNsYXNzPSJzZWxmX2NvbGxh
cHNlIj48L2Rpdj4KKwkJCTxkaXYgY2xhc3M9ImJsb2NrIGRpc2NhcmRfdG9wIGNvbGxhcHNlX2Jv
dHRvbSI+PGJyLz48L2Rpdj4KKwkJPC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>