<?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>79068</bug_id>
          
          <creation_ts>2012-02-20 19:49:50 -0800</creation_ts>
          <short_desc>SVG should support transform-origin and relative values</short_desc>
          <delta_ts>2012-04-17 12:34:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>70025</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>apavlov</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>eoconnor</cc>
    
    <cc>giles_joplin</cc>
    
    <cc>kadam</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zarvai</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>560567</commentid>
    <comment_count>0</comment_count>
      <attachid>127901</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-02-20 19:49:50 -0800</bug_when>
    <thetext>Created attachment 127901
Preview patch

SVG should support the CSS property &apos;transform-origin&apos; and relative values for &apos;transform&apos; and &apos;transform-origin&apos; values.

I wrote a patch for it, but it is missing tests and a change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570939</commentid>
    <comment_count>1</comment_count>
      <attachid>130180</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-05 12:21:09 -0800</bug_when>
    <thetext>Created attachment 130180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570962</commentid>
    <comment_count>2</comment_count>
      <attachid>130180</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-05 12:48:13 -0800</bug_when>
    <thetext>Comment on attachment 130180
Patch

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

r- for the function naming, but the patch seems OK.

&gt; Source/WebCore/platform/Length.h:168
&gt; -    float calcFloatValue(int maxValue) const
&gt; +    float calcFloatValue(float maxValue) const

It&apos;s possible that this could change rounding behavior in other parts of the code. Have you run all the layout tests?

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:774
&gt; +inline bool optimizeForTransformOrigin(const TransformOperations&amp; transformOperations, RenderStyle::ApplyTransformOrigin applyOrigin)

optimizeForTransformOrigin() doesn&apos;t tell me what this function actually does. It should have a name like requireTransformOrigin().

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:828
&gt; +    
&gt; +

Remove one of these blank lines.

&gt; LayoutTests/svg/transforms/transform-origin-css-property.xhtml:32
&gt; +  You should see 9 green 20x20 rectangles below, each rectangle should be rotated by 45 degrees.  Each green rectangle
&gt; +  is actually one of a set of about 6, each one with a different but equivalent value for the CSS transform-origin
&gt; +  property.  Behind each stack of blue rectangles is a single 20x20 red div that has been specified in in the same way.
&gt; +  The red divs should be completely obscured.
&gt; +  &lt;/p&gt;

Please avoid text in tests where pixel testing is important. Differences between platforms will almost always make it impossible to share pixel results.
This text can go into an HTML comment.

Which blue rectangles?

Can you make the rects bigger to make failures easier to detect?

This could also be a ref test, perhaps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571409</commentid>
    <comment_count>3</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-05 20:20:37 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 130180 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130180&amp;action=review
&gt; 
&gt; It&apos;s possible that this could change rounding behavior in other parts of the code. Have you run all the layout tests?

We&apos;d been concerned about this too; will check if the change introduces any additional failures and add an additional Length method (instead of changing an existing one) if it does.

&gt; optimizeForTransformOrigin() doesn&apos;t tell me what this function actually does. It should have a name like requireTransformOrigin().

That sounds like a better name, since the function returns false if the transform-origin isn&apos;t needed.

&gt; This could also be a ref test, perhaps.

Good point, will make this a ref test.  Will also make the rectangles bigger and move the descriptive text to an HTML comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572088</commentid>
    <comment_count>4</comment_count>
      <attachid>130431</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-06 13:11:49 -0800</bug_when>
    <thetext>Created attachment 130431
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572092</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 13:15:32 -0800</bug_when>
    <thetext>Attachment 130431 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/svg/...&quot; exit_code: 1
Source/WebCore/platform/Length.h:192:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 1 in 11 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>572115</commentid>
    <comment_count>6</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-06 13:39:13 -0800</bug_when>
    <thetext>&gt; Source/WebCore/platform/Length.h:192:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
&gt; Total errors found: 1 in 11 files

The switch statement is contained in copy of calcFloatValue(int).   I didn&apos;t change the existing indentation in calcFloatValue(float)) (the copy) since it&apos;s consistent with the entire file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572123</commentid>
    <comment_count>7</comment_count>
      <attachid>130431</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-06 13:49:10 -0800</bug_when>
    <thetext>Comment on attachment 130431
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:798
&gt; +    bool applyTransformOrigin = requireTransformOrigin(rareNonInheritedData-&gt;m_transform-&gt;m_operations, applyOrigin);

I think it would be worth having a local const reference to rareNonInheritedData-&gt;m_transform-&gt;m_operations, to avoid two de-refs every time you use the operations list.

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:813
&gt; +    bool applyTransformOrigin = requireTransformOrigin(rareNonInheritedData-&gt;m_transform-&gt;m_operations, applyOrigin);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572175</commentid>
    <comment_count>8</comment_count>
      <attachid>130431</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 14:52:35 -0800</bug_when>
    <thetext>Comment on attachment 130431
Patch

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

New failing tests:
svg/transforms/transform-origin-css-property.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572257</commentid>
    <comment_count>9</comment_count>
      <attachid>130466</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-06 16:29:19 -0800</bug_when>
    <thetext>Created attachment 130466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572273</commentid>
    <comment_count>10</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-06 16:47:28 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 130431 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130431&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.cpp:798
&gt; &gt; +    bool applyTransformOrigin = requireTransformOrigin(rareNonInheritedData-&gt;m_transform-&gt;m_operations, applyOrigin);
&gt; 
&gt; I think it would be worth having a local const reference to rareNonInheritedData-&gt;m_transform-&gt;m_operations, to avoid two de-refs every time you use the operations list.
&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.cpp:813
&gt; &gt; +    bool applyTransformOrigin = requireTransformOrigin(rareNonInheritedData-&gt;m_transform-&gt;m_operations, applyOrigin);
&gt; 
&gt; ditto.

I&apos;ve just uploaded a patch with these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572274</commentid>
    <comment_count>11</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-06 16:47:28 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 130431 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130431&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.cpp:798
&gt; &gt; +    bool applyTransformOrigin = requireTransformOrigin(rareNonInheritedData-&gt;m_transform-&gt;m_operations, applyOrigin);
&gt; 
&gt; I think it would be worth having a local const reference to rareNonInheritedData-&gt;m_transform-&gt;m_operations, to avoid two de-refs every time you use the operations list.
&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.cpp:813
&gt; &gt; +    bool applyTransformOrigin = requireTransformOrigin(rareNonInheritedData-&gt;m_transform-&gt;m_operations, applyOrigin);
&gt; 
&gt; ditto.

I&apos;ve just uploaded a patch with these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572275</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 16:48:28 -0800</bug_when>
    <thetext>Attachment 130466 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/svg/...&quot; exit_code: 1
Source/WebCore/platform/Length.h:192:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 1 in 11 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>572318</commentid>
    <comment_count>13</comment_count>
      <attachid>130466</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-06 17:24:29 -0800</bug_when>
    <thetext>Comment on attachment 130466
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:798
&gt; +    const TransformOperations transformOperations = rareNonInheritedData-&gt;m_transform-&gt;m_operations;

This is a copy. You want a const TransformOperations&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572808</commentid>
    <comment_count>14</comment_count>
      <attachid>130466</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-07 05:10:19 -0800</bug_when>
    <thetext>Comment on attachment 130466
Patch

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

Some more comments from me:

&gt; Source/WebCore/ChangeLog:8
&gt; +        Added SVG support for the CSS &apos;transform-origin&apos; property and for percentage 

I would like to see at least one additional testcase, that uses the repaint.js harness / repaintTest() functionality and excercises dynamic changes of the &apos;transform-origin&apos; property, eg. from 0 0 to 50% 50% for a SVG element.
I&apos;d like to verify that dynamic changes are properly covered as well by your patch.

Also please amend platform/chromium/test_expectations.txt, to mark your new tests as needing rebaseline (= IMAGE+TEXT IMAGE TEXT PASS).

&gt; Source/WebCore/ChangeLog:14
&gt; +        * css/svg.css:

I think changes like those should really be explained here in the ChangeLog, making it easier to understand what happened later say in 2 years.
Please extend the ChangeLog.

&gt; Source/WebCore/css/svg.css:68
&gt; +/* transform-origin on SVG elements */

Ideally you&apos;d link a spec here, or leave a comment in the ChangeLog, where these rules are coming from, who defined them, etc.
(Dirk should know the spec links)

&gt; Source/WebCore/css/svg.css:74
&gt; +html|* &gt; svg {

So you&apos;re restoring the default behavior here from HTML, any html name-spaced element within a svg tree, has the 50% 50% transform origin.

&gt; Source/WebCore/platform/Length.h:168
&gt; +    // FIXME - when subpixel layout is supported this copy of calcFloatValue() can be removed. See bug 71143.

We usually use // FIXME: When subpixel...

&gt;&gt; Source/WebCore/platform/Length.h:192
&gt;&gt; +            case Fixed:
&gt; 
&gt; A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]

I still think you shouldn&apos;t add wrong styled code, even if you copied the function. Make it correct from the beginning, once we switch to the subpixel branch we can then just remove the calcFloatValue(int) variant and be happy.

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:774
&gt; +inline bool requireTransformOrigin(const TransformOperations&amp; transformOperations, RenderStyle::ApplyTransformOrigin applyOrigin)

Why do you pass const TransformOperations&amp; here, if you want to pass transformOperations.operations() directly.

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:799
&gt; +    bool applyTransformOrigin = requireTransformOrigin(transformOperations, applyOrigin);

Once you fixed Simons comment above, you can then use pass trasnsformOperations.operations() here, to avoid calling this multiple times inside requiresTransformOrigin.

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:804
&gt; +    unsigned size = transformOperations.operations().size();

ditto. You should introduce a local variable (as reference again!) that points to transformOperations.operations()

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:826
&gt; +    unsigned size = transformOperations.operations().size();

Same here.

&gt; Source/WebCore/svg/SVGStyledTransformableElement.cpp:72
&gt; +        // RenderSVGHiddenContainers don&apos;t have an objectBoundingBox. Therefore no
&gt; +        // percentage value can be used there.        

I don&apos;t understand this comment, how does this affect the code?

&gt; LayoutTests/ChangeLog:8
&gt; +        Separate tests for SVG CSS transform-origin property support and for 

You rather added new tests, then separated existing ones, that sounds confusing.

&gt; LayoutTests/svg/transforms/transform-origin-css-property-expected.xhtml:37
&gt; +     function test()

Not really needed, make it inline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573989</commentid>
    <comment_count>15</comment_count>
      <attachid>130861</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-08 11:19:14 -0800</bug_when>
    <thetext>Created attachment 130861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573992</commentid>
    <comment_count>16</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-08 11:20:38 -0800</bug_when>
    <thetext>(In reply to comment #15)
Made all of the suggested changes and added a repaint test (svg/transforms/dynamic-transform-origin.svg).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574026</commentid>
    <comment_count>17</comment_count>
      <attachid>130861</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-08 11:50:53 -0800</bug_when>
    <thetext>Comment on attachment 130861
Patch

Attachment 130861 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11894040</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574039</commentid>
    <comment_count>18</comment_count>
      <attachid>130861</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-08 11:56:18 -0800</bug_when>
    <thetext>Comment on attachment 130861
Patch

Attachment 130861 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11898021</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574099</commentid>
    <comment_count>19</comment_count>
      <attachid>130882</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-08 12:44:05 -0800</bug_when>
    <thetext>Created attachment 130882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574101</commentid>
    <comment_count>20</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-08 12:44:59 -0800</bug_when>
    <thetext>(In reply to comment #19)
Previous version of the patch was based on an obsolete version of Length.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574181</commentid>
    <comment_count>21</comment_count>
      <attachid>130882</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-08 14:08:00 -0800</bug_when>
    <thetext>Comment on attachment 130882
Patch

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

New failing tests:
svg/transforms/transform-origin-css-property.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574749</commentid>
    <comment_count>22</comment_count>
      <attachid>130882</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-09 02:22:47 -0800</bug_when>
    <thetext>Comment on attachment 130882
Patch

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

Nice patch Hans - it&apos;s gettin much closer, still some new comments:

&gt; Source/WebCore/ChangeLog:28
&gt; +        * rendering/style/RenderStyle.cpp:
&gt; +        (WebCore):
&gt; +        (WebCore::optimizeForTransformOrigin):
&gt; +        (WebCore::RenderStyle::applyTransform):

The interesting parts are not described :( It&apos;s helpful to know here that you&apos;ve added a second applyTransform() variant, which now takes a FloatSize.
You should describe the differences between the borderBoxSize and the boundingRect, and why you have to add the boundingRect.x()/y() offset when applying this.
I&apos;m aware of the differences (HTML only requires the borderBoxSize, for SVG we have the objectBoundingBox() only and thus need to calculate percentages relative to that box, which requires the x/y translation to be respected), but I guess not anyone is, so this would be helpful to describe.

896    void applyTransform(TransformationMatrix&amp;, const LayoutSize&amp; borderBoxSize, ApplyTransformOrigin = IncludeTransformOrigin) const;
897    void applyTransform(TransformationMatrix&amp;, const FloatRect&amp; boundingBox, ApplyTransformOrigin = IncludeTransformOrigin) const;

&gt; Source/WebCore/css/svg.css:68
&gt; +/* transform-origin on SVG elements */

That&apos;s obvious ;-)

&gt; Source/WebCore/css/svg.css:74
&gt; +html|* &gt; svg {

I&apos;d add here // Restore default transform origin behavior for html name-spaced elements in SVG documents.
It&apos;s not immediately clear for anyone that 50%, 50% is the HTML default :-)

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:796
&gt; +void RenderStyle::applyTransform(TransformationMatrix&amp; transform, const LayoutSize&amp; borderBoxSize, ApplyTransformOrigin applyOrigin) const

I woud have made this just call, applyTransform(transform, FloatRect(FloatPoint(), borderBoxSize), applyOrigin) instead of duplicating code and eventually mark both inline.
Or do you need to call the non-float calcFloatValue variant here, explicitely? I&apos;d just try it, run all tests, if nothing new is broken, just go ahead and avoid code dup.

&gt; LayoutTests/svg/transforms/dynamic-transform-origin.svg:7
&gt; +        document.getElementById(&apos;rect&apos;).style.webkitTransformOrigin = &quot;50% 50%&quot;;

I&apos;d like to see a copy of this test that does the same but using the transform-origin attribute. The patch is in that maps the transform-origin attribute to -webkit-transform-origin CSS property, no? So this should work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576303</commentid>
    <comment_count>23</comment_count>
      <attachid>131360</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-12 11:22:12 -0700</bug_when>
    <thetext>Created attachment 131360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576444</commentid>
    <comment_count>24</comment_count>
      <attachid>131360</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-03-12 13:15:35 -0700</bug_when>
    <thetext>Comment on attachment 131360
Patch

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

Patch looks great. My suggestion about using the repaint.js harnes was wrong, please use reftests for this, as we discussed in private mails.

&gt; Source/WebCore/rendering/style/RenderStyle.h:897
&gt; +    void applyTransform(TransformationMatrix&amp;, const FloatRect&amp; boundingBox, ApplyTransformOrigin = IncludeTransformOrigin) const;

I would have still named it applyTransformForHTML vs. applyTransformForSVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576667</commentid>
    <comment_count>25</comment_count>
      <attachid>131435</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-12 16:05:47 -0700</bug_when>
    <thetext>Created attachment 131435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576698</commentid>
    <comment_count>26</comment_count>
      <attachid>131435</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-03-12 16:30:04 -0700</bug_when>
    <thetext>Comment on attachment 131435
Patch

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

Just snippets. But you don&apos;t have commuter rights yet.

&gt; Source/WebCore/platform/Length.h:203
&gt;          return 0;

copyright is missing

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:4
&gt; + * Copyright (C) 2011 Adobe Systems Incorporated. All Rights Reserved.

s/All Rights Reserved./All rights reserved./

&gt; Source/WebCore/svg/SVGStyledTransformableElement.cpp:71
&gt; +        // Note: objectBoundingBox is an emptyRect for elements like pattern or clipPath.

You should also reference to the spec text that demands that. Otherwise this would not be a good enough reason to take a note instead of a fix me :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576718</commentid>
    <comment_count>27</comment_count>
      <attachid>131451</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-12 16:44:35 -0700</bug_when>
    <thetext>Created attachment 131451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576936</commentid>
    <comment_count>28</comment_count>
      <attachid>131451</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 19:45:55 -0700</bug_when>
    <thetext>Comment on attachment 131451
Patch

Clearing flags on attachment: 131451

Committed r110532: &lt;http://trac.webkit.org/changeset/110532&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576937</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 19:46:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577266</commentid>
    <comment_count>30</comment_count>
    <who name="Ádám Kallai">kadam</who>
    <bug_when>2012-03-13 06:45:26 -0700</bug_when>
    <thetext>This test&apos;s expectation has been updated by Philippe Normand at revision #110543 but it fails on Qt.
There is no platform specific expectation yet. Any idea would be appreciated. I will skip this test until that.

* LayoutTests/inspector/styles/svg-style-expected.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577288</commentid>
    <comment_count>31</comment_count>
    <who name="Ádám Kallai">kadam</who>
    <bug_when>2012-03-13 07:28:05 -0700</bug_when>
    <thetext>I skipped this test.

http://trac.webkit.org/changeset/110558</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577979</commentid>
    <comment_count>32</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-13 16:34:36 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; This test&apos;s expectation has been updated by Philippe Normand at revision #110543 but it fails on Qt.
&gt; There is no platform specific expectation yet. Any idea would be appreciated. I will skip this test until that.
&gt; 
&gt; * LayoutTests/inspector/styles/svg-style-expected.txt

This test fails on Mac/Lion, with or without the patch for bug 79068.   The problem appears to  be that the inspector thinks that the SVG rect in inspector/styles/svg-style-expected.txt appears on line 38 when it clearly appears on line 30 (which is what the expected.txt file expects).   Since the test was only intended to verify that the the inspector doesn&apos;t crash, matching line numbers may be overkill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578552</commentid>
    <comment_count>33</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-03-14 10:49:35 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #30)
&gt; &gt; This test&apos;s expectation has been updated by Philippe Normand at revision #110543 but it fails on Qt.
&gt; &gt; There is no platform specific expectation yet. Any idea would be appreciated. I will skip this test until that.
&gt; &gt; 
&gt; &gt; * LayoutTests/inspector/styles/svg-style-expected.txt
&gt; 
&gt; This test fails on Mac/Lion, with or without the patch for bug 79068.   The problem appears to  be that the inspector thinks that the SVG rect in inspector/styles/svg-style-expected.txt appears on line 38 when it clearly appears on line 30 (which is what the expected.txt file expects).   Since the test was only intended to verify that the the inspector doesn&apos;t crash, matching line numbers may be overkill.

It turns out that this is a known bug - https://bugs.webkit.org/show_bug.cgi?id=72434</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581831</commentid>
    <comment_count>34</comment_count>
    <who name="Zoltan Arvai">zarvai</who>
    <bug_when>2012-03-19 08:44:56 -0700</bug_when>
    <thetext>New test introduced in r110532 fails on Qt linux release and 32 bit builds:
svg/transforms/transform-origin-css-property.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582805</commentid>
    <comment_count>35</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-19 23:49:41 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; New test introduced in r110532 fails on Qt linux release and 32 bit builds:
&gt; svg/transforms/transform-origin-css-property.xhtml

Skip landed in r111367</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604248</commentid>
    <comment_count>36</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-04-17 12:34:10 -0700</bug_when>
    <thetext>Committed r114416: &lt;http://trac.webkit.org/changeset/114416&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127901</attachid>
            <date>2012-02-20 19:49:50 -0800</date>
            <delta_ts>2012-03-05 12:21:05 -0800</delta_ts>
            <desc>Preview patch</desc>
            <filename>svg-transform-origin-2.patch</filename>
            <type>text/plain</type>
            <size>8317</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9zdmcuY3NzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9zdmcuY3NzCShyZXZpc2lvbiAxMDc3MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3Mvc3ZnLmNzcwkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogICovCiAKIEBuYW1l
c3BhY2UgImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsKK0BuYW1lc3BhY2UgaHRtbCAiaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7CiAKIC8qCiAgICAgV2hlbiBhbiBvdXRlcm1vc3Qg
U1ZHICdzdmcnIGVsZW1lbnQgaXMgc3RhbmQtYWxvbmUgb3IgZW1iZWRkZWQgaW5saW5lIHdpdGhp
biBhIHBhcmVudCBYTUwgZ3JhbW1hciAKQEAgLTYzLDMgKzY0LDEzIEBAIHRleHQsIHRzcGFuLCB0
cmVmIHsKIDpmb2N1cyB7CiAgICAgb3V0bGluZTogYXV0byA1cHggLXdlYmtpdC1mb2N1cy1yaW5n
LWNvbG9yCiB9CisKKy8qIHRyYW5zZm9ybS1vcmlnaW4gb24gU1ZHIGVsZW1lbnRzICovCisKKyog
eworICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOworfQorCitodG1sfCogPiBzdmcg
eworICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKK30KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAkocmV2aXNpb24g
MTA3NzM2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
IAotICAgIGZsb2F0IGNhbGNGbG9hdFZhbHVlKGludCBtYXhWYWx1ZSkgY29uc3QKKyAgICBmbG9h
dCBjYWxjRmxvYXRWYWx1ZShmbG9hdCBtYXhWYWx1ZSkgY29uc3QKICAgICB7CiAgICAgICAgIHN3
aXRjaCAodHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIEZpeGVkOgpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCShyZXZpc2lvbiAxMDc3
MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBB
bnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0
ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTc2NiwzOSAr
NzY3LDY2IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQoUXVvdGVUeXBlIHEKIAogICAg
IHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2NvbnRlbnQgPSBDb250ZW50RGF0YTo6
Y3JlYXRlKHF1b3RlKTsKIH0KLQotdm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94
U2l6ZSwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNvbnN0CisgICAgCitpbmxp
bmUgYm9vbCBvcHRpbWl6ZUZvclRyYW5zZm9ybU9yaWdpbihjb25zdCBUcmFuc2Zvcm1PcGVyYXRp
b25zJiB0cmFuc2Zvcm1PcGVyYXRpb25zLCBSZW5kZXJTdHlsZTo6QXBwbHlUcmFuc2Zvcm1Pcmln
aW4gYXBwbHlPcmlnaW4pCiB7CiAgICAgLy8gdHJhbnNmb3JtLW9yaWdpbiBicmFja2V0cyB0aGUg
dHJhbnNmb3JtIHdpdGggdHJhbnNsYXRlIG9wZXJhdGlvbnMuCiAgICAgLy8gT3B0aW1pemUgZm9y
IHRoZSBjYXNlIHdoZXJlIHRoZSBvbmx5IHRyYW5zZm9ybSBpcyBhIHRyYW5zbGF0aW9uLCBzaW5j
ZSB0aGUgdHJhbnNmb3JtLW9yaWdpbiBpcyBpcnJlbGV2YW50CiAgICAgLy8gaW4gdGhhdCBjYXNl
LgotICAgIGJvb2wgYXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBmYWxzZTsKLSAgICB1bnNpZ25lZCBz
ID0gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtLT5tX29wZXJhdGlvbnMub3BlcmF0
aW9ucygpLnNpemUoKTsKLSAgICB1bnNpZ25lZCBpOwotICAgIGlmIChhcHBseU9yaWdpbiA9PSBJ
bmNsdWRlVHJhbnNmb3JtT3JpZ2luKSB7Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBzOyBpKysp
IHsKLSAgICAgICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlID0g
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtLT5tX29wZXJhdGlvbnMub3BlcmF0aW9u
cygpW2ldLT5nZXRPcGVyYXRpb25UeXBlKCk7Ci0gICAgICAgICAgICBpZiAodHlwZSAhPSBUcmFu
c2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9YCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUg
IT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWQotICAgICAgICAgICAgICAgICAgICAm
JiB0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFIAotICAgICAgICAgICAgICAg
ICAgICAmJiB0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1oKLSAgICAgICAg
ICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV8zRAot
ICAgICAgICAgICAgICAgICAgICApIHsKLSAgICAgICAgICAgICAgICBhcHBseVRyYW5zZm9ybU9y
aWdpbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KKyAgICBpZiAoYXBwbHlPcmlnaW4gIT0gUmVuZGVyU3R5bGU6OkluY2x1ZGVUcmFuc2Zv
cm1PcmlnaW4pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHVuc2lnbmVkIHNpemUgPSB0
cmFuc2Zvcm1PcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5zaXplKCk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9w
ZXJhdGlvblR5cGUgdHlwZSA9IHRyYW5zZm9ybU9wZXJhdGlvbnMub3BlcmF0aW9ucygpW2ldLT5n
ZXRPcGVyYXRpb25UeXBlKCk7CisgICAgICAgIGlmICh0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlv
bjo6VFJBTlNMQVRFX1gKKyAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9u
OjpUUkFOU0xBVEVfWQorICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246
OlRSQU5TTEFURSAKKyAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpU
UkFOU0xBVEVfWgorICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRS
QU5TTEFURV8zRCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICAKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CiAKLSAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHsKK3ZvaWQg
UmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zv
cm0sIGNvbnN0IExheW91dFNpemUmIGJvcmRlckJveFNpemUsIEFwcGx5VHJhbnNmb3JtT3JpZ2lu
IGFwcGx5T3JpZ2luKSBjb25zdAoreworICAgIGJvb2wgYXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBv
cHRpbWl6ZUZvclRyYW5zZm9ybU9yaWdpbihyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zv
cm0tPm1fb3BlcmF0aW9ucywgYXBwbHlPcmlnaW4pOworCisgICAgaWYgKGFwcGx5VHJhbnNmb3Jt
T3JpZ2luKQogICAgICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlM2QodHJhbnNmb3JtT3JpZ2luWCgp
LmNhbGNGbG9hdFZhbHVlKGJvcmRlckJveFNpemUud2lkdGgoKSksIHRyYW5zZm9ybU9yaWdpblko
KS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hTaXplLmhlaWdodCgpKSwgdHJhbnNmb3JtT3JpZ2lu
WigpKTsKLSAgICB9CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgczsgaSsrKQorICAgIHVuc2lnbmVk
IHNpemUgPSByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5v
cGVyYXRpb25zKCkuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyAr
K2kpCiAgICAgICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRp
b25zLm9wZXJhdGlvbnMoKVtpXS0+YXBwbHkodHJhbnNmb3JtLCBib3JkZXJCb3hTaXplKTsKIAot
ICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikgeworICAgIGlmIChhcHBseVRyYW5zZm9ybU9y
aWdpbikKICAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZTNkKC10cmFuc2Zvcm1PcmlnaW5YKCku
Y2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94U2l6ZS53aWR0aCgpKSwgLXRyYW5zZm9ybU9yaWdpblko
KS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hTaXplLmhlaWdodCgpKSwgLXRyYW5zZm9ybU9yaWdp
blooKSk7Cit9CisKK3ZvaWQgUmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0
aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIEFwcGx5
VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2luKSBjb25zdAoreworICAgIGJvb2wgYXBwbHlUcmFu
c2Zvcm1PcmlnaW4gPSBvcHRpbWl6ZUZvclRyYW5zZm9ybU9yaWdpbihyYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucywgYXBwbHlPcmlnaW4pOworICAgIAorICAg
IGZsb2F0IG9mZnNldFggPSB0cmFuc2Zvcm1PcmlnaW5YKCkudHlwZSgpID09IFBlcmNlbnQgPyBi
b3VuZGluZ0JveC54KCkgOiAwOworICAgIGZsb2F0IG9mZnNldFkgPSB0cmFuc2Zvcm1PcmlnaW5Z
KCkudHlwZSgpID09IFBlcmNlbnQgPyBib3VuZGluZ0JveC55KCkgOiAwOworICAgIAorICAgIGlm
IChhcHBseVRyYW5zZm9ybU9yaWdpbikgeworICAgICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlM2Qo
dHJhbnNmb3JtT3JpZ2luWCgpLmNhbGNGbG9hdFZhbHVlKGJvdW5kaW5nQm94LndpZHRoKCkpICsg
b2Zmc2V0WCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpblko
KS5jYWxjRmxvYXRWYWx1ZShib3VuZGluZ0JveC5oZWlnaHQoKSkgKyBvZmZzZXRZLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luWigpKTsKKyAgICB9CisgICAg
CisgICAgdW5zaWduZWQgc2l6ZSA9IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+
bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNm
b3JtLT5tX29wZXJhdGlvbnMub3BlcmF0aW9ucygpW2ldLT5hcHBseSh0cmFuc2Zvcm0sIGJvdW5k
aW5nQm94LnNpemUoKSk7CisgICAgCisKKyAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHsK
KyAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZTNkKC10cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zs
b2F0VmFsdWUoYm91bmRpbmdCb3gud2lkdGgoKSkgLSBvZmZzZXRYLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLXRyYW5zZm9ybU9yaWdpblkoKS5jYWxjRmxvYXRWYWx1ZShib3VuZGlu
Z0JveC5oZWlnaHQoKSkgLSBvZmZzZXRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LXRyYW5zZm9ybU9yaWdpblooKSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkocmV2aXNpb24gMTA3NzM2KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTg5MCw2ICs4OTAsNyBAQCBwdWJsaWM6CiAKICAgICBlbnVtIEFwcGx5VHJhbnNmb3JtT3Jp
Z2luIHsgSW5jbHVkZVRyYW5zZm9ybU9yaWdpbiwgRXhjbHVkZVRyYW5zZm9ybU9yaWdpbiB9Owog
ICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBMYXlv
dXRTaXplJiBib3JkZXJCb3hTaXplLCBBcHBseVRyYW5zZm9ybU9yaWdpbiA9IEluY2x1ZGVUcmFu
c2Zvcm1PcmlnaW4pIGNvbnN0OworICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRp
b25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBBcHBseVRyYW5zZm9ybU9y
aWdpbiA9IEluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIGNvbnN0OwogICAgIHZvaWQgc2V0UGFnZVNj
YWxlVHJhbnNmb3JtKGZsb2F0KTsKIAogICAgIGJvb2wgaGFzTWFzaygpIGNvbnN0IHsgcmV0dXJu
IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2suaGFzSW1hZ2UoKSB8fCByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9tYXNrQm94SW1hZ2UuaGFzSW1hZ2UoKTsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxMDc3MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NiwxNCArNjYsMTUgQEAgQWZmaW5lVHJh
bnNmb3JtIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbAogICAgIEFmZmluZVRyYW5zZm9ybSBtYXRy
aXg7CiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVuZGVyZXIoKSA/IHJlbmRlcmVyKCktPnN0
eWxlKCkgOiAwOwogCi0gICAgLy8gaWYgQ1NTIHByb3BlcnR5IHdhcyBzZXQsIHVzZSB0aGF0LCBv
dGhlcndpc2UgZmFsbGJhY2sgdG8gYXR0cmlidXRlIChpZiBzZXQpCisgICAgLy8gSWYgQ1NTIHBy
b3BlcnR5IHdhcyBzZXQsIHVzZSB0aGF0LCBvdGhlcndpc2UgZmFsbGJhY2sgdG8gYXR0cmlidXRl
IChpZiBzZXQpLgogICAgIGlmIChzdHlsZSAmJiBzdHlsZS0+aGFzVHJhbnNmb3JtKCkpIHsKLSAg
ICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKLSAgICAgICAgLy8gRm9yIG5vdywgdGhlIHRy
YW5zZm9ybS1vcmlnaW4gaXMgbm90IHRha2VuIGludG8gYWNjb3VudAotICAgICAgICAvLyBBbHNv
LCBhbnkgcGVyY2VudGFnZSB2YWx1ZXMgd2lsbCBub3QgYmUgdGFrZW4gaW50byBhY2NvdW50Ci0g
ICAgICAgIHN0eWxlLT5hcHBseVRyYW5zZm9ybSh0LCBJbnRTaXplKDAsIDApLCBSZW5kZXJTdHls
ZTo6RXhjbHVkZVRyYW5zZm9ybU9yaWdpbik7Ci0gICAgICAgIC8vIEZsYXR0ZW4gYW55IDNEIHRy
YW5zZm9ybQotICAgICAgICBtYXRyaXggPSB0LnRvQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgICAg
IC8vIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcnMgZG9uJ3QgaGF2ZSBhbiBvYmplY3RCb3VuZGlu
Z0JveC4gVGhlcmVmb3JlIG5vCisgICAgICAgIC8vIHBlcmNlbnRhZ2UgdmFsdWUgY2FuIGJlIHVz
ZWQgdGhlcmUuICAgICAgICAKKyAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3Jt
OworICAgICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCByZW5kZXJlcigpLT5v
YmplY3RCb3VuZGluZ0JveCgpKTsKKworICAgICAgICAvLyBGbGF0dGVuIGFueSAzRCB0cmFuc2Zv
cm0uCisgICAgICAgIG1hdHJpeCA9IHRyYW5zZm9ybS50b0FmZmluZVRyYW5zZm9ybSgpOwogICAg
IH0gZWxzZQogICAgICAgICB0cmFuc2Zvcm0oKS5jb25jYXRlbmF0ZShtYXRyaXgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130180</attachid>
            <date>2012-03-05 12:21:09 -0800</date>
            <delta_ts>2012-03-06 13:11:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79068-20120305122108.patch</filename>
            <type>text/plain</type>
            <size>73404</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzgyYzU0OWE4NGUwYWRh
YzVmZDdhMmYxMDI5M2UxNjBjMTQwNmNjZi4uY2M1OGQwNDk0YTgxYjJlNGVkZTU2NzViNTk5ODRj
MzdkY2NiY2M1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTA1ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQgc3VwcG9y
dCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgU1ZHIHN1cHBvcnQgZm9yIHRoZSBD
U1MgJ3RyYW5zZm9ybS1vcmlnaW4nIHByb3BlcnR5IGFuZCBmb3IgcGVyY2VudGFnZSAKKyAgICAg
ICAgdmFsdWVzIGluIHRoZSB0cmFuc2Zvcm0gdHJhbnNsYXRlIGZ1bmN0aW9uLgorCisgICAgICAg
IFRlc3RzOiBzdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWwKKyAg
ICAgICAgICAgICAgIHN2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5
LnhodG1sCisKKyAgICAgICAgKiBjc3Mvc3ZnLmNzczoKKyAgICAgICAgKCopOgorICAgICAgICAo
aHRtbHwqID4gc3ZnKToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY0Zsb2F0VmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
Om9wdGltaXplRm9yVHJhbnNmb3JtT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjphcHBseVRyYW5zZm9ybSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjphbmltYXRl
ZExvY2FsVHJhbnNmb3JtKToKKwogMjAxMi0wMy0wMiAgS2F1c3R1YmggQXRyYXdhbGthciAgPGth
dXN0dWJoQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBSZW5hbWUgRE9NVVJMIHRvIFVSTCBpbiB0
aGUgYmluZGluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9zdmcuY3NzIGIvU291
cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKaW5kZXggYmMzMTI2OWY4ODA2MDJlNTAwYTQyZjVlODVi
ZTY1MjdlYWZmNTFlNi4uYTFhMTNmMDI5NzMzMDU4MmI1ZTllOWYwYjdjNWZjNjg3Y2U5ZjE1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3N2Zy5jc3MKQEAgLTI2LDYgKzI2LDcgQEAKICAqLwogCiBAbmFtZXNwYWNlICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7CitAbmFtZXNwYWNlIGh0bWwgImh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiOwogCiAvKgogICAgIFdoZW4gYW4gb3V0ZXJtb3N0IFNWRyAnc3ZnJyBl
bGVtZW50IGlzIHN0YW5kLWFsb25lIG9yIGVtYmVkZGVkIGlubGluZSB3aXRoaW4gYSBwYXJlbnQg
WE1MIGdyYW1tYXIgCkBAIC02MywzICs2NCwxMyBAQCB0ZXh0LCB0c3BhbiwgdHJlZiB7CiA6Zm9j
dXMgewogICAgIG91dGxpbmU6IGF1dG8gNXB4IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcgogfQor
CisvKiB0cmFuc2Zvcm0tb3JpZ2luIG9uIFNWRyBlbGVtZW50cyAqLworCisqIHsKKyAgICAtd2Vi
a2l0LXRyYW5zZm9ybS1vcmlnaW46IDAgMDsKK30KKworaHRtbHwqID4gc3ZnIHsKKyAgICAtd2Vi
a2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAppbmRleCA1M2IwMjYwYzIwN2IwNzgyODk1ZWYz
NzdjODRjZjYxNjQ3NTc0OTdlLi5mZDg0NmQ5ZDRjZDk3OTQ5ZjBlZjM3MDllZGYzODJlNmRlNWRi
MWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaApAQCAtMTY1LDcgKzE2NSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgZmxvYXQgY2FsY0Zsb2F0VmFsdWUo
aW50IG1heFZhbHVlKSBjb25zdAorICAgIGZsb2F0IGNhbGNGbG9hdFZhbHVlKGZsb2F0IG1heFZh
bHVlKSBjb25zdAogICAgIHsKICAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsKICAgICAgICAgICAg
IGNhc2UgRml4ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcAppbmRleCAxNDU5NTFkM2FkM2ZiOGU4Zjg0NGMyMmY0Mjk4ZmRkZjNlYjE2ZjBmLi44
MzBkMWUzZmIyOTBmN2VmZjBiNGYzNjc5ZDU3NzIwZWZiMDBkNThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTEsNiArMSw3IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3Jn
KQogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtNzY5LDM5ICs3NzAsNjYgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0
Q29udGVudChRdW90ZVR5cGUgcXVvdGUsIGJvb2wgYWRkKQogCiAgICAgcmFyZU5vbkluaGVyaXRl
ZERhdGEuYWNjZXNzKCktPm1fY29udGVudCA9IENvbnRlbnREYXRhOjpjcmVhdGUocXVvdGUpOwog
fQotCi12b2lkIFJlbmRlclN0eWxlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtLCBjb25zdCBMYXlvdXRTaXplJiBib3JkZXJCb3hTaXplLCBBcHBseVRyYW5z
Zm9ybU9yaWdpbiBhcHBseU9yaWdpbikgY29uc3QKKyAgICAKK2lubGluZSBib29sIG9wdGltaXpl
Rm9yVHJhbnNmb3JtT3JpZ2luKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9w
ZXJhdGlvbnMsIFJlbmRlclN0eWxlOjpBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBseU9yaWdpbikK
IHsKICAgICAvLyB0cmFuc2Zvcm0tb3JpZ2luIGJyYWNrZXRzIHRoZSB0cmFuc2Zvcm0gd2l0aCB0
cmFuc2xhdGUgb3BlcmF0aW9ucy4KICAgICAvLyBPcHRpbWl6ZSBmb3IgdGhlIGNhc2Ugd2hlcmUg
dGhlIG9ubHkgdHJhbnNmb3JtIGlzIGEgdHJhbnNsYXRpb24sIHNpbmNlIHRoZSB0cmFuc2Zvcm0t
b3JpZ2luIGlzIGlycmVsZXZhbnQKICAgICAvLyBpbiB0aGF0IGNhc2UuCi0gICAgYm9vbCBhcHBs
eVRyYW5zZm9ybU9yaWdpbiA9IGZhbHNlOwotICAgIHVuc2lnbmVkIHMgPSByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuc2l6ZSgpOwot
ICAgIHVuc2lnbmVkIGk7Ci0gICAgaWYgKGFwcGx5T3JpZ2luID09IEluY2x1ZGVUcmFuc2Zvcm1P
cmlnaW4pIHsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IHM7IGkrKykgewotICAgICAgICAgICAg
VHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmdldE9wZXJh
dGlvblR5cGUoKTsKLSAgICAgICAgICAgIGlmICh0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6
VFJBTlNMQVRFX1gKLSAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVy
YXRpb246OlRSQU5TTEFURV9ZCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNm
b3JtT3BlcmF0aW9uOjpUUkFOU0xBVEUgCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0g
VHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWgotICAgICAgICAgICAgICAgICAgICAmJiB0
eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNECi0gICAgICAgICAgICAgICAg
ICAgICkgewotICAgICAgICAgICAgICAgIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIGlmIChh
cHBseU9yaWdpbiAhPSBSZW5kZXJTdHlsZTo6SW5jbHVkZVRyYW5zZm9ybU9yaWdpbikKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgdW5zaWduZWQgc2l6ZSA9IHRyYW5zZm9ybU9wZXJhdGlv
bnMub3BlcmF0aW9ucygpLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6
ZTsgKytpKSB7CisgICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBl
ID0gdHJhbnNmb3JtT3BlcmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmdldE9wZXJhdGlvblR5cGUo
KTsKKyAgICAgICAgaWYgKHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWAor
ICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9ZCisg
ICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFIAorICAg
ICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9aCisgICAg
ICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNEKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIAorICAgIHJldHVybiBmYWxzZTsKK30K
IAotICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikgewordm9pZCBSZW5kZXJTdHlsZTo6YXBw
bHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgTGF5b3V0
U2l6ZSYgYm9yZGVyQm94U2l6ZSwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNv
bnN0Cit7CisgICAgYm9vbCBhcHBseVRyYW5zZm9ybU9yaWdpbiA9IG9wdGltaXplRm9yVHJhbnNm
b3JtT3JpZ2luKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRpb25z
LCBhcHBseU9yaWdpbik7CisKKyAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pCiAgICAgICAg
IHRyYW5zZm9ybS50cmFuc2xhdGUzZCh0cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zsb2F0VmFsdWUo
Ym9yZGVyQm94U2l6ZS53aWR0aCgpKSwgdHJhbnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVl
KGJvcmRlckJveFNpemUuaGVpZ2h0KCkpLCB0cmFuc2Zvcm1PcmlnaW5aKCkpOwotICAgIH0KIAot
ICAgIGZvciAoaSA9IDA7IGkgPCBzOyBpKyspCisgICAgdW5zaWduZWQgc2l6ZSA9IHJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5zaXpl
KCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtLT5tX29wZXJhdGlvbnMub3BlcmF0aW9ucygp
W2ldLT5hcHBseSh0cmFuc2Zvcm0sIGJvcmRlckJveFNpemUpOwogCi0gICAgaWYgKGFwcGx5VHJh
bnNmb3JtT3JpZ2luKSB7CisgICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2luKQogICAgICAgICB0
cmFuc2Zvcm0udHJhbnNsYXRlM2QoLXRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShi
b3JkZXJCb3hTaXplLndpZHRoKCkpLCAtdHJhbnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVl
KGJvcmRlckJveFNpemUuaGVpZ2h0KCkpLCAtdHJhbnNmb3JtT3JpZ2luWigpKTsKK30KKwordm9p
ZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4g
YXBwbHlPcmlnaW4pIGNvbnN0Cit7CisgICAgYm9vbCBhcHBseVRyYW5zZm9ybU9yaWdpbiA9IG9w
dGltaXplRm9yVHJhbnNmb3JtT3JpZ2luKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9y
bS0+bV9vcGVyYXRpb25zLCBhcHBseU9yaWdpbik7CisgICAgCisgICAgZmxvYXQgb2Zmc2V0WCA9
IHRyYW5zZm9ybU9yaWdpblgoKS50eXBlKCkgPT0gUGVyY2VudCA/IGJvdW5kaW5nQm94LngoKSA6
IDA7CisgICAgZmxvYXQgb2Zmc2V0WSA9IHRyYW5zZm9ybU9yaWdpblkoKS50eXBlKCkgPT0gUGVy
Y2VudCA/IGJvdW5kaW5nQm94LnkoKSA6IDA7CisgICAgCisgICAgaWYgKGFwcGx5VHJhbnNmb3Jt
T3JpZ2luKSB7CisgICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGUzZCh0cmFuc2Zvcm1PcmlnaW5Y
KCkuY2FsY0Zsb2F0VmFsdWUoYm91bmRpbmdCb3gud2lkdGgoKSkgKyBvZmZzZXRYLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVl
KGJvdW5kaW5nQm94LmhlaWdodCgpKSArIG9mZnNldFksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0cmFuc2Zvcm1PcmlnaW5aKCkpOworICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBz
aXplID0gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtLT5tX29wZXJhdGlvbnMub3Bl
cmF0aW9ucygpLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytp
KQorICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9u
cy5vcGVyYXRpb25zKClbaV0tPmFwcGx5KHRyYW5zZm9ybSwgYm91bmRpbmdCb3guc2l6ZSgpKTsK
KyAgICAKKworICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikgeworICAgICAgICB0cmFuc2Zv
cm0udHJhbnNsYXRlM2QoLXRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3VuZGlu
Z0JveC53aWR0aCgpKSAtIG9mZnNldFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt
dHJhbnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvdW5kaW5nQm94LmhlaWdodCgpKSAt
IG9mZnNldFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtdHJhbnNmb3JtT3JpZ2lu
WigpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKaW5kZXggNTUxNTFkM2VjZTk3ZjdmOWRmMWQ0NGM3YzkwOTMxMzk2Yjg2NWZjMy4u
MzRiNTdlZTMzMTkxYjYxYjJjYjA0NWI4MTg0MDk1Y2QwYzJiMWFjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTg5NCw2ICs4OTQsNyBAQCBw
dWJsaWM6CiAKICAgICBlbnVtIEFwcGx5VHJhbnNmb3JtT3JpZ2luIHsgSW5jbHVkZVRyYW5zZm9y
bU9yaWdpbiwgRXhjbHVkZVRyYW5zZm9ybU9yaWdpbiB9OwogICAgIHZvaWQgYXBwbHlUcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBMYXlvdXRTaXplJiBib3JkZXJCb3hTaXpl
LCBBcHBseVRyYW5zZm9ybU9yaWdpbiA9IEluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIGNvbnN0Owor
ICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9h
dFJlY3QmIGJvdW5kaW5nQm94LCBBcHBseVRyYW5zZm9ybU9yaWdpbiA9IEluY2x1ZGVUcmFuc2Zv
cm1PcmlnaW4pIGNvbnN0OwogICAgIHZvaWQgc2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZsb2F0KTsK
IAogICAgIGJvb2wgaGFzTWFzaygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX21hc2suaGFzSW1hZ2UoKSB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrQm94SW1h
Z2UuaGFzSW1hZ2UoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKaW5kZXggOTljMTc4MTc1OGQwNWMxODE1ZTIzNjc0YWFi
NjgxYmVlMjIzNzI1NC4uNDk5NTZhNGQ0NmE0NGFlMjU5MWQxMjI2ZTRiMDM0ODc1ZTdlYmU5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQuY3BwCkBAIC02NiwxNCArNjYsMTUgQEAgQWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxlZFRy
YW5zZm9ybWFibGVFbGVtZW50OjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3QKICAgICBB
ZmZpbmVUcmFuc2Zvcm0gbWF0cml4OwogICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHJlbmRlcmVy
KCkgPyByZW5kZXJlcigpLT5zdHlsZSgpIDogMDsKIAotICAgIC8vIGlmIENTUyBwcm9wZXJ0eSB3
YXMgc2V0LCB1c2UgdGhhdCwgb3RoZXJ3aXNlIGZhbGxiYWNrIHRvIGF0dHJpYnV0ZSAoaWYgc2V0
KQorICAgIC8vIElmIENTUyBwcm9wZXJ0eSB3YXMgc2V0LCB1c2UgdGhhdCwgb3RoZXJ3aXNlIGZh
bGxiYWNrIHRvIGF0dHJpYnV0ZSAoaWYgc2V0KS4KICAgICBpZiAoc3R5bGUgJiYgc3R5bGUtPmhh
c1RyYW5zZm9ybSgpKSB7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7Ci0gICAgICAg
IC8vIEZvciBub3csIHRoZSB0cmFuc2Zvcm0tb3JpZ2luIGlzIG5vdCB0YWtlbiBpbnRvIGFjY291
bnQKLSAgICAgICAgLy8gQWxzbywgYW55IHBlcmNlbnRhZ2UgdmFsdWVzIHdpbGwgbm90IGJlIHRh
a2VuIGludG8gYWNjb3VudAotICAgICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0odCwgSW50U2l6
ZSgwLCAwKSwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pOwotICAgICAgICAv
LyBGbGF0dGVuIGFueSAzRCB0cmFuc2Zvcm0KLSAgICAgICAgbWF0cml4ID0gdC50b0FmZmluZVRy
YW5zZm9ybSgpOworICAgICAgICAvLyBSZW5kZXJTVkdIaWRkZW5Db250YWluZXJzIGRvbid0IGhh
dmUgYW4gb2JqZWN0Qm91bmRpbmdCb3guIFRoZXJlZm9yZSBubworICAgICAgICAvLyBwZXJjZW50
YWdlIHZhbHVlIGNhbiBiZSB1c2VkIHRoZXJlLiAgICAgICAgCisgICAgICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IHRyYW5zZm9ybTsKKyAgICAgICAgc3R5bGUtPmFwcGx5VHJhbnNmb3JtKHRyYW5z
Zm9ybSwgcmVuZGVyZXIoKS0+b2JqZWN0Qm91bmRpbmdCb3goKSk7CisKKyAgICAgICAgLy8gRmxh
dHRlbiBhbnkgM0QgdHJhbnNmb3JtLgorICAgICAgICBtYXRyaXggPSB0cmFuc2Zvcm0udG9BZmZp
bmVUcmFuc2Zvcm0oKTsKICAgICB9IGVsc2UKICAgICAgICAgdHJhbnNmb3JtKCkuY29uY2F0ZW5h
dGUobWF0cml4KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE0MDlkNTc2MjE3NTE0MDhkNDc5MGJjMmZlMjA2M2ViODlm
YzA1ZmMuLjYxZGRmNGE1YmQ0Yzc4OGZlNzdlZmFjN2I3ZDhiZTVlMmU4OTczNjYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMi0wMy0wNSAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNv
bT4KKworICAgICAgICBTVkcgc2hvdWxkIHN1cHBvcnQgdHJhbnNmb3JtLW9yaWdpbiBhbmQgcmVs
YXRpdmUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTA2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNlcGFyYXRlIHRlc3RzIGZvciBTVkcgQ1NTIHRyYW5zZm9ybS1vcmlnaW4gcHJvcGVydHkg
c3VwcG9ydCBhbmQgZm9yIAorICAgICAgICBDU1MgdHJhbnNsYXRpb25zIHNwZWNpZmllZCB3aXRo
IHBlcmNlbnRhZ2VzIGFuZCBhcHBsaWVkIHRvIGFuIFNWRyBlbGVtZW50LgorCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL21hYy1saW9uL3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5
LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLWxpb24vc3ZnL3Ry
YW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5z
Zm9ybS12YWx1ZXMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL3RyYW5z
Zm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sOiBBZGRlZC4KKwogMjAxMi0wMy0wMiAgS2F1
c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBSZW5h
bWUgRE9NVVJMIHRvIFVSTCBpbiB0aGUgYmluZGluZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAzMWI4ZGRlNzk2MmEz
MGY2OWQ0ZmUyNmZhNzgyNzIxYmRhY2YzZGU1Li41NDRmM2YzOWEwMDQ4Y2RlMWFlY2YwYjk2ZWQ5
OTllZmZjODA2ODdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC05MjMsNiArOTIzLDkgQEAgQlVHQ1I2MjQzMyBXSU4g
OiBmYXN0L2ltYWdlcy9naWYtbG9vcC1jb3VudC5odG1sID0gSU1BR0UKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
IC8vIE5ldyB0ZXN0IHJlcXVpcmVzIHJlYmFzZWxpbmUKK0JVR1dLNzkwNjggOiBzdmcvdHJhbnNm
b3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS54aHRtbCA9IElNQUdFIElNQUdFK1RF
WFQKKworLy8gTmV3IHRlc3QgcmVxdWlyZXMgcmViYXNlbGluZQogQlVHV0s3NzUzNSA6IHN2Zy9y
ZXBhaW50L2lubmVyLXN2Zy1jaGFuZ2Utdmlld1BvcnQtcmVsYXRpdmUuc3ZnID0gSU1BR0UgSU1B
R0UrVEVYVAogCiAvLyBVcGRhdGVkIHRlc3QsIG5lZWRzIGEgcmViYXNlbGluZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24vc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3Jt
LW9yaWdpbi1jc3MtcHJvcGVydHktZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxpb24vc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHktZXhw
ZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlMjI1ZGIxZWNhOTY2MDY2NjI0Mjk3N2NiMzdlOGVkYjg1
N2JjZjYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDM5MDI4CnpjbVpVYWJ6RUZhbGxQR1gycnxJ
TS1JQ3okWlVHWTlUPzIhPXk5NX58Z2UxNUh4NHxLfUx5K0p1ITVzIzdoeGMmegp6eCU9K2t7UmNp
WD1iWXt7KXojaEF6aShCOXZaNCRJRGxzWT85Mn59bl93UThVOzFEVXs7MUlNP2tick1lKyY/KTIK
enxMOSQldnxVWHQhS09BWVpneX43VXtpSjtKYFBTVVplRCZLYjJCeWBjNVZ8YzkjY0xPLWo5NmR5
IV9eST9ZTG9aCnphRmxRIy1pZlB3IXRlWE50bW0jZEBwcWhBeU09IWxET1pXYHs2YGB5NUJLNHVI
eGtjLV4td3dZcnslWGIjVmw8bgp6SSRVfjlrJWgoOHU5VDxkRT96bXNMd29uRFM+ZFpDLVZ2OCEr
MyZ3TXFIVyhNJVMpZkVrJjxDa0JEQFBrIUdmbjIKemRsMyV6ezI+eiE8QDI5VnVBfj9MPVpZQTFD
Un1JYUtsbENma2t8fVhDZnFvOFZLVWFnQUhXc1VNKmdvaHxHNV9xCnpkeHNiU1NGOTA8ODtBTnwt
M0I2ez9FVCZVfEckP0shOVgkKTtyJmRleHkxaXwjWHVCZ0kxe3F9Xldyd1oqU299JQp6XjVPc1U9
Ujd4dU4/QyZWPy1wRCFmVWdhTFEoal5KfERYT31VQmlkQ3ttKnhKZWxWenZOKD9eTk13eWY5enM+
WlkKelRqJkJTSz54I2RlfTZtNXtlbXZnNn5wQE55WkBOPHpuZ29CSFUwMTJVTm5abXo1SDR4Snsw
bkFReFVRdV5wUTk7Cnp1aUNkPFhrSTx1OW82TWNpYWVhRlVIITJzdUw7IUBqQSp8NSh8YjY7K1JG
MCFXKjZEMC1sNnJlYzYzPXQ8anlrMAp6WFJCam9LP31QU0pIdjBZXzQ9RjxaOH5BRW1tKi1fKDBs
aHktbzxhKWpDeVB1PjdTdTI7bXdiP2RtISpwaSZufX0KeiVheChwUG5EKGU9MktaVXJ7Wl9GcnZ0
MnUhZERBd2d5LWBQWkVpfVU1M1g2RiFoYXhRTz9RIShQNl8hVGpTdV9QCnpCbChDZ1Rpdj5sUnAk
Tlk0e3Jeb2YyYjFleXdSNXMoZmg2VDkmK2AhO1dgNHZpcmBNcUdNKkxgZ2ZBeFQ0e0IhSQp6K2Ez
LWE3QTxxNHg2RzVsXypiZFJfZFRXY1lteFJQbHw5YmVLWVorRUQqMEFKYTI3VGJqbWkrNGBNMSsx
dlM9Sy0Keik3Xz9aNHZ8SCNnUEp6SiVqcl83QGdMM0BgTEZZMit+TCtPe2drPTdAaklSX2tsblZ6
I3N9UkB5KmFFNVh4JTh8CnpJfSExPz1iN09fITdMWCNELS1sU1ZfYmFUNzIwREZJa29xQXIxSUZ2
Zjc8VVZaPSZJQz4wST0+aU0ybzdyRkF5Xwp6IVdrQXVAXzU5JUFTSlZ+T1d3TmFiIz4rUGMlVjNV
Zl4+Q3FtJDV4d2N6WClHKlIqJVZqRzw0MT07S0xAe2Nje08KenlYZWh0cjNJUThxM3FYWE9Aeykh
d3pGKSF7ZDc2P01vK2doaGsmc00tdj5QMlkjKVp4ZHtKJllzR1QyUG9tPGR6CnpYeGEzP0NebC15
T1ZJNW5eRSkzcXtMREcqeEt+PkRMa30+QExlJjZeTyRVUCFZczxONlkxZWtUaHY2b2w4Xll0Qgp6
KGJLcl4oOzdpclUtYWNzenw7SzBiKzQkcW9fenpqT3dfMHJHc3lpND9faitvWjU7NUZxZXomdDtl
Ty1sbmRRJVEKemdRaChYOVVxNEUxfSg9fEhANGhMUkxufl8mcHdGczVgbSpTJjkmYCpsZU1LcHp8
NXFGK3tkPTxfdUV2bmskfTdUCno8JEo0d15hU0NWbVQkPmMwbD04eU9VS1QrI2MofWN3TE11U1Ne
VihJWFJ7QFhEYXVkanJ8PypDYT85by15UjQwKAp6eFo9JlkzSipCeiM9UTNfND04Q3ZldElsZkhq
T2B2K3Yrez9KTEZCQGQ7UWRSei1uZWlTfkd8RHhJdERuYSRsI3IKeiF9VDtlKVchTXE1YTUqNmJ+
fWsmV3dEXnwpJkpsPkZFdyZaKGZuWjU8cylSPHV1fUFSKHEhMWI2YX18RkI2eGtkCnotO2tXakop
PUw3PERWbys2ayFaZ3AmZmo5STExPDs0XyRWZkYqd2swa0R0UDVgfUxRYzg1a3wqP3g8fSElNWxl
SQp6JDs7eURWI2RoQSNMMT1PQ0JiekI/VGA5WmdER1Rle2Y4X0Z4aH1Xb2ZuelZaUGYzUHpLUnch
ZCNNZXpKUGxqYGYKel92QiFeK1FCdzh1TEVfWEY/eFR+I3Rnczk8YmJtdy11MFEjNXd8WGF6cFI2
MHs8Ylp1Jlgrd3MqNDRqR2IhZTRMCnpnI0tlKThpWUpYTzJQZSM7OGU1a0E1Y1J9WW8+SnZtQEM+
NUxMVnozZmtgZDV1O095cHs1em9jey10aS1yPDspZwp6KHU2RGFDPWw8d1pGUlNKaVo/bW42UHpn
dSpufnYlZ0ckKXhIdnY0Y2RqNEhFM3ZyeF5gKXx7fDVndHNXS0NaXzUKejdwam1xLXRiP3xMMS01
QyhVZkFwQ0hidmRFdjY/NT89QShiPDlLWjJESyhiTV9eI3Q/K2l3ajk+PjNTazk9NWBLCno7KHpv
JC1lZmwmUnxxWisyazNTdzI7RiQ8QEdYU3ZRKEVnaXhoTzNeU3prVUAkSD4kPihVTE95Kmwlcng1
KlJ2Qwp6VitxOTNrb0tjNjsjMnJ2bkBFRi0mN3pvVmxMUX5tQyYodE5CfEtJYDJeeUNsNG4xYEUh
YG9NUj01MEI3WiNINl4Keng8Rz0xUylVfiE4bmA3UD5QfTcjS1p+MkEjI3lwaUM2YzgoYGQxNWM1
X3N6NXIlTEczQy0zLTFvTXQobV88V2FLCnpiVylrbVZ5djxVUXs5flcxKld2UDI4PFJ4KlNgcHM7
Wlc1b3twOEVRJiFsVTwoUTJ0eE1STUVvKEQpSmdNe1VyPwp6KDllY3xNWjs/ZGpvPlZUUDBGaTMl
SUx5Q1d3RFNyV0EqUiNeZFZHaTlmY0t3bVlnOzBiQHghci1iMntNVC04VD8Kemlfa2JqODJJcjZk
R0toZ2xFQHIkPi04RTgoeT04JjtnPWdjJTItd31GOyUxfXU+MEJyODFDWDlxTCl9e29AKXtJCnol
X3ByQ0xRazhsMFY+PUA0eWB2bWM1TSVyX0d3TiVEbTcmTHtERlRrTVl1K1V1aE83MVYoR3xFNnJM
O2FSfFRSRQp6QTRFNWxGQHQ1MSlQd0wxVCpyPSokLVFWZiFIMiorWVBrZEVHYn0mZFUwMzV4cz9U
OHFfWWolSyFxYEQmRkY2UCUKelBHSUMpMmBzeDAzblR1UW9WM05sIzNXOTJPV3JuayE8cUF9b00t
bH1IKE1AcEVEZ0MoUC1zTHEwe2xJQnktRUgyCno/KWVuPVowfUozNns2QyV3Q2BtTmlPJk4yI1Vq
KDBRckBTbzBqMEoqXjBxVERAMDJgXzEpfCVGQjxJOypoazNOaQp6RCVfPilKPi1rJiU/fXNVP2Vm
S1VmQE9DVGxKPD5ye3dySTAtYnYlY1pqJmt0cyhYWDBFQ2Y/NXpmI1E7Sn1lRj4KendYRXxqXypo
KnlUc2owfUBGOyZ5KDZpXktFaGc2bVJhSUAmJlZHelNgaXtsSHYqMEwrajh8d15KTk5jMUhsQ0g0
CnojMyN0dmRvNislKkppUjwyd0Q4Pzx8ITtXNmhoZl93ZEJKe2Zne2ZyKUM5fjJqZFpOWEI3djcw
RW1nUDFSPGohQgp6O1BqR1AlTkJfeSYrez52biNZcz8tPVh5O0NJY008WEdAeXVWUyFAazh3dEY+
Pkt9bGE8SVkoNl5FPX1pR0c+d1EKemNGbWhPRlgmS0BvcCgrJmtNbmokZlBjbml4YStnaTtgTnNT
SkRiTDs8WHl2TmZ9Wi1Pe3ExaFMleHxRaEhzfWxYCnpee1lze1hNQFlIUj1sKXBpcCUqZkNlX2tR
SShLdUMpZ003WiQ2fElLSkU9VnMwbHByYDltcXtoTjNIWEFPJFc5MQp6eit3OykjcUx1VSNXKlFK
QzEmNkByRSVETGNjPjslQiFYbUpMRmEmR15zP0BBISM3XktVaHshVyNmUlp5OE91RysKekt7bTxO
dDg5akhDcUt5eWpDaUBPJkQqezVuR1lDfjF5TC1HQDh8RD1GLTNOITRMbDYmWGFgdV5uaCk2LVp8
eV5VCnopdzQ4MHRsbEdFZiRkMDRWRSMoamtUMWB7NFZ5OTZTRTR2dzdSYD5USzkyUXVFa2lHRyUl
KUBFU3w3NW1oTHhGUQp6V30qJjUrc1k/MlVGRWdgbUxeWGtiWGZJMV9Ibj48N1g/UyNINDtwUyF6
SForJHF3NkVvZVlgdlRpTCRnRn5gYXsKelRVQVEtWm9oSFEwTmxnPz5LNmo0SCZHNn02QUhaUDFT
VmFRUWFpeExifUQrbWlZZT5+VSsjRX1zb15kcnM/SUMkCnpjKWl8JkYzVmxBWj5QKm5hfSh9MHde
TVNZOGM+Y0FGeWNebW9sIS19RHNvYyR3ODxyTjZSPj5pZCNRTm95ZHpqPgp6YUx7XyVAYzdscD09
O3M7KT1scXtgY3VKU0t6R344e2hmRSlAKmpmUmNeMjtsQmlEXnx8S1F7PTdaJl5lWVdVbTUKeipo
WSpQeHp6KXc3SSlZZzBmezNfVm1RMjIqe2s0QyR1cEs+R2VaJCpnU3kkc215Q34qXiFOSE1MLTlB
Rnp6Nzw/CnpofkZwVGdeKVVqa0FIYEUxQEA3P0UmWm9pKC1eU21XYzYkd1lfOW9pYzw8UmlvPDsm
NUNrN3lrbDVjRSl4dnVwVwp6KmJPelA5fk8rUkVJZkhUbkFPQFJfTVNxVjt6VWNePG1IKXRlZzNz
Iy1Xey1WTDtvYkE1NE5ENi1uVSNXP1NhYzkKejJ1eVQkNktAaFhuK2xvWll2eDhwVzAzd3Q/SzdV
JEV4TTxrKGcqdnBgY1J4ZEVfeTZxaH5BRkhvSWA1cSE+STJgCnpUP1c2IVlvSGRwcFdfdSRwZlVn
YWlrIWJBc19YJlk5MigpOGtTOU9UZCNtfT09cXFSYCQ2PiVfWG9jWlpBYzZSegp6NjM/NiYoUWtE
TSNGfCspVW18Oz12MlZOfD45VGhAOzM1UHIxanw4VUB3R2NYQFY2I0R2TH0laENWbyopS35JYGAK
emNBSFloVThNcShSRTNlOWQ5OFpIbCgld1k0Q3xiT0lEUHFsKyN9MT9OeTJBMFhgVGMzT2Jjd2Zu
TzgtMHZKdzhSCnpVOSNRNDR4N1Y+bCpBbXV7bnQoQTl1JEkzVWFoYl5gPFhHXkVLWj8/IVJLM2oj
fl9oOG9mUDR5YXVRa1NBQ1M0dgp6UVMrSDE/V1pyUGV3VEEobmpEJSZlcn5pQkMkP0skWjx8aGZO
Y048P09ITjdzdVU4TWQzNTtCTTdoUGtLYUt3dkUKenk1V21pc1dPdEw7eVhUdCNsd0ZlS0s+WUhB
ajA2cDtyRH4kez80JiheISl7Kz1QPSopaENQRSRhe2NBIWZaYSRXCnpDWEdkPlRed1NFI3lNSVNx
a3gtSTYxKCVCPzViX2Q8KG1jSnImJkU+X2pTYTh0cHVGX2A/fCs2eGtqVCRlPHpQSwp6dWI0KUhy
P2NBSVghaHdIYHlYI0M5NjUpQ0woOV9pZUshbmxUak5GSip2KCVgMS1kNGNoSS0/Z216ZVR5QzdI
c1kKekQ0TStYWjRkNGpKeTBDO1VkZ009YFE7UHFgWWBfcnxJNFN4PHRHPkZfZEExTj9Fb2ZIXj04
IXorbk9tJjd0eDFaCnpCe0VIYGlXSVBCUTlsZktDdmdnUzliT0NEKGspKT4xO3tWanlCWT45NGlo
SW5SUCF3dT99bjFXPTgwYGVSYENyegp6TypHdGF2VUV6RGduYE1fYz5EZDdiLSlBNDlCUCtFI1lz
YWtDPmolbkxUQz82IXkkRUUrN3dHX1Q3O3NXNUdORigKentVKSFpV1NSTGJ6KlRhPDd0MnFOU2BU
WDQtTShEMHFMWX1wKExCK1FoOzlVMCpqczcpYT9VR3dqTlhucnRmJV4lCnp5QXNpT1IkJihjUUB2
dSRKbV5NWWRWe3A1UT9eOHRyT1JHIWFLJURXJVRXVCZ5NHVBSz5AM0g8KV85dXpRZXJiSgp6eWkx
O0BtazttIz5PUS1CRHZaZ1I1UlheZnNuMDgoWGNTOyo+bykpTzk3dVgmMW9mIWNwKUg4aHdTTzB3
Nmg5NlEKemdkM25CVHU+NiYlPkBQZnAofCV+MkVvNXxUXnBMfj9mUmpuI2d0KGgxTlE+Y0NFcE17
b2o2KiM5PDBCVzhEPEspCnohKEJQZmcwNmk8RjhyN3o+MFIraHk8Mzx2cCMpIyYyNykxZSNkayUo
Vjc2YmBleyl6S2E5d2JCbmZsYj1MYHlpSwp6QWhILUB8REM/cUJfc1QxYVd1SlQkOyRsNEZGel4t
djwyTGM3eVMjPWozZHl4RSgkLWphXkN3KmxkQiN5aXV4e3gKemAlKm9OLXRLcF5VVlIyV3d7MStH
VTNrRy1DfXgrekh8eHw4PUxNRyQ7ZnIrXiZUcjd+QGZMUW49QWZFRU1nQzNQCnpIIW98QDN5VldS
aC0mcGhFKUJ8T1VIJndESXR8S2hnbmxUR3V0YHF6KkhsfmA4YnhhMjlDPndFanFINEJqLTlXbgp6
RTBoVkNweGE8eWkrOWZVVnc/K2xwV3dOV0IkUiYjJD16dUVfRTZEZD0jUSEteXpTKiRLXkF9STZS
ekFsPkxIZmIKek9NMmdSanBhSVlZQ3UrIUdHdF9VK2UxPmVmKCppOF4wTGJfKmlFPSNYVXtsczJ+
WHU5eXtFRlIxfW9TMyk2Q1VfCnphJDU9RFFAITxpNyFqeUdIeE1Hck9OKSF+K0MoUm5SSntya0BE
MjJqKVdqMnM/eWEoa0VFbGxMV0ZvdSRKTXpDcAp6M3AkY0hWUmpDREFXTGNxWld0NXQqaDtuI1A7
cWYpYC1VUDhQcjt0TDNsYiZ3YV9hSl47eU4oUyRNY2J8STY/c0IKemRyXklERlZ9KDBuVzROYyFu
bVRjTHZOZmgzaCpQX1N6U2s2OVNCS2MpQXotIVpnT2I1fENWWihXa3UzbCFEPjJrCnpIYStJaT9s
aU1HOyM2I1pWKXteXyRhNF5LREMqSStmVkRKeStUSV9iSipMYExYTFFwU0VxWEhSOW4oVWReTXhu
IQp6Wm1aYmd7SENZK0B4YjRzbFIqfWZAJTImNU5se3RWejMpSU1AeTs2aj9jU2B1eT9xaTJlcjRC
WnRgSFdTYkdDdHEKejdVQXJ6VCFDNChJWn1iYVVyfCNgJGJMYDJ3a1E4YFZ3Qj0pNzctNUY7OUFI
NihIbmckTiswP0l1aU1IYXk+c3IoCnpicnh3P0JpVH1LR2dwXn5KbVFGVTV1JTZgVmQkZl9sWFdk
fi1ZSjRlfEdpeHY1KDUzRE1yZnpkVDdrWXMkc2RnfQp6dG1EcjZrZ0xDa2dKLUBzdyp1YFVnKm4o
OT04P3A1SU03UHFiakBNZCNTeVctTXBWMnAlai1FUmo9WENxSzV3ZC0Kejc9ejF2OWUpelJybEMo
e3Ela2lSfEMyRTZjQEgwQEs+MkMrQDxyIU1wMilSZVRhZXRvQD5zYGJvPUxuNGFWKXRiCnohZldH
KklzSE8rPEQ8eTNxI3l+OyFPWWFJcGlsNDd7RCVaPUtsTCh8Pjt6YzY3T1U9Q1pBUDx8PSM+Xkha
SDhiPgp6WF4+OHE8TG1wSUMpWWdzX3BwM3tPcmFLUG1SMyU2IWZJd21FTDxwQkFDZTB7YGkrYmZL
bHpQM0REeXpxKF8pZ2gKelEpUVdUbE5zPS1PfWFNJW1jNG5xViV+YUN3QT5+OHRsd1pSWHNgUlhS
cj5ze0AhdjR+aEg8RUU2K3h6MVQwdVlVCnombGdNTWVsMTIwI0QqQjxSQVI8Q1k/RkRYcjBRQ01e
Z0tucUZmQTAhO0ZzQllXdHtQWjg8VEZ9aTt7NHxEUz56Pgp6Q2U7Q3ZNY1NBajVKUUUyUVlYWn0w
e2R6eTVkM3RVTWgkViUhfjR9Vjh2M1lsTSVHaHpTSCtXaCtTX0FjeVY0Vk8KelNRVjYkWEVEUTMh
YkRuRHkxfCtvK2M7dndjcHpJaEMtU3p0e0hFc2w1S3h5I1dUPl9yI1lURXFlNEdNeCRiPzdwCnot
WUs5OFByN0FVbnBzNiRVNSZLVlNVblImVTQ5fntJbHdoP2BfcTAhZkFWKCNITDhhKWBJcCRKanN6
WTtidzEhcQp6eWh3UkZYO2lreFZXYXtSK1A3aUsyeHpZek44SipKQVJ4XlRELX4lJXpTb1g7M35X
ZztXSnUwY01WeT9namwlK2EKekpDcD84KF81TGEmPDw5bmw9azBtVGFlO0dYYXEqcyE9I3R+ViM0
VDlQRGlZRl9LNlJ1cWpqUEYwO2YycSRZP1N2CnpXTDYoNTIlc0g9TChPfV55cjdaNnFwY2d2ZkRN
ZVJtQF44T3J1M1F3NX0jJnZaaj0lb2xmM21xI3h+eGp5QiN2dAp6TWdAPyo9MGs2fkY7bUBpWkIj
d3Y+Nz9hJF84N0E0JFRgQjltdWd6TXlZTWJIeCZXI2x2djRic3UrZGNSd2BQOEsKeiFzVTBGVTxO
TzFQaWZpU1BjKjQ4STB3T0lCPVo3a2hPK1Q+aUZ8MyshMjE+U2xENmJzN0wlRSY5Yilvdk1KSDBz
CnpIX1JlJHF9OUtgUi1scG1PU0xAM18kZGYkPm92NitqcyF7SSVVYVZme0wtO3FPTyl0fWw8SiRD
Uk5XcHJqcWwrUQp6PmlNLS0jcVgtN2Febkt4ZiNeSDBpaWhOYG0mLUJtNFhOVDZXYyNHdEttayVz
KEM5Un5AKGM0VlcmN2hgSWdfY2YKelJzPXROS0RITzQoXm87cmQlVEAmbyheUj9gcm5qUjtMdW40
WjxGfFpRRismZyUxWXpKN2pMN3YpJjspYThkQ2JzCnp7Xjw5Ti1xWlZ4d2o7ano3ZXEqK248dmVU
Vkk5JVFSTz87dz1NZ3JnJXcrMyVgY19wdHhDYjtRakw1TXNOcD5RQwp6RkxtQiVAWDdxcGpkd0cx
MU5sLWxzOz8yPjEjRW5pQHk2eU9VaSQkQUR1KEpwVCVZJFJgYXAhWkB4KFJpKUNGSzQKem01ITVm
YXFrO1huKzNuQ01YaiFaITBIJGNCSkdReVpidEZKcW57SXMkPXIte2dDK1BTIz0+WTIhYmtAN0Uh
c1FHCno9RTk2WkglailJeHB0IyMlSWIxITFMVEI2diQ9JlJlblZEQGFIakJtQTd2WmVzI2x0clcz
ZntwKS1DZlhZa1VNTQp6cTNmIVFCc2ZpOVdBMWBKenNvVXt3JT8/Ki1nOWtadzAobCp7PCtofGlp
PGJXUGRCdUZSP1N5RXcyJEVtRUhob20KejtMdS0yOSRSaDFtaEdwWTV+SzgqQmooMmhIMWRtSEpH
VUJTMSglOHh4MyMwUGkkcWVOODFoS1o0d0hgPHV1I213CnpyWHQxP3l4JV8lWWRuI0pQU0UhKEc7
Nil5YnFeTDEjMT9yTyZJeEswezNaRilJJDdTRnNVX2BJSGgjNilOSHtATwp6IVJrc1UpQXQ0M0RO
Z3BCbDd6fGozPXstJU98TV9kTDVVQkh4KWtDeDhVLXNFUHxQYW13cDdKKkJjLXxjbD1KdCgKeldH
fHZaUG5Ec3dzKSlKcm1kaWk3aUdaQCokNlpnfGljSl5LYXUzR0p1Xk5ENzZSM14oJDdeVT5AJHZs
fTZwY1UxCnp1OHAmPFVaRnBpQCM7TkxMSGZ7TlVDODQ3XkRmfGlvcWB4aWJMKEI4PlZva2J2OyFr
fj9fdyMyeHRWT2NhK0c1Qwp6MyVwRTM4fW9ga05jJE45azZ0eT9BP19eMkprfkdlQ092PGFOUjF2
PmEzeVRSKSo9Tzc7fUZSYk94S1JhPE5eLVcKekVUOCQ+RGF5Kz40XyZOU0BxcTtAMTRLSVkhWDJs
Q2YzeXQhdXNpYXpUMDVMfEtqJjszVHVOQ1BlSD9MVFVoQkYpCnpFQSNyUG4kJFZ8YVh9YG89Nzcz
MkAoPGl+TkdRTEsjYCQpZGl6NH5GdWd0VHd5Rj5JczhsTHZsJHU2fV57KjhITwp6ck12Xmw1UEo+
OzUxfXdqPzIxUWQ1QWxfMHtgX1V8cXskMEwrVl9aPkUtN3g+TCpqcFdZfkNZUnlDKzQyRSh4ODIK
enl9TTk/Z0hNZyskZzk2M0lZfS0jOylmLTl4U0J1RTwlWnNzT1ooPkJhYVI9M3hHd3UlbD18RnUl
JjZ6fVlZSXl8Cno5WTNuXlNCemVJZyZaQV9Ua0JAey1HZWlfUD0rWGNXUUBnYTxvTn0ySElPd0oy
U3Era1Z+fDl1WX1KYV9oNFl2dgp6dTJ4N1daeiolTDdvJlg2YHU8Zipua3VAPTgkWFA+UUU5NDMt
TEVlUCoqXzIpTXNPT35CSD5sYGBBRUd7K2ElLSEKemFpYFdhak40dVl7TWUoIXUjRXE8SWlZNWJC
VlpKdiV+SD9OPjI1cmNLTEQofmBFRT9oP00mLWshUXF8ZXhMdGxzCnooU1Eqcip3eytGYlF4ZGRE
Q01mOTQtTWkkWiYqQ1pKMVhgUko5OU87aXMtciRYXzxGQCYkNHkoUjgkK1M/QnlGQAp6NjlualVH
OGk/IThLXzVwWWM/JHF2SDYhQG1qKnVHQGU4YmY9MlZ+a25tbXVSUiNFbHx2NkQ/M3dDRnVTUDl9
MT4KekBVVXorcFNTSHZFamZrNzJIIVE9dlpmN3dibitDckxQQnU2T0lsaDwoZj4hNTJMQHdyVnI2
UWFOSWsyOUFENmI7CnpsI2B+IS09cWhQa3pOIUstdEpIK2B1TEVxZ1EzP3haI2sxKmIrPit9bylg
bF4zZGRxfGozV20lYHBIdXVfPV45Nwp6TWorVExzUEFKI2dFNmt5LXJSNGNJPjV4T1BNfFdlVzw9
Ml8+ZTZFOCVAPV99PypkaWVZKFhHezxOKDVpc309fHgKekBHZ3V2JmleMysyallQVT98bUYhPE5Y
XldGaTxLRnBnWCt1TXdqP0VHUWcmTDJSdVc/YnE8YC17K2xFR2VQQ016CnphRUJGZGNKQU08XyY9
X1NRMn5lckg3ZzdHYEw2JUAkYm1HX1FXTiRZO2VZcHozVjxDfDZiI3tpNjlgTFFwcnQ/Mgp6Ymk0
bSVCK0I2Y3Z5aWFkYE51SC1eZGk7LXZAfngyP25CSks1S05FK2ZKQVU1QnIqVHBeYEJePEMzaE5H
QEJqNnQKenp6MUF2ZlZmfjBkO2M/dnxOTkZ3ZCFWSkNCcjQtSHxORjxpJVk1Y01wYClZMHxMKXFJ
MjU0ejl7NSQhLT9HWHdYCnprVWtgZ3tORyp3Qm1yN0ZrZDhiNXc+e3xJOEg9RyZYODdNMGBFMTUo
cD5vYlpkbFFaUGNNbHUzZUBKakZgYC1iUgp6YmhpTlFwPWxFeVVGN05oJT5LPkhuQ3BfP21CR356
Pz1vKXczODJoM21BNUBNajx5WnZPcT5zbEEyfmMjMmByKXEKelNWRGpgUTxxYzRmY0R4ZEAqOXNk
JShaUCZUMnFnRER4endTJU47Q35jKEdlTGQ2Q2U1PSlDZFJ2cFNfXiM1e0ImCnokSihNISs9Q0Zl
KzFxKD9PTk5rYzVCYiRWOGRUTkZBaGltSjUtdVltY2VWYGdtOUZEYURGZEdGbUtUTjIyR155RAp6
el9gekYwJUc5OzlNLT9nbzVsIUZJQH0lOWRHeHV+RSN4SHshdCNIM1RMVipaK3dKeDVmUUxQIUx0
ND9CaGBWbDkKenw4SF9ueiE5X1Y/aiRCKXpqbmNTSz54fFV4JXV2fVgpJShxWXpHaHsmOTVNJF9a
PChuR2l+bGh6OSYrPS18YztmCnp1YSpQYTA1LTk/YTZYfVFec0k4JE8oK1UtcWk4NHpvckVORzB9
JG8jYT8hKTZacjs5V1lBdEt4Kz1oS1pEUUUhWgp6JTR6JCpOUlBHNShGQFU8V0p7TTIjVmF7R15F
eFolYmg7KSpRPmA4c29zMTx9MHwoK0F8TTF5bXo2STlfMSQjaSkKei07WF9gYE5BakJPSDNIR1FV
ezJPU0ZkOFB2WUFBXm9WOyh5e2A+fkNwKitIcD1GQClyZEFtOXtLeG1KaTJjQkU+CnpKc2FBZDJD
Z057OT1RdElNbD98VSlsZ0UtNU56YEZhSyVkNmwrYit1WjdXfGZvMVBtSCplbWh4ZF97WkMhOHdN
dAp6byo0YH08KyElPG9HRkRvR2IjJTJvaCZsQkxxSzQ8UCpkYXdRJDBMYDlAZUopcz9mKnVeUkxP
aXRjYXFsMnFwPUcKejBKfVE/JmVaR3NVWVFITktyc0I2Km1qPnM1WSEpVmBrTkxJMEFqQWpRU057
RTkyVihfOEFgRjgwRj1vdEFyQmF1CnpLTko4RG1+KDtVUG5AZStYYFJIKjwlY3pFTGA+S3dKXlJu
JUtPa280LTlgRkowbG9BZSFsSD0+KXlTekohJGc1LQp6MTA2cmN5JFFYZHkmfnNnbXt4KUJVUCQh
QjVpOUJGJStxOys9Iyt6QVV1PzxvLVNYcFEtNko0OTVCTEtlc1N2KlEKekdEXnJXK2FOIzNISVot
bzF7bCUtKGN7fHhhZmBSaiU1IUU9dlM4a1hRfExrPlA0a2JzIVE7UiE2dEBMJXg1MmlYCnp0PClr
KTtaPzBoMU96TH4/O3FZZUJedE9WTCorc15BRDtqfHZsI0dyTW5RfCVVNTI5WU5uMjdOQ3F8QGs3
PWYkVgp6YzNsJHQ7clYoPnwxJVBsQ2FXUnNPZ2VJfUBFcWN2O1VtJitkWHUwe08jYF8qOHhkXyZD
KEZtVkg8UmFiSSVgTTcKenRPdn44e1ZkenQtPUZrKUpjRXxJdV45Z2lIWi1gYW5ZUEVOWGhRYlIo
bmM3UiRQTjRGZilzJjRvTiQ0P2ZQIWVlCnpkLUFmRGs+N3VASHdkfFJxMCo/UGBjUHpsZVdCdmoy
TyY/RGNMU2ZlQiYqNHNxTk5NVS0zR0dvZ21peG9oIXg1Pwp6SiszdVFTP3gjZVhkTyZNdEBZbChl
en5OZER1Z1BXT2ZUflJMTFIkNEFSUWleOEhoZV9SdX1IcSRFKGw/XylfI18KekVDc09DMTlYY3ZN
cD5XdHRuPXJkIVEjKWlOeVoyWSNFanh1QiZNSSk3bTVtZzVWd3hzKjxZQnJvc0JgcCRvOz1yCnp0
R1MoRVJPXkszRiF+TUV1WWNKeUl+OV9iSzhoTkw7b3hwX0NqT0hQUCQ5PUVVN2k5V3o4QVVNJnc7
VDUpVSsmaQp6NHlFcEZTZ2AzQ084VUxgMSZtQDNFR29gJHRIOWMlcmF7az9AZGE9QEQ2fHJ3RE50
QyNwbHAyPFl3UFNtLUxuNm8KemgzSCtmO0s5I3srdEpQX0d9aCtQLT9rOCgtNmFGM1phaj1Uaj9E
UnBKbmgxZFN0XkVwN2dQMkxJXzQ/QDJWMFc0CnpNczw1LVAwK35FWEZMc3tEaXoqZ3pWKGdNdl41
ZVpAYTIrOylwWng5czRIIVRaeHlIJm58NzFuWkFjNkhqKCFKQAp6VzJtMHpZQUQmVUMtOFJoeT0r
MjxRVml8QDM5VWhtbntERGFgR3ZGaHtvdVBDJWtERll7MlFHeDklITNKWnp9U3cKenpWS0xkbmB0
MDJQcy12Y3VVbH1BPk93fEBzYUZzMnEpTmBedXJFNHhWYn11LSMrTngmP3lCb0lZdk9vbGhaSWxP
CnpraEBqUGZaMWFlMl9uUlIhWmQoQXQxLU1WV2tuWS1ubll4aElSWGYpdTJOUCRldmBvWUkhQm44
OFVkcCpZcTQ5VAp6YTBvXnJwOyt7T1ptZ216LW19MjVDfCs+JDNyQWA0X1RqaC12KUopQCp8I1I/
OHUhTjJSfDdYc3M+KmU8ejI0SjwKekVfUjF9SnBfPWY0PDVkWHtTTTYqSyhSNDJZWlBmNXArZzgh
UGpfdWtFYDdhNWtFYUI3ZHBwN1MrUSN0QTkrUihoCnpCRjAxenRSbzcwITdTWSptSypWaW1pWH1u
ZDVOJEBDaUY3TkplRStlOXpVcGtVV01FZ1crRDlhTCsjfGpNMkMrYwp6JXYrXmxndVJ6RWJhYDA3
UHMmaStTbkdWemlXWmJhX30zODEhNSk/SkFtOSlKRGg9S0VkaUI1JUVjfUxYOH1GfGwKelY/Yl80
MGk+fGRpKWskbVNUYSNqQVMqeXp2PCtZYFNGYkVzYCVoITd1WmwhfHJaMGF1UE8lMSNFJl5KPFlS
M21XCnpHdG5hR1ImSHEzNDlqOHpmQE0rJU94JEprdT0lcTt4UilyfmVsKmJJPGojYEFJKU9wWE9W
aFBHcEQ3S2syNEZgfQp6WVdaVUAoc3sxaU5EeHQyaDRYNTNBaFVCSUdGPGR9Q0FkWlhUKkx7aXli
cGRtWnsqblY1PVEkeUUzcE9GS1FDVWgKenpmJXpxZ2ZYQ00kSEF6SUtPfEUpdjxJNWFseV40fl5G
eyFORShoWkxuK0c2SlEoYDVIPzUpWmd7ODRCbWM+VDJfCnp2LWYpd3wxbXc4aThSSEh3bi1AN1ZB
SERaRld6SVU3Nm4kYVQ7IVBTd3hXVGRzKF93P2QqYmtjVkR3aEVTREh1ewp6JCUqP2VxYUltTSlo
JjhuV3hNWn5LVT0rbFd0Vz8yR1JiVl41VWdDeytiMT4/Z3whWEY+bDhnMzxXeDlgMWlSe1YKemo4
ZHJvJGAkdiNzVzFvUW9XXjs/b1dfR1hNTmopXlVAZkIoWHh4KCYmMmlHQF9zZD99PkJMKT9eQTBs
Pkl6KzBFCnpkRFd2PVVJOWErbjdmblJzN35PM3NLakNBLXtDN28lXzR2JFppUUBURTk5ZTlHYCpZ
bT9NfE49ITdaOFJOfDUwdAp6KXZuKk9UY0p+JXEkXkk8VyMxTm1laXZZZ3loRVRvJkdHKTJuI3Bf
UDZfPXtqdVh9Wj9ZSEc3UDEpak9yPnV+azwKenE9alZKX2p6WVNfaURXS09SQWYyRE1oRjk3am8+
UGwzNlU+VVchd3R4YjdNLW5ZcD8qQn5MNUdpV3kmeU9ERWxhCnpAZ2B+PWF4QHY7OStkcGlxRCpK
QWdfaENTM09kMEZDbzR9PDlJayRTWX1fbG1UYStBYmxVTWh+Ui1EeysyKUlrbAp6dSZ3JWk4YDl8
XmB2UX0tYypEXkF3I0N4dXtGTiFJPko1RHReJVBfKVVheHhqeDRLfTNGUmxUMk97PE5uM1Y4K3kK
emxYbDVSSVFTPm5HK34rKU5hUmhTSWBJejE7V34/XzUpMTBmPGg0Yih0czIrekNQKlRrdDxhS1Q+
U2xpMTxtPCZGCnp8SFBVc088M35TeyQkTjVEb1FSWCh+LSMqMGhBLUBUaV56UDs5IWJyKkFhazh2
a2E0Tm1UYXFzTlg8cGZEdDZ3cgp6c2FlYy08dyp7Kkt9TSgpTzEjNkQzZCsqTHpoPFlseldtSjhY
SSkmSCZ2ay1PT3Zob1YoZEs+QEcpRk1fX1dnRkAKemM/WVpkQ3F2S0dtd3NRS0JDcWl+PFYlSWJM
czNCdEdQQkxCNV49K2lvZTFoYm1VVjRQckBuXng3UEBKYGFrZUlACnpiZTIlJTh1SG1INTRiM2dh
MG56PmJeUyVRX0ZHMEhBZ0woRERuSHJQezhoREZycShZXl5OR20mdVNoJFQ0ejsmfAp6UlVRNUVj
KnNAO0JBU2Y/IU49cEhaWkY/X2pgRHRhSExkNWNpJGBldGI0PEdOdVRONzVUQHUxTVpSUl9XKkE/
Qz4KeiRjIVp+S0VAKzRzeWtBMTYrPWxpLTNFMFlEMWM0ST9FPE8jKSk3YTY+c3dFXkZwcDItWTZe
cXREMmY0OzxzO0pECnpzWTN+WWRJQm0rTXc+ekI/RTh2alRzSmB0Qj8kcUlLVE1qblkpejVnWG4x
fCMxZjhDVXZYV1RFWD9WZmhpMVhybAp6XiskR2BzR3EwKEBLJG0wN0FrR0hYV1kyMz8tJT9EU0p8
eSZfZlp3YXMta1I/YzZQN01SaEpWUXtUZmVaekJLKi0Keit7UWAkX1RVOShMWXVtZ053ZTsoeDxP
KXhmMmwrMjcpdk1vQ05kNFJyS0l2aWsyUGx4VmlzIVlTVWE4XzUjdCpVCnpOO0lSWmhGJVh+OUJS
ayRsOz9iUXpYLXRTSlRCKWZ1M2wrcm1lRGdRWXBNQ3NjQHxEdzZ8fX4+LU9ZKisjUztLWAp6elFH
ejVQSUJ5S3EoPkFiNi1zZmktfVAwcWo7JmEqdyRIfCokWjFJSVViRlhzdX55I0wqSjZGNj5KZmkp
Izs3YS0KejQmZzA8by1NbkVvZnlzRnsxYXQkO356VFB6O0hlUXVGfHBtO2lDK2tiYyQ2SkM8NTY3
d2ltOEJlRyQpIUU7T2l2Cno5QSR3JVR+WUZLIyRKU3lHRS1UeU1OTkkwJX0+RXwhdzdwQllxO1dg
SHVhWUticzFMNEBuSWskaTAmTkNZRj0yUgp6WilYUF9EaStGJGVqZUJYPG4zNkI2UEkwJndtVD5B
cWchXzZpVEYwMzRDXnlDQlAzI3hwd09AfVlIYjxvVXtJYCQKekhxSFVDV30+JDxDN0c8SmNaZ0t2
ejJfM0phaz1jaD9XfmJsOWBDM0RYPSpwdEBFQ0tNPHp6MHhyWWJ0fHB0QE1PCno0JFVYaGNuRnpf
IyUxVTtSVUFBNV80KW1FZ155dDtUfE5eWmRJWm4wOWhLWVM8fnNWXzhmODx2e2ZRPVRmWmNUSgp6
SCFLSVcyMX4+XjlXKGVaek1sZ09FYiZrM3tLa1E1SDl7UlN2I2dzWitfUVZDWTE+dGVVXn1Yd0dU
RGRsMzBkS3AKemdOYk5PTDcwR0xfb2c5dEskc0hyM3ZvRjxrSCFwcGtAb2h5YE9oZkZLK3pCXlVy
NDVBXmVZNTs9eF4mWERaNj9KCnpYN28tR0J6ZW1MamBgSFpidis5SUJXeDhldklRVldVTj1LQE08
bnkxVzFQWG8mczNSKV5sVDwlQypJfkspKnVjagp6ITZOLUtyVV48YmR4JGFLIXFoSHU3WDdzQSpi
d3BpNX5wbTA1fkc9NmFXbFpzQV9tV2Y2NHZEVz1zdXNuKEFSXmIKem1tXkZeSHFXYzlnWkR2Uzg4
czIzM15MKzg5T045Q29ieWtAP2BsVVVMdWNecXVTdnorKjskN3VhK0tWIWBWQV9QCnpGVjdBajVW
Tmg0R3txVF87KlN2OE59PmNJRGglRkJBfiVOOTV+NjdiSlkyWjMhVnx2PEF0enlDX19vOF50PD12
LQp6dCMrZkwmZzNma2x9VlZWIzR9SXtvbGc+eXtBUG53VSNlYTlIP0VwfDdVem4jVGkzcXdqJjJe
c2M7dTBxWFA+an0KenB8IzAtOFlXSEAlRio+LUotKXV9bDNERFpWP0IldEtDMX1AeUJqXyoranhX
e2xpOHN3dmYtI0RBYSRrfGtESDYqCno2dVo9SnF1bkw0NE1naUc1UTV2PWJEQG11ckc9IT5JMTNI
KCk2VHFXPXkhTTQ9eyZ4U3B+K0gpM21RZSppdntAJQp6QChHKlR2Uj5DP2VlTTlheytaNXZuMGt8
d20/MGJndEJERS1uUmA7MWNENiRwPCZXKUFjYXZkSl90fnljS2Q/NGcKejFsZG92JGwoPSswVlB6
bFQodHNCc2NZUHBJRXBvJTJAcUMhVWs3UXhQVTk1QjRYMnRkVX0mTUItPmwtaW9TbyZNCnolITIq
RkpWVkJnPWM5Xnt0eCZmeVZRUnBqMzB2ciMqTCs7JG0xbyZuTWRkWD5hMz97aUItVHMqY1huajlh
b3Uqagp6NmlHdUphTEFmJVAoYmZ2SHx7YUZNYjh8OWtKPkE1R2VuK3teMmV7O0xIJGtraUdzKEZm
SXJSVmxmdXF5QU9zVVoKemxVVEoodHI8VHJWaER6bkRiY1pkdno/KmtNJFdfdlZXZ3txTk5KPldW
eXY7NVF+Sj03eko0YT5FbE0xdjw0Mk5nCnpwNUhvQU5zY056Z2h+Vm5aOV9PY0VqYjtQWjkqIU09
UyglfC1YczBLWSQjUmhxNWx5RGJJNXElVm58dThVRE1JOAp6JmspVUxKO2xUNUJTdHpMKytqXzNu
MXpiNGotJDx2cyYpU0hfUVdOIVBNdSQhZXVTQDdWMSZMRW4hOU1ATW5DTFIKej9OKTY0UDxVJXNH
Kylxcik5ekMzQ0xFKFZidzVSS2dxOHxiSkx1Xis0ZntZel96SyhhK30zVVV6TFJrPk5TU3NZCno4
UyFuQldqcDhYeGUlbGhGNjY2X1J6ZTJneyN5U3J5SFdLNG9LLSQ0UT5ja1hhcTY/ciVXWEQ2amlC
O0tsMjYzegp6cWViNU0xcnZpVmNKTUZLMSg4MUdgJXV0RTYxflVHOXZiWVQqaXZUfllgWkBsdXlJ
Nn1IPUMlP3RAKl5sZWcyTX0KelpyRnZlRnR0SHIkOD4jI09rMyt5N2JXdG8tUFctIWpOeERmRn0o
bzgrb19Nait7fjUtTmcmYTNDQ1FINmpkQzR2CnpoUHVeNjgydkI0OXF8ZkBDNm5MQ2Naak9+UjBy
NE9hI3VTKU8pbFVEekRhQGJvN3duZV8+SmR5R18kJSs+c0ZEOAp6PkhTc3ghX25aODM2bXhITy0y
bmlNb203cCE1ejBkM3AwXi1HIW5oUStOVEskclAqSShnVCFiU2Etd3NOTUtNKXsKejU0V2I7dm4z
PUMpeU9YSSVtVjhnaUVUeFlFPCtjZGtPP2NVWXFES0FzUSgyODIwRmVpQ1FnWT49QSRAVXM0aTdT
Cno3cGZ2cjg1bTREeXtrQHlLVj51ITtRTnclT1BReVNhWio2bGlxZn1GRFZgXmF1Y3x8UmtBTCFJ
PEBoSCpOLVcqMQp6Vk4xP2Q2bDdZR1F9eT5qIz43cHk0KDFXRzwpb1FOTkNQZlhvNWBAbWtMMVRm
ZjNKMXdpP1N3S2RIISpKZFkha0wKemJ4TCk8VHpXSWl0cEBBUDw9QCtZRnEjbkdFYE8oSyFrJn5W
eiVuQjx5N2d2VF5yQGxjKDUyaCgtOD58bVFCeDwmCnpKPUNXcFdoSz5kbjE5PCtQfjBxemlzfTg5
MCFLJDFsVzM4OSVyKTUwUXMxODVvNCFxNXVzc1FaQHg0QG1qJH1MYAp6TklMe3tmU2lDKGQ2bzZ8
ZkorKDx2PDZYOypPI2pxQkEpMXhaNC08VEkrIWQzdlAoakxZPDNeTzFjfWJvLTdBKTgKelhuJllP
cj13Nn5iUHQwPGI3cEBSTzxDaDFCamF7YiN9KzwjWUIjWGEhbm14UktEZ2Vzc096JjxwSVVvUzNh
TzhECnpjOCsobVJUZCZMVnNnLTNqTUtIQ2gjTC1HY0B2Mmg9ZUB5eEYmUD1WRkx5SFRXWDFRKEFy
diMmPGI/WHooJEdaWgp6IXdZT3l2WjYkZzNOdSMoYWQ+WT5LKmpZTmw4Vm9aYCM9emwoQVVHeSU2
VFFMaG9wIUI4T14pclNmZzw7eUJyIVEKelRDc2tSVjk/b0wrfTI1YD0yblFLQGFHNlcmR3NxdyFp
bVJjWjlNWm4mUEc0NHVCWjJweWZeTjYjbitMNzFDb18hCnohT29mLSRnZDl6IyRtPnVMez1ISVM7
NHJFQFJsP2BMQkVpOSl4UzZ2WFYrVVc0cE5YYEA+KVJ8Rm18TSNXRHE3Ygp6NDBwRFRaI31WXkZ8
WVZiVCV1QntePEJ+X2JzUHlsdnQpRFB1b0M5JnlCNWoyJmd2d31ZM0hETEtLNChfa3Y3b0oKelhF
MFk0cUl7U2AmdmhTKF9BZVpoRSgrJjlEKGdqJVAjPVVITyoybEtUb2kwSzlpRmAkSTdSN1ZpRUto
KWRaY25TCnpzdWJSeihfJnFaZS1haXY2NEBePFYlYl9LUkQzUStnJE0tQ3AqUClyRHZRdWgyMEIz
WWdXZjRqRkl8TUpuT0FRSAp6bzdZdXAoPWI3RkB7R2FuQ0NyaSNVbFR0SENVOS1kM3JmJlpOaTZl
WWAleitWal8pZ215ekpxZGBpfUNYcy1TY0kKemMpaSZQa3s0bTQ8RkJmbmRwbngjRUh9bkAlNG0o
ZUxaUWgzPUlELUUzR0dGS3hLcVBzYlRKKTYtUHJGUD44aisjCnpWN3YmWHhxdmNZVCY5O2FNVylC
NFcrPiQrY3VHYERQdWcjQTk9KT93TjktRjRkUHRMSnZ2fi1OU014PFk+bHJtawp6ZHU7NDJ2RlN+
RmVgSUswO2ooS2c3SzROVThMc080JkQ3fDwlNFBISUZ6VkJyPCtALUBJa0B9MnthfSU+VjVZTT0K
ejg9fmJ0UDkqc3F4e3J5YylmTWZTNm5mdVc0PldmMTVWOGl9P3RaQV5iSk4hPnk2XmVlc2N2MnA+
IWZ5e2Q7azRpCno+VWxeK2dKUHJSWm8lPV94JHdAMzUyY0RhT0NAJElMfG55PD1LWHZ6K2Z9IXp5
X2t4SUwmWU5+c2ZwNiQ3KFIqQwp6KWhJTzgjYHg7eENvVmhtY1ZuKEFmMz4wPXNXcz5JUSkmRjVk
TjRteV5VV0pTdFpCc0VaY0E+Jm58TURKMTZ7Xz8KeihXejBZSkZjJi1FYHp1cGh7VSVFWT80M31y
aSRGeDFEbzY1KilJTGMtbUhlPEUlVz1iYl84ZXV0MVVIQyVDMk9HCno4Zz5oSFRhYE57WSloaiQx
c3lvVW1ncHREO25iYnIpRyRQQjIjN1lKRTRGYUR3aWspe152Z14tKWN6fEM5M0ZFTAp6UiFeM0hS
YDNPN0ErST49Y1k5LStjOCswSVFCcXgkMyEkQ2EyQFQwV3c8Mk9pXiFPTSFiK09EVWJlbitkIShZ
JkUKekg8aDxmJXpKKGg5RipxMk48PEtyeTgrI3MkcitKfWUwWmZAMVY8YXwoQFUwfUZDUXJ8VTB1
e304eFdhTkJ+dUklCnpvY3ZGXkpZVnFDakJDZ01aMzx8aiZ4T04lbU5aYEhYOXtgRlY7bWt2d25t
PnlSVnVsPDd6ajxtdUQoVV9CP3Z9JQp6VSlfaCU/bH5LUmc0MHQkN2E5IVQwQXEoa3N8KjFySUsy
YChGWiZGKXJ3VDQ0V0R8bzZxY0Y/KE1FKStFR1l1KWwKenc1OG5XPEZDKDJRIS0tMXUzNHk+b0U3
WSNlfmFIa2wqO3F5NHhBQmV8TDRqKEkyM2UzXzsqYUhlNnQoODFmdWhJCnpMQjhFT2JSWHdyTV8z
MzhaIUNFKkR+IUclR1d2OCFZYCFqYXM3JH1HS1NoPnozP0RVaTxYZXx3eTJDWmtPWkNEbAp6cm88
P3FCUkVPV048M1NfR2x4Y3p3QG14UCV2dztNMWh8Oz8jY28oIWdHVXIrclc5KitlOV93NV96VF4t
TEU5dU4Kemw8KWEkeT9ieDREdlNTbWAoP3N0QiVQJlBha0pSfHU5VCF6JUA8UCZoKiljPHN2X0Qt
IUd4RzdAR3A+dyleZGw4Cno/JC0hWEdPaW4jVmk3eEBMVTBzRUMoXjBSaDUkdSY0bjc8KSRZWl43
UEFDbTE5Uk5XejRWLV8hayVsZ3B7Vmh6fQp6bC04dUI5anlJd3VTSFlSSiRrRV9YeXshTz4hT31F
JVlJfkRNSjh0aFh1bChXOU1hek5vLXkhQE9gJnVGTnZfRzIKei0rSns3NFRnT1p2M0drQDRYczZv
K1Bee3FJOS13WUorZXJBLTVibD92eGgjeWVVVEtZNmc+ZnlKQ31rcT1TYnJCCnotX0RxY1okWUZM
JGF9Z3oyUWBVWlZPTX5mdEp7bjA5P2wzO2pBdDh+dFdAbVliQGcoS2JRbXEyX3VtVVVkVlBjIwp6
IX4/cVFoRl8/NyU/bUp1SkBIdCtLMDsqMGV0d0doLWJqcjx3djZEfEQ/OEB5eD4lazdzWHh8eVg2
NWxlelgpR3kKejMtPTlLe3U7VVRyITtnNXJ2Jns3S0NyNVAmZVB3VXYjY3I2OXFMazdRYHA/aG5X
KiZEYG5gLVRMJU0xS29MRD1uCnoxcTZFWjtaM21MVF5QM145S20xY0R1VjZXeG1qWkR4Nz5nZio5
cGxjXiFCOD49RWsoRTtXZHdTOyZyQCZJcU4oNgp6OUV5VU87Y2RidlAwUEJvcnFLYGJlfH1xaCkr
JkhtZjBoeFAtJCVxMFRBfV5uYExQWDw4ODcrZWM5S2xMajBJbVkKelchUks4PG85LXpZI2xHKzJL
fGFeRiFJP2Y0Kjg3YCg7UlV8YU9WTVFQfWBoKFBPeHtJY1VVfWpAPHY+M1NhZkBaCno/QT5xTllW
dFhSYkl+I0I5RlFSOWBAaEUzJXhNbjFlWExEaipSKi1MMG1QUnFjJFEzb3FeSEB7TTN9PG9VdDZI
UQp6THZre1R7cV99YSRWSWlARShPREh6RWcrZkY7PlUzNnJ8IWlDcW9vZWpPcCpHJWZxZnA8S25U
Y3hpUW4zTWlfMmwKelc5OGhXNiU8Rl4wNntxcVR3RlJNMEVVREpNdHNvWSlDQHtXR2ZQYGQoSU93
KHNzWko1RDYxJlNrbDFuMjdVV3B5CnpMei04P3xLJHVqI3xxP3pQVHo7dGtPZWUkZFV0RWlfPFB6
STR3fGJSVVA5T3ctOUxfaDVSdj9HKDJDPjZqVHolXgp6ZzVtcHw5JmhrYzZqcW8rYHAwNXRCaEhS
QE0mQVdveztXak0jPTdie29jeSh7RiEofiFaZHlOezRJaDd8YDlBZFYKeiNMcUNmJDBZS3tgaklu
amU9KiZHVmwlNkNvMEFDaExINjtNKFk5YCFHI1JuZXRmdGo7c2hyY1QqOWVYeFVzaGBeCnpKMmtt
Xnh8P1BscGklTWotdzNoRjl5VjEwVUMtaEE+QTU3TTgyVWZxZmVkQDwyLUFNPVJ8bz4hVmV2MEhy
ZWA1ewp6ajRBeFJ5bnYlKlpfd3JoUHwlfEtAU0ZxPkB6Z1NLaT1QS0xpQU1Zal9sXl5Da29tMjdo
TXprbUAzbCpqRTBnQHYKek1ScFg2WVIjSzhpPVojQksrKGszZE8lVCNqM0djO0xEdDItZldZT2xT
NXAwRGlINm5qUy1hSChqJFZyX1A1V3ooCnplSU83RnZEX0t6QmFKckRFcUsmaS1GMTVXMzV7ajhM
aTd6OSpYaTRNZTkjQk1veV8zMEd8R2U4V3ErU0tLd3M8fgp6eUohSU01RXkhOUp1QjhmKWVMPTR4
O2VlMmduR2VYSn5RbWlkPWY5USNfTCV6SUprVHxOdGRHWXRqMmgjOXs1SFEKelFhdlYzVnpucU9Q
YElzcVMrWDhrQGlKT3s0ekdxbmpeeHdzbEYha0JkNkVnejFJbUNeYF98TlVOQHJvWitpZ0UlCnp4
b2ZOZlBjbD8kQl97eWpkeVBPSGtOJnt9TnF9O2V3c2xkU3N+NiR6IXQ9cFAmJGhCVlphZSQ1Rm0/
dHZwUGh8Xgp6V1YwNT8pMkEpQ1h0Yithb0U4UztLQW8/PzlKKS1wMD08YXIqRWVAciNNaVQzMTto
YEU9WDcjTFAyfmVkUjNsOXUKekROa0BScF9rZ0V6cGZvY1FGRXR+cVZCWU5SQkhnQmRRVWF5SmNU
Z0kzSENleiQ+SlZXRExFR1NJdENKNkx3eEk+Cno9Y3U0PXtqRitBYitJRUhwOTQpKkx7PG5Jdmx+
LWpCI3woaV9qUUchezZEckRLYiMwelpvU1Z0MnFgIURId0c0dgp6Tk5pV2dlZkhVYmZmeFlheTtI
VXItNVMoKldvcUlTZUZreG9HJGRoeGBoZXtTdHYzNzs9UVJ1cUI/LSYtZnNffTQKenQ8RWMpWk5F
aHpBeDZNWnZNRUlOaHpkZkFwb3dhKj08TihwOG17dkwlRnE1TlZFU1NtZHFCPHx1ZilBSUIhJFBT
Cnp5SkR5aDluM0R2YlAhKCMxalF6NkJsYm50M0kxalhCWHBxMUgtN0JKVnM+TCVCNiZhaiNqbD1M
MyY1UVlQVXkjKAp6VHhQRyVDKUpkOD5qbHlFZWlldChUVVFVb0RadThmY2kpdEFUKzBmfiYySHdj
LTIlezFxM2dkaSh+bzlPeGo0dEYKekQ3UT1rIypPbD9EYlc0ISQtRyhkU2tWfnFeMkdEckY8OHti
PV9VKlZeKiVkVT1FZn1rXyQ/fGk4VGBwdiRLeU51CnptOCszJl5vV3d+Jnsqb2xtVDV7Kjd8SE0z
VEwyJD5sbzdyQ19MJUdKTzswRz1PWH1pQG9tK0xCOWxLcFFoQHtJPQp6Y3YxIUY3KGdQd3o8bFot
bShYUys4fkFLWFNpMEpacDJ9QTdlJVZrVVY/VWs/aTR8e3tDV2lqVWRSMEc0cDkxZWAKelU/VVor
aFI9JU1qRGQkMmY2bEw5K0ttRikrb0h6TT1HO0AtKVNRfjd7PW01P2soT25UV2p+RUtpWHJQKlZW
IXJsCnp3UDB8Zndka3xfT15+aD52I0dWS0V8ajJEM2hFaCpHbnBJfmkya3skRWNiVjxtTXRYKGZN
QT8xbkpDX31ldUB3bwp6S3ZIRXpqYGhPVTwjPyhXZl5GMkdQY1ZKXiMlbm9+e1JDQk5mOF89YSNu
VCshN0ZzJn1WfHZlYHV+aHt0ZSZ+M24KenBYSUgkKUA/dyFQTjZQWDwmS2UmZ3BHSlRaeEFgND1y
WSoyXms8Ql5wfTA+c298ZGgwZlIxVDJfZlArSk9xT19lCnpAPCZTI2pAPmZAdmx8JS1JNlJYMnN3
JkpqSDJUKjBBZ2B3RGNkZT5+ZDhhfTNsfkhAdkk/Rz9SakhJcmtlcVI7Xgp6N3hDeXBFREJydURj
fGd8LW83U25gNUtmcyZIdzhncUkzJi1ZWXhfdSkrLXp0KU9sXzR3QE07Nld+PHRUQl9lbyEKemk1
LSVIe2I8VzUkcng5aEJTT2BlezJ3PmtmdlVQVCZHP1R4V1R6WXx4dSZlZjNBfkUlNmhvNy01RE5j
I3JEWVp6CnpQcEIrJU47fHNNQ3VIYCp3ZT9IR0ZjUW08TGphbTxYIXZnNnRQbEdmd2FpM2laaHtl
MWdFITtuazV7ezUqSVBKSgp6aWteTShrRF8qQnlMUzRDUmd6SXQ7KTZvdWRLaWlRaiNUQ2VBO2k+
e2tgVz9jU21RYDxpMlppVEplNTltdlRuKiMKeik8OH42dGNUUF56SFQ9XndlY21zd2l4VzIlZDxj
JFlmI19JI1F2SHN0cFdwciE3PHhSTGhlWXdMaUFlJUIwcSQoCnpURz1za3VlTThSbjtnNm0wTUt7
QXY4YWo2cXotTU1nMld9cTBLaFhLJmhPYlcoOG5hVmo9JEptdUxBMyRUSCtAIwp6WWhXc3tveDVy
aEs8R19PKTVoPlNxX21oUUE1N21eSmshcSNhPTJIYj9xSTkjKXczVWEjKXc2UClzamlyTDAjczAK
ek1Rfi1QQmJ4Wl5uMllfdj0qRDtzQn5AaHEkLSRvIygwdWN0ekYyalN5UXc2QWpxeXB4aGUmLWQ1
fF91KzFkbzFVCnoqM3h5JjI2Yk0yUFF5d1JQO0ZFMGM5akM0b1dnfnsmc0NzbCVfNH49QXF0Tk4o
MjRoMGV4MT8wT05HIzJQZVkoPQp6RiU3K3p2aiR9WWdFN2pIRkk0fTlYRFFfTjxBI3d3eHlEJmFD
cyVIYTU0TzEqa0woTjNnK3opO29BTklgZDBLelAKemN6JHo9JTh2e1BIRl5NRWJkJG11KndFZV8r
fmUlOz8tfkRjUWchOWRZJU9+MWttcnxzJTdDTlJgMD15Q19idWZTCnppOX1nSiV6elNBbE02e0Mw
JEhTcyFDUk9CSUFnN2VFVTdMXiQmNGRaZ0BKLTxTbjNNd0N1ISZ4NHt5bFFQIUdiZAp6bkcrQik/
WkYzdVJsOFN4cVZWVmpwe0JLZEVmPj5qN30wRkBAb1hsWk8/NXp5SUNicHpQfThpY1RsSTU7VEd1
V2MKeiZkcEdWN2Q/elM3R3Y5KT1fP0d1SGRCLUJeJXc7Y1U4X3dnK2JKSWkpO3NHUmRJXy1ASHlu
P0hyNGh7K3JUUHhmCnpuQ1pIaHd7VEtHbktaR2EwPkMtcDdPMyFwR0JXYWc2RTB0MWxVOWhuPmJK
fj9JVTlPVXlPKiN+Vlk+QWNJUXs2ZAp6aCt9TX1xMGBkZEBxTV9NO2dvWWtObkQlUyFMNkNBWEp1
aGJ0I1Q7Tk9LZU8pckcmJE5pSm1UdGo7aXVpK2RUKm8KejVtMj0pNSZnNmF6N0NucUhDMTMkQ0d6
dFl4aktLa0BfTU9VRElYKEZMbj9BXiZkbXQ9e0tse0ZiSTNxVDB3IyYkCnpyO00qMnU5akArRDlH
clVlPDZ8eS01KSFKZk57eyVPdHMjV0Arc2N5QmQzMCNPYGtOT3tHPj1VRnVIQDFzaXFnWQp6JkRL
VCpJOFdDTDlRbShyWSt3Un07WGk1b3V2cSNqTF9tKEs/TiZmIz0oTlpDcm9wQGxnP05MLSVpdElr
ayRTSCgKelJPeXZCemNTfHBxUitHSlojc31FM2c7fF5hP1RRVU1EVyg0V3AtanlxOSVJb3o5d0d0
JDd9cyFndkJ4bUgrQHV2CnpxWSQ2Uz5oP0x0JVRNbzM/UGhKdj88YUwpJVMxPDMyZHxvdmNVR35K
T1orJTZAQzNaVUJ4JXdRYHZMYlRzUkYqJAp6PGQyaH5zI1BafDIodHF0UiMqOFR4YS0lflNKNWJY
SFQhRDUhUy1xUDI3fms2dzROVXRzKGY/VEk/SDkzdjFWcWQKelFgKHRhUzZ5YiFfbHw4NWQ5PSUq
dXcjWEpBblJZX0o9eG83KUdIdTtMailoT0kzIXtNP0ZgMmhwLXBgO0lEaztKCnpMYGlDU2xoMDN4
U0leTEU3am9XI04lfmY5JSphJjhMTnd7Z0w5M0NfTWVKZ0xeajVyWkp0Z1lxYkI1I3NsY0p+OAp6
d0llMSkyckskdio2PlMkTTc/PDVKajtac08rTWp1SmclV0JxNzI9JT1IZTNMb2RoSVgzXjV7ITJm
U0YoPiZ3cGcKemxTbm95QmE+OV9IWHY8JSlrVHt9cXFRX00rNCUtRlEzYWgjVTxjQntNMj5XPSo8
Zn12YDF8YGZqbkZeMjBEdE1ACnpIbEREWHdUPX1Xc2lfRn5OblpLfHFjI2xqJW9tREtVI2o9MXd2
PGh1VzkrNmVzV2t1dmdtUyM0JHJaMColblUjKAp6e34hP1UkcTF5UGtxdk9uU25FbytmcTAoSjN1
T2B9XyFKMHU0Nj1BWHFXWW50ci0zQEooNSklc3BMMDh5O31jRF4KejwzI1ZeQj5KU2k5Y1FsKTtp
cDByYkd+Xm5jaHdmfEx3e3k4cFB3JCg9dF9nViFZNXVSQ1lifiQ4Xj11bUlLUE43CnpCYEdNI18r
djRKUX1ifntwLT9CQSlSazBIJm5tbFEyISRxbSpMbWsxcEpNIVdxdnNTeE16MTg8a0ZMdkQ4TzlA
bgp6PVA/SEFBS21qSTg4WCMjOUBeaStrflBqWktranglMH5NU15NTm5ZRTMoe3lodEEje0oqJnRe
fjd3YFBCN1NUTioKemshYkJkdUJkU0g/OCF0MEY8eVp8eCtzTEJEVUxCakpJXkpaSExTK3c+UCFl
bGA0VCF3Kns9UGtTflo4OFY8VUdnCnpeUm5XRXRwPU4rPj8lbmEkSypjTHdyeHp+PFptVlBvNW4r
cCF+S1l7UH11bC0lfU4jTSFmdEc1Z3RASFBpZnxQQAp6THd+MEopX1B5OVhhSmhQSTRSPjQhTFo2
YjlIYWdDb3leQ3NmKXl1cmM8M31td3hGK15ZPFlTZDQtMThgSGtzb0UKenVEcj1nU2E0d0hQJCEr
T29gNExZQDNrYWtHZTs7PG1YXzZiTnpmTylmKztqbCs3YHM+b1lhNnxHJUlFWExjc1M3CnpIY0Fl
VG9XdE48JFJ3I3xXP0s4RyF7PVVffEkqdjdxTkJyMmAoeVdLdFZ0MHp2RyZYZylEYjVnOW1CP1M8
bEhGbAp6KDBDcWd1ZmkwNm1CbEp3KylZZD9GKVZIa3JqVEFIPj5VJUd8NGh+Uk9TT2RCOD9FbFgm
ZlhieV4wa1VmYmhqRUgKekt8dFRgV1N5TVJMQW1Rd3pkWVlNY3ktLUkjcH5EVitCUjshbFhnakAx
U1JUU0EpaD93aH0jTDJMP29zX3olJXJxCnoqT0dmKU03M0ZSUjlwe1IqaFZnMkRGWlg2PlN1S3lq
bDtWRDFLTXcrMSp4fXEmOUZHWCRSb2ElPn1gKDBgSHE0LQp6Z0FrU0M4X09DOHduczxpdUNDN01S
aWJUQUZgdHoqbSpLSkJaKiNCPipeUkB4O0x3bTlCeHJwflU3NHJfX0hQP3kKemxpMih7R3kwOXY4
d3RqTGBIZ3ctZ0NOYFAzMG1aUyY0XjJVcUo5M19XQTw4Jlk+JFhKNncwTXQ/flpGYDRFMjZWCno+
biNuNDtIMW0qRmVmQmdhXjlkP08mMUxTRH4xNzcwMnIqZSNyWVJTPX5+bEY8PjF8b280V09SVTUz
RWZEbXFZSwp6Kjl2KkNaSzFaPHM5MFkyS0NaZjdyc0FoZlB3ZzZ4U1RBayZVeXhUWGdaamdSbUpY
X3Y1RSlvVTJmQSMtYl80UnEKenpZVkZSKUNPVSZ3YVo8OV9ESCZETX4yVD1IXkRDTUdqWWNjN1Rw
bV8yfVo+ZXJ+KSRINDJgbEAjVD4+K0oqOXVGCnp2SkhHdjFYLUM+I1EzJlRDbWUpVV4zYGo4S3Rw
YEpGe1UyV2QwbyVpXiVnem0zJGJSJE5AaG1IWDJXaGxNcispNQp6ZVRoVTB1I1lwLVB9fVdPaU00
JDRtV2UtQ2IzOzI8eSRTWFBtQmZVU3ktRER4Pjt4bFBgN1deYWckP2BjdDZvclAKenhQdVJuNXd4
e3cwV3VLN2o7WDxCdCg5Szs2TzVSMDckREtxI2VpfWRCdnlsTTlkVG16QC0pYUZAcSgwdkJ9VHdZ
CnohTm1HSlRJU34lME88eVA+bWJ+cys3VG5aOGVCNUlBIWdaUEUqSWBPUVUheGozSXxNZDt6TzA8
Rj9QQj18NmhBdwp6OWFkISVeaTNiU3lGcm18bHM9UmdmT01CTUF9RWJDOTIhQUVreColKlEkbzVz
NnI9PXsyMF4reF50VDd+Y157d2EKemB+SDhnP34/eUdkKjZHeyUrQWl0PyMldm4pQGJlTjFWS3kx
QVcjSyFHRjsxTkdFNWkpQn5MPj5rb2JEezAhSSNNCnpSSztzcnF1MW1rbmx7dU01MWtHc29sZ0NO
NTBuOHxYSCg1TWY7SXZwTCFKQ1JKVnpoQUFMQmxUNVJGRzRjPX02Wgp6Z0pucHFLRGAmOTYpVHV5
YUEtbjRtaDU8UHZKaik5P2FHOD45X1NAe0I2bEF3VF53NiY2QntYR05eOWN0ZlNJO0AKekgoaipU
Oz83MkQpPVpINkRBRDNmamBDV2NVKWxjRSRCaVkqPXZANDkwamgqfmljSXoza1U/ZDE7fSQoaCQ5
RUcpCno/ME1TQT42dG1Ge0ZsNktvYXVWbkAkLUFxb0pFVDZAemcxRTI1NU5uezklRXFLRDVfZiZL
QlQwTXVqdEF0fHk/Qwp6SXgwe1Y9aWIxMTxKdG88dlNkT3IlMjNqfnRXRUF6VTNwckpSRHtRZkI2
ajFybnFramF8NTxyUHdTMlVmVmZzOFQKelZCV1V+TXVXRUt4NiF6R0p3cVBTLU1ab0dtSFc+NG9k
djxGWG8+ZUxoMSk/aWleJTJnR0lwNGtnKE1WRmRrMEJmCnpHeTJSRjRnezlJZ0I2VHd6R0JIQjNv
NTlDTmVTSVk1dXZqMUpTeGQpJEk7ZEVjamYmdFQoP1pjUUgrVkloJkV7WQp6QFo0ZWBSPkZabG1W
Q0xEblBUU31Pe0BUWWJWeFBuNFl0NjZabHoqPGxWfXBOZGFob04rfk0oTld5Q3JLK2gocHwKeiRi
LTsxXlAhRFdBNml9b0s3WiRgQ0V0dHBGQkJNSD5hSUJGbVBhd0x7MTh8PnZtVkVuVzUlK3N1c25R
TVgpKlBSCnpEJH5zdFRPelBsKEhadF90QWJAZ1owIVYwNG9XXlMoWSZvK3pIVkNgVilOQXBKSHpk
WmpVdmY5clNgMnBXTlh7bwp6Mmc9JVdiPjNtKyZzKFhuQ3YwYDtLfi1SaT9QM000aFRAa1owajlL
ZEp4JH5+Kz1Ua0kmQ2ZTai0/STRoKEh1dXIKek5zP0U1UDhYbzQ1TCYtdHh0bUViXnRSKWNYXkw4
PW9vd0FlZGBENWlTQHtJPz0/KnJ1P1grbEFrQGhPOVl7a0pMCnokVjEpZkZ5bU9LeWVRJE5BT29p
Xi1VXkNVLUhyNypPK3FTVTJGc0xjeyF4NlcxfD9IY3g7R18oOCtUclFaYk1wNQp6MU5GVnk1WjRs
Z3d9bX1ycEY/QT4+Vzt7V2xMOzAqbCpBdXBtcShRPTZ3dyNpM3J7flI5JVdWQSt7UlVXQn5iRSMK
ekB3a1hmaVFJa1JVUDdhV2llIVpmanEtPmo2Jmg8TkUoalVpVmt3cko2cVhVMDw3cnRAMHFIX3hH
ZWhLNDZMNDY4CnpzKThVNnhqSispVFNCS1lkNzxMSWNrUFIhR1k4I2RPNzczVFF1dz9pJitkTlBh
VklyMz5odyFyb0lVKCVGVil6Pwp6aylQd3I5bUlgVEoyTSRTeT49UzA7LXV6allKYDJWbiFlM201
WnJ6OUlSeS0qYD98PHlIZFJqakNYRkNHeTZHUDUKeklFcj1MYno2Q2RoblYtPFl7d0pRVXpndFhG
YCFBe2FCb3U1VmhRY0E9QXF2KytxJmo/e0MoMkYyZiZPX0N2VTZxCno+R1JXfTJ9eWxoSS0yK0NO
ZGhIMnVjTT19dCRxMkxwTFI/e3FXViRWMT1IUHNzPzJFdmRyVzMkO3pYZnJyOFRUbgp6MCE4ej8p
VDRDRSVBYC1JRHs5I05uI1khfGAzbVAySD9tNTJHRHpaSVNLJnMkdUxWRUtUVEA/V1JuRipmIz9C
figKej1TblFKcVpfQTFxe3ViRzh4JWErOTl3ez1GJXxpaVZXakpzVzxuRjFlX317Y1RyKEBAOCtv
eTE8ZWw8UnNfO1Y7Cno+MUhXJkw2JUIwTEVsZ2EzZyVSNzx9Kkh6cTgjVzVgdzhpXmhmVDw0cDJf
cEFeX2VvPDREQjZMa0I2RHxOWUM9egp6YnYtfEI7bk1RV1VoJEhwekxwbDVnfH09V0tWb2plVGxW
MzV0UHhAIzUrYmElcW0jV3NeYG1zTkcmcktURml1Q1EKemMqVTlYaG5jIWd4b3I4Vk1QbXVZSig5
LXYyQGdVYEtJMjE3ayE3RnZlZzlHdkM0WkRCVGxVIUtRQCYjRWM1Wj1GCnpJVnlkb1RLcEduOz5V
fCQjanVJVnlCe2AqYko1OStwbERhTTZ9ZDV4TUkpIWtTZnglQUhLbk51bDtvQUc8Vj9TMgp6TEF7
eHBMZztAa0pwMyo3c1hWQ1RaeUp6NjhoeT1vUEpIaW1oKklsSUleMF41REF8MWN5YlY9UmZyPCgz
QTU2WmkKejQ/P15oeXtYZjsmd04tb2IqQ1lsQUh+JiMyY0luczFqbDVXVmwmazFEV044RkNWYW9u
c2ZQKmA+O3AkczJ2UFY1Cnp1PEc2Vjk8X1ZIIzltJFAyNHs4JFAlJXdWazNxRnNhbWJhRFAtM3JB
Nkd1YG5yPnspakNRJUZybzJLQDx3VDlwYAp6YiVAVj1jOSZ3KW1NKVFAZ3JKeV9QfitwaGAmbzRs
K3Fraj8lNTFncG9FYV4zUXtGI29vP0hySU5BJTJxKig2UCUKemJrWFYhI3FXTzxJJTlnJmx4MGlY
MClkI0xqJHV5YnQpaEw1V19fK0FDcSVzbzJ9VC1CVjFmU2tWOEs4Pj1CcWNlCno+c2xTJTYjcT9G
cGMyNCpOdSo3cEM9WTdBK0dUWE08d2Jgd0NoP2FOIUB9alFMJDN6ISFESnFJaVM0ITQ+IUxifQp6
X3l1b3hwXjNyNWIoUHI1OF8kM3VTS0JfQlNaeyozITZXUzJRUEdEaiNZd1dNR3t4PlVhO1RXcXdA
THlhNlJwNWkKelE4Wkp5VGY3bkxOdF5RRTRXITs8S14pPCtCS2R2QndVZFl6JkYxdWk8UFdrbUtQ
c3VFS0ZKQk09cUZ4Rmk2QzBlCnorK29ZX2I+eH1iU30pM1heeFNzTmUkUlBnKzxEWUwmd0QqMnZo
e0dueGU9MlFrejA3e3hzc2JTcm4tUzhRQiphRAp6RSFucFNSdk0ydXJDMVhrMCtMRGJuOU0rOHhl
cCZybVJTVHczSz1wNG5UbCRnSWdeYHElUHBwY0Y0SWZ7PmBEakkKemVpeSMyKWshdiRQWURYaHlR
P0tVOWF3UDF4fmhmN08/fXZxLSk5enklPGVoQWNpd09WclMxQSFXa1krYmR7P1pYCnpgPkVhQm1F
VEkkJWo+cSp4b1ZYVSFqcy1UbnUqPUZDViRMbHl0Xlh2P1hYdTVfdWY5ZyQzOU83QU1jcm4obnxG
Ugp6b040ez5hME9wfG5yR0MjTmxMazlLNVlEeW5CQkREOT99QVRLPk8yJk0wPzx2dn0/VTR6MUU3
OFpuRFNoUzNSQjkKekB8X0x3WEdZX1BWIVJoakRTXyR6a0pgYGVJVU95Zml5KXNXV0trWEVXJCkz
Vz0qQnx2eGhFZGl1SUZMITs8MikoCnp0anM8V25NZEF1WkpxcHMxT2tEOHN5O2Bic2pvT2hWU0Na
SHkqNVR7WWtOYF4mYyRGQFl1eXd7PHtINy0rQVpiYwp6PnNIJiUpJSp5XkJGVks2dHdyYkNvZWFn
MHlYJkNEYEhpR3IjbnpDRGwjaVQmZiM7NypOcXE4eElXV0F+MWRmI0QKemhuRGUxSCsrcll3NHdH
RFlqYld4M01ySUJQWCN8P3VQMTFLY0dtT0xDYmRzKGo5UWczb0BOTm1qYWpPaVlJaWg5CnohX3pQ
OWgqfnVVMTBDNns+VUhackh8Si0pNCooPFI3ZXRhN19MbWc1MzdnfEBpaT5MNkBueUo/Yj5YZCpg
YTAmdgp6bWk8V2BNUWRKa09IJHZUcSNqbTNHQzxERmY2MEhtb0ZRelB1Nz1HPmcwZmdiIz4lPVdD
ZHdrX1dpOU1fTDxQI2cKei1eX0ltTWllX3F6cyQyc3B6MGE3ZGRyUEoqVGN1UXlEMyt+VXxlMj9E
fF51RGdnLTREYyRiSmZMd3V1WlVRRCFOCnpnMSpkRlBYYjNieVFwMCNWKGBYPHtGajkxIUx9Ri1a
OVgkRiRUIy12I0pMNGgyVnQ8V0ZEXjxuKXM1QVBVbmI7Rwp6Xjd2fEtWWVFaeWt5Z3EhWXA3eTFx
QXQhJGRENypMRlVSXkFmZmRDcHBEa1BWKlVsLVE8Y0pudzFHaFZqI2dtJWMKendOKHZecE1rS3Ip
fXhpeGxGSW5CaER4QFE4bldRYGp6JChhaXkkNjhlemFLJSliamcwJiVmZlhOOGpTeS1kITxmCnpV
NkUxcVhuKH1pcl43cDBgQnI3R3BGTCZeQjs0VypPa243dzBtYHAjOGA8VExUNG9yS0hqTE5rWXg7
bz1mUjAmawp6UEohcXd7Z2Z1ZmpyKnpuZEElPzkjanlmQFlIdG5MMHVfSkY/RT5+X088RWcqLXI2
XmUoPmI7Z0RPKUtlKEdxTjQKekNNXjF5M3YwbE0hKEtYWTkrYHVVKT8/d3RZbGc/RSg7dlg4Zzw0
UUMtVkFvQTRleCZhZ3ZjMz9naW0heD1IdEk0Cnp5YTRzeFBJb1R5QHs2MjZtKF9CZmc8R2cjbkpC
Um43OEFwLSlxYl9GfDRHQzJTdWE8N3ZMd3AmUzBJMFFkLURhOQp6N1FYPElqP2ojdnp3c1Z5KSpm
eSRGUD5nYHAxNntXWUdNKSpySVE/KE0/UCM4WjdxXk9oZDVmQWxxaTtudGBlKDMKemUmO2JDPHV8
aGtacldpS2Q/PyZSYy0kaTlOMUFDYVQ7NVZJOHk2Z3FBK0gxJllfJiNpPEwkRmUlKE9+RDU/eSFx
CnpzSiFsMkJMSGxgWGxFR01XWDF+QkJeS21hb3N+KkEtK1FgTENxe0J9IzkmIzQtZmhoRUAld2ky
LW56VXR4ZnhCUAp6LW1xdE4tNUZIYmxhSVYqPkVHSykwU3U8bFYlaWBwIUwrY3pPYjJfRT5uUTFg
MUpEdmJZKUY0dm9rZDYycSs9KUQKenZCYjNadUkwbkghYTtpekNIZ25IdHBYYVc0dE1CUmhDWTBL
eWg7eGFzM2gzNkkmKmoleGA5Jm9gan5NeCQkPWliCno7bE9pSF5mPFBwJTUoTVFtJmFTczVteGUl
TkBvMzNpVztqMlNBMn5wQHFVQ0g9QUx0blhoKXBwbTUxfkJkfFRSJQp6MnBrd1ZPenI7KUBWUDFx
dmZlJXgzcUFiKSlaTzF0P1NrUzxVfG9ZMEtCe01LeCV4aTdxYTRMaFFHYHpaY0VwTnQKelVReS1f
e2RjQFc1NmtkRmBBMEkhR296YjAhPypjKW51TilnKVZnfCM0enhnMHAodX1zNGl0SllXKXlLcTBU
NyVfCnpVKFBpMHYpTkR2dV5mQEt7K3JXUWtCbyg9X281fTE0X2U4IyFeM0l6VnBUSlYqRD4pVD80
XmNfS0tzUnFNcG1mZgp6bGpNbUFlSzhkOEY9c3JlbWYhRG1jeUcmTGgrUjdAUXFxJn5haj89aD40
VXhGbnt7VnktJHJCa0lZcUctLV9BZzgKenMzMT83SW85TEkhRTN5QiMhQGdrbz1UMF5Hd2Q3KU9A
a1VqQDE3ZHBAJWw0fmp9dmRLYzhZdztKdVJfP2pEbWteCnorM1V3NTRoRTZreG0/MnVVJG89ZFRn
MF8xLWhOc0M2MWdCPUErNWhQMWFEVSRiPkt1QjQmdztIIzhKMntyb35IbAp6R3RTcj5tRFZDXz82
UG5rSkBWY0JtSDwrM2ZFa3ZpbH1fMUc5bkJHdj1sal5yI1ZnQzNITEU8bHMxaX05akV4UTsKejMh
QzBhezhsdGJZSHZWcFUyVWpVb3kjeVV1QG49T14wZVJTUm1CSzkyUkpxZDAmbWtmJTtYbSVBTE4h
Nj13cW5QCnp6dEQzJVc5cn04LVVhbz54ODx0a19IUEZmRWJmOGEqUlVBc2JxMFJqKUo8Nj5ieD5B
TCNVaXZyJl55KzZHUHpsWQp6WD9tUlh1JiVVKkpXSzdTcG1PYjdjK2x6TVdRST83bj9IckFWWkEo
fmVhXkh5eUtIRCZmNnxrd1R2Ryg3aWNpRCQKekhANC0qWD4/QE9weXMoOHNOSTg8XmVfMXExMGtR
MndMdmp8dnxYellMZ35XVFZ2dm80TitVNlBqOWZ+fm1mK1h5CnpndHJ2OyEhN3JAdiZnYlh4WXBC
YVhvZm5TXlEwNmpNcWJeSXkrTzMyLWQzRFFtJTM4bTxtVEBpdmpHcWRjfkxjWgp6VzVsUT4rZmgr
U194KEtmODg9U21gN0NXUlNCdyZMeklCJGImVyR8dS1YaT1gdVc3e0RFNTdgaWxjUUpEZktYMD0K
ei1pTkcqWVdmQmRUM3NSO0IyfDcoaS1OM0tyWkcpbWQ1flg7JmJLSyhGPH4td0NDS3dWZlZRRk9y
VDBtfXltcCo4CnpNfW9XJWlGPkFKdkJpdz9RZ1hEV2dHMU1KITdhOF5kZXUyJU1Je1Z4THR8RWJP
cDZNViluUnU+b1ZJX2FUS1ZnMwp6eFlkYmErZDRXcEdRfUtkbSgoMn1sM0JLKStWOVZUTE10USlV
fSRSWTJ+UD9jdGh7fVk5e3ZxMUZFVVheenpePloKek1kcyswZ1ljZEpQKGY/S0pvbjBwaHh3eDhV
VEl9JkF8PTwjYEI0M3dNTE56QVhTcl9KbmF9Nj1UVGhKXyp5VyU0CnpHZ3xTekQ7cGR5PCReN0wy
bD09bUdFfVA1ZTFmPVVMXyN8MFVRRHd0c257Nz9RdjliPmxVd3VQdGMjQUtWR35kUAp6VURsWEl2
VTZ+KE4lPGc9QlJoZklEITYzRktkPVJYP3FnSjZ2KU9RaC1DTTFvSF9fKndoZzxUNGUoViFTKCE4
O3oKenI0RCFNRVFsMnlDTXhKXjNVXjU3bHVMamBoZ2l2IStIJis7eF57JF9QfF5JKl5+c349amFB
OGIxaCEteUNubm9FCnotOHBOX1plZi1NPiRkeUhNQ0luO2hSbXZNJk4+V29DJDM/QTlebzdwUFdO
ZENseEElMXAxKDxCN3xiO1ltMmRobwp6ZXVxZnA3NEN7e2p4emFSaG1SaC1ZSzsoKiZ5aiE/K3Nz
V3JpQVlTYXFPOGdfciZRNEZAfm57TDRfNzl7ZUotfloKekVSUj96YFcjcy1mMk5tTG4xd0o9KFZA
KH4/PiFALTdTRkRhNHJwLXt4YzY4KipKbzwkVVQzRlFLZjctJWlGd292CnptakFLWmRpOShjTWlq
KmZse01TWFFtUXR7TWsrTD9wMlpuT15helpRbSZ9RTI7dkJucGU8ZFc+cCo0blo8NDNBbAp6d0Ff
dkhBTCRpNFdoQ3dwZkE5cjx0KG0qNVBlMilzUEFqKWZhME9lNGN9Q3M0ZyZ8KV56JFY3JHFHYWRB
TiheRFAKei1rMFkpbG47QyF0RFN9T2JLJlImOE8xdTlKblNSaVJqWFYjSUpHKTlqUUJlSlclQ3Z4
N0xRM2EyOFRLVjF9JnQ4Cno0QXM2KUU7fj99bVA3SHVEPztMdUFUJFVjZ15gT3xlV2pHezE1QmVh
bj42eiNiQGstOEVgeFdxcm9CUFpWPD84Iwp6djBRU21AKmBEfV9MMG8oMEdSZCo+UXxZTjVwMXNk
Ml8pUTI/JjJtQ1N1SEskVzs3QkRuUnxGJGFuNkVLKnV1Rl4KekpyVTFDVXtUTWlITkNtWTQ5Plp7
KSUzREBrUWBfMjdsVy1hJVJkLUN2JkxsNTxxP0xeJExsfDJfcCs8WGFfN2t4CnpXSi0oOSZmRChV
cCZDXkFqNX5CSTVuaW5VJXRRTWo7ezBqdCFHeHtnSzA5MWF4MjtXWDhKdzRPX1E1P0FtWUYyKAp6
citIanVJKHo8OWRwWSNTbSl1c3I8RG5FNlJSTXFyWUlRWUwxLUVYT19MP3FWKnhsZiRVVGhTfVls
ZitCa2hRUkwKejRvemdRRVk5dDxFfHNYWG91b0k2RXs4Z1RnYU9gSnstRTs2V2J9dGdpaFhOVUxI
NlY0dnx1QUMqZiRsWUwyaGRQCnpoTjtjYG4+aC1oN0Q9aClaMm1oejZONj5fUD1oV3h5JGd6NmlY
SFBxKCooXiV0Oyp5OC0jZy0pcVFOQEdAQzBLJAp6PytqU0o9bH56WkM+VlMwSXdLOXMqQUg8I1BI
RkJMekYtajl2diE1Yyg1e0lGJm1hdlFDLW5KbWFSQEY/akhhZEkKemh4KCU5ZCV1SVhISWJ1YFgh
Y3FQbWJQOWtlKD5WS0hAQXo1NDJoOzg9QG47PGViJTswRTwrLT5ieWBTMzNkZUx9Cnp3MCo2OFIp
MG0rbkdaTGFIMXY0K04pbFpOeT1BZi1ZOUt4UGpnb1l4QGZvJGEwNClMdVVTK3x9UFpHT0lNdl5l
OQp6OEBNfWF4O0hmRndXR0QrR05DQnY/Xntxdj9CdGM+NmtKQ3NKWDErakI7STJMTFJyeT47biFG
QjZobkswXm0xIzgKejNLRHlrR3Z7PkpkcFJzc0o1VyNnejNgMTU7YklTcm4rfSktPStSMkczeFpO
fUJfJlNwQklARnRxVHVxaTI5QTM7CnpfZ3g7YkxPcER7Tj1wJENnXjY1diFrQS1oNU57VmIkZUdU
bytJMTJiMH4odz9EP3dJZ3d9Z1hvbGhZPkZIXko4JQp6QVZ3Z0xLRFFFWjhrcmo1Wk9WRE53aSp+
TlBAUFBiSzx3KGFKRGRtRm04O1lEY0lSRz1SRW18RzlrV2stOUd4dFkKelFqRVJWIX40Q2ckNjNx
d2VMIVMwdm9BWSsta3pUcHlwJTd1ezd2RExUZVhjdlRDMnQhbjt2eCh2Nmd1YTlXSVA2CnpBKmFF
SXUxQyQ0UkdiX2x2UGpiX0ViKWZ3Kk5JQUFHUkt7bGp1Nlo8d1g/IW9JUVMxMyg7S0N5dX1sbCE3
Q2s7VQp6cEhrbW05YkslTWVITzJvVmdNcjJCQlQ2fUdFak53TUxUQTlFfDs4bFB6XzJlPnYqLUFU
VzAxIVBTfUNjRX1AbWwKemE/QjxDU0B3cSlxSVNjV3RZUWZwcHM/JHE/bWNQUFl0TWtzY34wJUhV
fHBVYGFLeEhjR1o7fVJaek5WeGw/NUgqCnprYipPJm5LdnQ3YSMqfSpSYm19JSVpP2stWjFLbEFl
ZEY0TSErQj42Pkhma357NG04PjRXaHk9OX1lSHgoZ0psMQp6USYwS0IxV35aKFdydXErSDFhaV5J
ZXhDWDsxbFdSMCV+NVpGSj0+M0hYWWtMJHpPdzI9cFdTdSUzeDY8VldMQVEKenZIWnAyNTt6e343
UVUxZTZQdTU2R3NrYTxTaT41NnkofUAwUSNlQFp2UXcwTT9FbUB9RUA2K2hAVXpGMFRqVk54CnpB
MWtLakc5R1plYDV5bkkhWXlXcnE5ST4+SSZUcEIjfmY2P0hueFc1eiZmfHw/b29Sa0shdSY5KnIk
bE9xZFIkVAp6VFEmMjdiRG5jZ0MzRDJDOV9QbmxyX1ZARGUyLVYoNkpRJXdZP1UoQnNffl82RGZV
Z1M5MnBPXkhBIWxrQExCbmoKei0+SzVTQUZRJVIhWihMcCFEa0B6LWxmTHooWHxWdmA/K3d9Umow
fFZqQHhSTlZ+fjZ+MjV5QzdfKn5Sd1JDS2pCCnotdWd2RSpeV1NrQlpwRUJHZl48e3Q2e0dxV0oz
cyVlMC1NR1drK1ZmMkR8b0A7e1pLMVE0biNDbiNAM3hJKlMjTwp6QFIkanpSJWdvO3Jta0g7MSpa
c1pkNzc2c0sofWVJKys0JCs/ZDxidUROblNFOCpMcSZpQ1FlMVo0SiRyX0t6ajEKenZWdTFZYTlD
TlZFcm5eMz5sVnZHVU17ODFoZXJ7K0FibzUkV1p3aGRAJThXdFpwTDJAXzkhb3pDSHdJdkBTSlRj
CnpVPEU/VWhjXjwjbT5fTFVEKWp5Zmg5d0xwMV9DWjI+QWdARnhqSyNRV3tvX3F7NWEkLWVedH10
Rzd+SGhFUythMgp6WCY4SXtTMT5UcmRlQi16NlcrT2x1eGJFeyZSeDE1LUFgKmlhfE9CXyMzTGBM
TUJgVyF0a1JWLURSK2tZNUd6TVYKejcyLWNhcF8/MHNncmRrPjt1JX58XklpNDY+RGl9bVYyenM8
cl5BUFhzI1NvblZxWTdNRGxnMExtRmFGPlRwIWduCnp1U1ZlYVdNdHJ7YDxSYipZaiNLUzZsdHx8
VDg2cU9HeloxZj1CUTt8QlBQNklDO1hyQDd5Nz1TcH1reU0lSGB1PQp6MlUyfmBDZjwqKUs1Qmso
NUEpZmoyRG9pVzslKmU+ZSElY2tCN0dlZyU8UWM9VjR2O0l3dDZ3PThVNXVqKUt1TEAKekVCOHI5
cW1rVCV5QUZnbSRveyZvO2kwLUtja0dpYjsrcGhRRT9YUzlSWSlMbzI0O057ciUlXmpEfFNrMFUj
Z30lCnpRazY7e3NZU1NrKzhsJjhKayVPS0NJRlFvNUt7ZlZFTik3fj45UVBPQjgjJSReczIwRytf
K0F9dUNAbyYxKWA0Nwp6NUhvTX1lKiZ0UkUzXlBNQGojfF5NUjIyKS0kS3hwTXlPYFI7KFBqVnd7
JU17U0dJb0RpO3lfRlRpNVd+QkJXQ3gKejgrVGRQK2NtU303d3NlbWwlJShycWpNSUN4fSlfJlUm
eiNDdjBTcWxrdE85fj9xK09pdHFISnVkUWUqMitNQWs5CnpBU0dhJTgrWEheTCpeX34mQ3x3KFQz
T2pieUNFOU5sX2I7fmc8RW5Sa0kxK1Z3QE08fWxuUDd4Xi1mfFVifEY5cgp6Zis8QDRzTCNSa3Bt
S1NqcztkaSY8eXRWPGxQXjJ1cntqbV5ZcDFxZFAxWE5TPXYtJmFAZVUmPG1pe0JvZ1FocHAKekYz
SEI0Q0xuOURKbnUhNzxFNioweTJAMztoT1ZRanloMyVfJUBHd0JsanQqUkRnRkJCLTVmPE0zJHFT
ND5kfWxCCnpSY2h7e2tPXkF2MUxpSnwmI2xedUNhTEpTKGJnd3Z2PTtMei09enAqbjNGWUpGQDdZ
Vi1YbjRtbEdPYypxU0QkJQp6dFk+VWdDUT1uUWE+aSN6I09wWFE9OzRCdzUtcyZEPDhlNSlYLU1y
WFpfNzw5TXx8eUczekF+fTcqVmowdFdQe2gKemRfZmN8OHIyfXZ4M2VObjZkZztDJndDU1VrZUxE
JjAkSCFjeEVNVXpiJXdqXmFANT5LPCNvVTJRYk5QSlMxJVdpCno0XnFEUzJqXiZ3bmFeSWc2R20r
SSRNfjQoYFFYQHU2T0tuKT5HezEpSD4hfGlZfVdMe3hKZHUtVyt5UFh5JWRWTgp6e2dKSFZJPXQ2
SmBiMU9qP3FSOT1sOCZCYlkpST1qXjs1RWFLU3hRemtyXm8xY2ZmRkVpUGdAVih1MXkzNDsybEQK
ej5LWW12SlJfaHNvI2YyIyM3eVpDS21BQ0NhMHhCVTN8ek9MUXMqM3Ehc0ErTnR7ZSt+OV5FUGxV
fENUPD0wZCRnCnpDI2JwRDMyen5yelcqQkRYTi0oYGF7amZLRz0tQWt3T21xblNzYThqbnQxXjN7
N0pNaztHbnZQcDdhZEw/OGw3agp6QS1kQWs4e3xre1JJcS08V2FOfmY5MTJlNFM8RlAldjE5OT9n
Sm1QKGZgPDh4YT4rOz9ITWJpYmA5TFFkVzEkcT0KekN0cG4kUSh3dmolQWw2UHszeDtUSntwZGRZ
JDttPjhiQkBldHZGLXJgblltTU8lIXtKTl4/Z1o/QCFxSHd6T0hlCnokKWQrPzhCS2E2d2pfbngo
JGpnQGFyeUMmVnkxOXBPTCVWQVlNeUg5amp7KWRlQjNKQXckfWUkM3FYYUUpWXMoMgp6e34kSG5z
aDE7V1RET21PdTJwfHcyTjgrTW0jPWhgbF9KJkc/S0dYIzJvWXM+UnA2dkJBOFNwdXg+Jk9zPD9y
cFQKejFhMyFebWVmM0tYKmdPbVNgODdWN0ZjfikqYDJAcjV8YDlIWXNKN3dBNmMqZFc1JVM/PGh9
aTBqKH1WOzh5PGBsCnpmUUEyaHE7RXg5aU0zclc/O18lZHJpVWBaOFJXbHclLVMrcz0jXlZYPENq
fXtHb2tNSXEyc0Q/e3VhcSM8a3Umcwp6dj8xS3t5OHN4WnxKcUU4ZGxpTjJFP256Jl42R2FmRGB2
OUIkM3tnb1F8e3J0c1JpZXtiJFBRfi1jIzRGPDgjckoKendlUCpAX0FCI3dvYWsxV2EkNj5WOFRP
ZTc9NmYze2w7a1BpODVDMDR7RHlHWUZWJFlgNzJQJmZQaUI4ejx4YH5MCnpraEJjQGh3Zz1nPUhB
USQqZUkkI2YlPEcqM1VqcC1kRy1+dUBzOG41KGxWKlQqclU/am1gQWo1T3EwT3QyVTh9eQp6Sk94
RUVRcEJFeDFKQ0dJU3xBR1hhTkpYfFBxY2RrQ31aKSNYVjleP2E8fGNyWF5genFJeTs9Izt6PXM1
Vj42cj8KekYpQjZRQ2pgSmlqWkwzIU1pQlpwcWJCSHZ3Nm9Cdi0pWVZ1VnhKb2RnUVNFPmxjQyo9
R0E3ODcpMUBTQTRwOStmCno5PU1NZ185bUJwdjw1N05TRXYtdis5NStNQ30tZ1M0Q25sMmlwP2M+
Kisxd3JGczJhY1QmZ0xpNUo7S2dmOGM/bgp6QXctbDhDfUZ5ITFKMk5pWExxeGdzWiZaPT1fWFB1
NTlfX2pZO2lZMD5VaEpGeXFvNlZvOVJ0UmF3Z0pQajNSM1UKekc+KG5+SV5zcyl0dGpneCpFbzYr
bXV7QiR2SGF4NXIpUGVYbTw8M1pgOVB4QkJLcUhlSXdtdVdlNXEpSmk1JWZXCnpib3BZNWtMaS1O
alkqNG5DWWk8TEh5MFR0Q0hKZWs4WSFtZCtkTDhxVWJYKTRkP0M1PiQwWjFTKG5RTlAkWDdTUgp6
aDtoVTYkOW0lZTlsc1UoP3NLd2M3d0ItaiQjZFooPmMhSEdeKSpnKj9zREJEUV9ebmY/JXNQbXRt
YWtvKVApcDYKeiU9Jk17cDlmTVh2QTUhTj9+ZDZQKk1DI0hPX3YjWDNAVmxkPGA/RnBxX24rOEs+
XzwpMUhqWkN7cHs/KlAxe05VCnoydzljbkhxbmhoWURQZkNYalVYNnUkKDJxKjZkP1lYNnVUYC1p
YT9uJUx6JX5DdGo4KTEwO29jd0BGdFc7U28pWgp6WUVhK3pZMVplMypaZWMjWj1ifEIqVyElYV5m
TFZiK1Y9eGgoVE9QcGd2XkBfMDAqX3ZxQGd5Slp+Kld8N1FPP1IKekZpRjJUdSlWRmVkMnpaVm0z
UXZpTiV5MyFkMCNYKlAjJWZFaU1hU0pLJTAtJTg0JFhKUFkyKlE5fSlLZUpsPH1uCnpzUWw5Tmcj
Skt2REZEeExmbjtNWWc0WWRyXnhDaUIwUUtHeDNffFkhWUwwYD1KUD5IcTBJdDdwKChtSHpFXmRq
Ngp6Q0FkQW4mMXZHcFNDOWdqMVc/akI8PyNPaUxyc0pyRGEtT1lfaXxTeiN2PlBFI01DMjtoKSh2
LTRFSEtrJDJYVEUKekBTPXd8S35lb2Q+Rnc2eUA8RH47UX1BZ3xIVHhhMkN6Sk88Y14+YGshSDY/
Z3NVYW1uNTJePHoxWDhDMTIrJGheCnphQjstY0V+cF5RaSpLJER4JE96SVU1biNVZjdJY1kzejdx
QHBQUmVeY2pLbk9qQGc+IU9oSHsmPmlFU0JMfjFKKQp6OWYzb3s4fjgpUFJJVm5CKE9QdmA8d2BI
WiZOWS02JHMyfmY0JD53Pj9AbUZNVk8+NjkyWjJgK3pzdm5mTi11WEMKejlffHFMbktiUVZGTlQ4
O1BzYEs7NmU7SD5CbUN7NStqPlc4VHROS0xjMyk3Rnl+VjZfTH4wITcyWDFDfj0pSGc/CnpRQyFs
M2VKZmUjUHZFSG0wUiVvajAqS2dhQnslejkzbDQ5QVoyIyRRfEs9eUQzdldxQXsxWjtUe08yK0d2
I0QwKQp6VV88YEwoe2B8Vl59e09CQHNAREUjQlA9N19rYEJNaFUxbVRlZip1bmBJeXUtNUJXZGVC
PkN8YVl3bEBEeTVPPHkKekhvel5wRT5zVS1JUXFKZzM8X0B9dXpmS3tYS3JwZWc2LUM0d1A0RC1w
cW41bkg8YFZjVyElVUloQVotZERuelF4CnpNbEs7RnZ9aCZGN3RIfnBNKkFaTW9zZEJKRzU3Z3Jt
cnpTX3hASzVVO0lwQiYkKkBnO3R9PShIPGhGaTB7Qz9YJgp6VktsUEBAKTJ6TSlYTEMzMCpMaDgk
P3FxRSRjVHRNTnE1MD9tO3h0Z2VTK1A/Um9gKm1Wcz5Ed1o3TzdJakFKa2sKenxLcXc5WChLY1Ji
VjZKdXV5eWJtcW8ob2JxeTBBa2R7ViQ2MWBnd1V3QkVBQklxQTkqXj8oLUY7dlF4YjRrbEp3Cnpu
S2RUOTExOE9lSTI9KE84VVZFRjh9WTNuRkg5KV9hfn04Pj8zd1JGV0g4QUtgST5+U1pGSTB+OVVZ
N3dSZzdyKgp6Mms0WDExfD40RDhtTVk8dj8yPjNATmYpPVd2VClJMHspVXFwamM0TXste0MhcW1w
S2ZKZjdlKTNpaD9AUFRkUz4KenE8VGE+dllDOE1LanNOWkxDJm0mPmxCPUBgS3MjbjhlOyNDa3dp
dWV1eWhQYUFCdVAkUENsNmdfJFBecSM9fGMhCnpAN2xOLXRBSXw3KS1yYHY1WSl1bUZIXjtyaElC
c2JXOTs2eVYkSytPZSt7dn5IZXg1ZFVPMnwtYj5tcDgjcD1aWgp6aFdCRnRGdGJ0OGl0aH1lYkJV
KG1IdyRXZ2ROMGApMUZ8O2xGRD1sMEhITkpsPn4/QUIjRGRoRUE3bUJ9TUYjc3MKejBAXmNgJD4k
RXJJTyUrS0peMV5pZEZ5eUhSUSYhX0o9R0JEQUp9MVEoKz1RemtDITtZTzZFPTZDeFYqdzVMOWhE
CnpfWnkrRDJkVSlmQlBuaUdWMVUpcFgkfHpTWTxpJkJQZz9QV01lTEEtTCg5UDsrUzYrb2A4c2BH
JmAwS0hidWg3VQp6YTkyUnVMJGszMzxBdnhpSDZsbkZjRT0lREdoajFaZSZxZVptXnB6fmozPWx2
cnFrP0RBRVYqenZlJH1sTDBXTlEKekBaT1M8NlY9Sj1iQCZ0ZUVSX1FWRVVoI0hJJXc9QXdEMUJI
Mm9LenYxX3UkcVM9ejtYY2t1ZnN7SU9yemRBb3NICnp2QVB8OWw4I214MGQzLX4kVV9JZGNwUW9s
RUVVe1A3UzNeekxMbmwyNmoqIXZZc1EzO18tRV40ey1Hbj54XjFPcgp6OTA+Ulk4bU07X0hsKHkh
ak94YV8yJHp9RTJEQXdUT3E3MXhAeTRUUktpdnpVNnp7bzt0MilvfE8+aW4kRjt6P0kKeiZfajJI
cW87dSpHZF96Ynh2aClJSkMrP0ZkMzd2MUBVI19SNVdhJmpic0EjeEU7dTh1anspV1Nrcjx1cSVl
cUdgCnpkMGhiQXk9Yz4rSiNQUzVQdXJePUVkTz5NajQxbnIoWFVVYFN2aiNFQ01tRjs9dmxwUGtC
RU5KP2cxXy03X0sySAp6eE11YFRZWj48fmR5YW9lSnVmanNrST5Sazt0eV5GeF9KaFdzRVZ9e3E7
RCYmPWFGJSMqe2dIdjNXVnUhPlh5Nz0KejMzVEFpTkE/QUdMaFItamxzKk0hYDdrIXdFP3J4eWpi
Z1gjcTFHejZGNlNVVURedGpWQSFOcy1aeWs3X1ZgR2Z0CnpoZ0E3JmNKeExXT25JdXQyWCUtcklU
KTJXb1pYUE9DND9mVF8ySDNYLT9rQF89ZDB1Ym8/UTY/MWh+XlZGczZGfgp6VTVDdWt4JWFXWE90
QUNzMUI/OE9xTzlGbVkxdmN2Vj9ic2gkZUh5PU91VUpFbippNitoalg/ZGA3JUg3UCFyck8KekUk
KWM7ak1OQ1ctU1Q0dmBOZmR6ZEdwbmJIQV8jeVh9T0k0KUJuS2Z4ZWAmTDZYa18qVlBjRmhDWXJ1
akRqRD5ECnpIZV9aZCsrVnZSVVNLP2ZfSVJ6ZkRHJSphRmBLaDBSdjxPV2E5RVN2YSFDflB5QkY5
cjljM3FpcEZ+Pm1YbF5KSwp6Pld0UzhTS3Zhe1VMIzh9cklfdCNBMTBkY2V4eCp5T3lnOEdyRGd9
MS1tbnF1d09FLWMhcDZRI0p8dGV8RSVxcWcKeiFqQFlIMU5ESDVucHZvS3JgTGFHNDtpY248JklX
QlZUZDRkbjxoKkBeTlhFIyZVRzBVRWI+TnhWYjxzPD12RjJ6CnpARUBjPE9oVUZ2Uk58bUBJSmVk
R2B6NTMtbzBGayVqI21KXysqTUhXVVNlRzhhaFh1VWpYeHFKNldQPmtaRHxYOAp6U1N3U28hYFNl
JVhQP2h6UXYrT3BiRk17UEo9MTt1XnhPbnlhfHdVYGp7JDxvZ2lFVm5GJE5Od1QwUS1EIzAwUHIK
elZZc2tsXzIhPGNJbE87PTF6fjt6aTI+QUxWNSNuRl9DTUppYyNGOHA+WjIyciZZdSgxTD4wZ3lU
QndxOTNkO1coCnozM2AlJWpfVVB6N1hJXlhUbT1BXmh9JmFrbmVgOCRLUHt5XzAkKStNSGB3c2M1
KThsdmgoVHJhM2k/UkBxOz5mbwp6PXhFUVhJLTJ1T084TTlUPGY4eXZNQ3xNVCt+YCUwPXhCPEkh
cyRQaFZ6MjtFTmVzKlAwdmRtXm1NVjxFaihvYykKelRsNlFUT3tvOT92biFRTGBAZHF7eTlQUylF
SG1zUGA7JGAyUzNxYER1aUFUKns9P2M3MCFoPDg0eVhEKmw+WUErCnoxaW18aj9uaX03NzxaS3VA
UDNRPDU0PSFtMkRBO0lnQiF5MHhsJTN9M3s2RUoydDxBKGxnZzFKYDt2dillSE5TdAp6R0liJEYj
JDxATmFNZkc3PCskLXh0dUJMYkBOVzZ0dz9CMGZnQlQld2IoPEg2ZkN2SyhDMmgrVFJ8QXYoc3sy
cC0KejJ1cGhvTWxIPTRIMzh3WkNaMCtzWjwlN0x7PH1SQShRYkkkQ2t9LUVOUz18IVRVVkE7Nzht
UFJHK35tMSg5ZkpXCnppUVJqXjh5Z1ZpRm5qOTt7SldoRShhc2hwd3lYNUJ7ZmY3NCVmSClteihz
Mm9JazYoVVY1SX16ZXtjKVZocnQjXgp6TiZORyFmdl9mM1MpZEg2OUZNLW9mQCRARWRFbmBtWTIr
WEQxdDkyQ0E0QztOTnFHKCpvNHRKLSVAWWdlaFJHMWUKemZYeCh3UntUQHZfKDtLPmJwb1VjOSFO
Xz4waTlAfUQofEdRbk5YYDNBeWxqRHEpPVN5ZT9LfmcoQzt4dGNjaThNCnpBY0RsSiZsdTIlNVlJ
fE91dlVgQHxNUDREO0BKZW5DckM/JEdWbGBiT1R5TSEoWnR4amI+c2ZjZ140YGkhaTBNcQp6SWtE
SnF3c2w5MnNWI2JAcThIT2U0cW4yZ19BaEJTQlhDeG1iQE5hflJQS1czdTFnMDtlPHErREwyJmlZ
QiFRKHgKekJIZm1ndEtSZUMrS2RlJW5EXzk8VmpgNV8lbTRXTDVvWihaJHlzLVNsPUk9fmNrTHpi
QkBjIz1RRjlIVkdrIUBiCnpWZUV2TGJedWd9S0BieGdieT15RDdve1NJQU9iMktMYFZYU2UxeSQz
Jjl1RTNNdWdHclUrcEdgbllQN21sN353NQp6T0hIbUo9SVR8NCRXYldUOCk3S2U1an07aCo9Knw9
e2ZjWj80a1U3fTFMe3FDeEp8KThlSEhjbCM5Z01LbVFNZCUKejQyeEdrUlp3M1ZPaGNSKnspZWxX
PHlYQ1JjTypIMk5VPDA/NHBobHg4Tklfb1VjQXZ4VUprcDw3OEZAUE5EM3ttCnorKjBfLVlha3VN
Uk1yUTFpVEZKdGZeenZ1VUpINzRgNUs5PXotJWowdntNRyo5Qm5XYEtIKSNBMD4wQ3clQzw8fgp6
WEtvTm8oMGV9JGxTd08+en16YmJsZ1RIRDBNI1Q2aFk5cjB7SlZjU2JrTShDPH51TDg2Z291elhJ
dyRVV1lFYTwKeld9WUJZWXpCLWJMTlp4NFooWn5tcG0rJCRnJi16VWhgUDw4dzZRcGN4OTw3elR9
JkhvSU50fElLQX0yP0h6a3NzCno1KWhkd2RPem4rPEFqVTI2QS10OGMoZTE9TyYocnk+WipybnFs
SXw8RXVwI3xvRFY0Xmo4SnlBNis3fFFJKShCbgp6IWlHSn57M0tDSDI2Rj4hNHgxM2tLRXdmSkZq
NjRNa2xGbnU2KikybClmRWRUT3c7cEdsNCZPdlFCZ0hjRk5LdXoKelp8VUREaXolOUgzRWRWTzIj
KEdRMWBKMUlCTitEbzYkJkJyPTVpe1pNSVJQbkdOQnM2T1UkVHBXYmdGMGdkKzJHCnoxcmNJMVhx
V3NXJUcoSDA3OSpjVVVwJldWM2NRSlVebnZXMXVMdjxsVjxMSyR7d0toaXAjYEBiMktkVVBVWGle
TQp6OX4yY28/Zko8RWhwdzFNXmopeCEqSk9uZXlhYm9QZm9VUExGdHBZbEFEKiVwXjNUI3Rqdm0y
RjFOSSZSKGp6azIKem55Y1BPZztaSUk/VVRFMjRRZkJjcXVWZmpHPEtzU2ZwUUlAPlNGJWJGQkpe
Pz1iSG9FSylObkNIZCEkZChnczElCnpKbEc2ejtWRkhgV3VJYEVVaC1seCt7dXFPPkk1b3FpYk84
VWg0WUlrZyF8UU9IbHRmY00kOyNqSihodjxiJX04Vgp6O1MkY3lfWXomSCQlI0NtK2xpeyppNiVx
LVdpekJmY196fExlQDtmIWteemg+ejR4JH4mY0h4V3ghbEMwVnIrciUKelFRRUcocFMpZWBIKm5w
eCt+NzsmNnUwUENDayZ9Uy0kbSZ7O3dvP01hcEdvcjJNSHFKNEUrRU0kc00yIURrN2lTCnprfDw9
K0NAPmtNLWtPc3Mje0RDYm48b0FVZ1h2SEgmQlVfeUNFPWk0T0s3WWQ7MUMmbmBkcGtOTkVPYlBA
USlQdQp6KmJyOFk/V3Y9S0J7T0BfVWgwPFZhXj0rXlRvWWg5cmlzOEwxVj5rWVgoSiZfQ0orcTFq
Sy1AIyZNVmNqY0w7RDgKekxWUHUzeUJHPGZUbyp3MFl+QkRVX2poPGhzZm99PCYzNGYkZmcjMnFU
JV82N2ZudF4qVHhMWUs8ZEB4Y3w0K0F9CnpPPkQ7QlFoVWgrZz5uZXRFXlZEfTclO0QqYzJBekhK
JGsmfCRnYFQ1Yz5sI0pNJW90OV91WUEzczAjQGx8NlJ4UAp6KX1+cD47M3pgOHBJN0dyISQjP1hf
QGF3XjVBSHJPTi0hWGMwJFBDazVIVmVHI3J8Mmc7XzlSMjFZQ2EqNWw2TCgKempeO0ctSnx0YGxg
UDRTb1RuKVkpJSVNcEMrZGpJYDA7UXIwT35BcitNV1lVaVcmIyRjVDg5fEhxMmQyPHhRRDVWCnpa
YVlCMUZGM31ERE5Ub2lrSjdFYDYxPHtJM0pvIUhIQSgpdFAmVUI/SU1Ob0Y2d29xZHczPXRxNDFu
fDdsQGIyYAp6VX1HO28wclpTKSUxZEopJTZMO3s9cHRHPTJpVj1lfEZVe3YoKjgmfihrT2lIMio+
dD51dH1sSXlqV3IoRjdaK0kKeiM/PnkoLV8jUHFrYFdOJHtpTnRyT24pdnwwdlY5PU96X1NIdG5t
TXtadHJJVmZ0Plp6ZlhMcWxvJD5OVFNhVEdACnpjaWl2aldCT0A8ZW00V3FkU0xJQilTYClpNzVu
R0E7NyYwKCFnO31hNkdYNTZgRElDanN3QV5OeV9sWGxUYnBvQQp6d25WeXJPPjE0QDlaWmVvcyh2
bmFtPlRPVldIbThIekIlRjw+PyN6Sz9eTHRjVno7cjBiKCt3K3tLSiZSUl5FfVoKeiNDRH5zLXg/
c3FzI1AjUXhOKilVRjhiazYpVmpEbmN+aF5FVGQoKXgpQWBpbFZab0s4UFV7b2VLdGVfIURQJEJo
CnpPaE4jQ0RTYSZYZiQ4IWUjSUc8KVdifmBvdT5XXkcwIzkhdUBIO3IpPT87dSlnaFBCb2Y2fnMj
bStPeHJWQl5yUwp6Sz49QDhuS24zfCo9KHErSk80elphTDRjNGpqTlh8KSlKe295T0M3TFROOGBL
TUZ+JiljPEY3Plc8Z0k/V3Z2d1kKejNqcUlzPCkmVVYoJitkZmE2dUZyT2JIIW0kQnt4O3Y7KWdl
MGJLKil4a2ZNbUgkdV5naStaMDxFTzZCaj5yIX5JCnphQ0ZrPkBLITwzXyRJflBQRipjNUQmbkdG
LU12Rz4/dDBmdVJqV0FqWmlpbzZUUSgkIV5RVXpBKGczLXA0e21KYAp6Uzd7JG49NXNSMXdaIzc5
QnRjMFVgODV+Y3ljXmNIOUIqNns3Sz1NbyM2TzNLMWRFTjRCLW5EODJXQWkoQzZnOX0Kemk9fjRZ
SGIhWF5WcXxvU20jTEJDRURtdXl7QzhlT0d4NEE4JmpYYV8jV1ROKXI1fWVTS1lNbjY/VEBrfUs8
OVZNCnoxUllpdTdzYTBmU2plaVVAOW1Aa2hALXVTPWpTU01oclh2I0xtUT9KbTtHKldBZnFwNiQo
fD1SUUs0KElHbmhqRwp6RWxOLTU3VSR0Y25fIXBnSlhBX2NIY1JueTZNX2JaSmJ4Nll5alA5NFhX
fiV1TEVtbz9lT0UoKTIjMEAqNUdJUl4KensqR0ByRjRwJkclZTBySF9pX30hKlY7PitlXzA9aV9m
KGdDYkUrLTtiPWpZQHc9K1Rodyt2T1VyVFZgQHBENnRsCnp6aX4wKWJaRWM5b2d4OVJHUnZHa0Rj
bSU0aVRaK0hKYiR6XlN4WEB+V2NyMX4tUjZpPUNHKXBqKm9hbDdwU0laUAp6RSRUdmpVNiglM19t
ZDteZnNBRzAlY2hVKFFBKj0rZG54VXh7Pms9NGhJbnVHcF9JVzFXeHBRfEVUKlReLVNAWjkKenJO
ak1FKVFLJjZzYTMkWkVfZTVhUSR0Q2QhaWZqZnEwck9pS3U1XjFRTHpAWjxLUTAtUTI+WEdaRTw3
YHM/WktJCnpAVD5jZWljRHxYJXxMdGFpPzYtZ1F0T3FIazJScWYwbCF0cCMwaVlzNHc2QktwWG1g
TDRoTkltVCN2MkI1aFpWPAp6Xzw4bk83T18rUTQhXnEyWj1GJSVPNyZOd0hTUyQ1PTMrMmMwfkFV
O0RkYzFAdWElcVBXP0E0YG9UczlnWDA8VDYKeilSbUA0cG12ZURXRk5ocWp3cj19WnEwMzFlRElG
cyMhPXxmPitLWmVRUnImQVJCRzViKERyZCsmTnFoPml7QClaCnpLQHhFfXliUyNkbEI/RlRWNyZY
USpxQmdURlNYSk5ofCk/U3xHXzl0ZTNXVSlFXitER29vJUo1dmU7Oz9LZjJSSAp6K21Ifkd1JWE0
R3EoaUNYVmR4ajItSSRzYHszN0JUeyZrJDhsbFF2IVgjO0VNQ0tHKEhiRUJ1VGo1QFVMViFpKnUK
ekB+Q3pDRDh0JU1jdz5veEt8Kig8ZW03UmYlSHU7YjBuZiM7XitrRXpleXlNUGh3UXpaS1EpfmpJ
UiNseWFkZysxCnotQz1hY1FOcStaMSM4Xigkbz1JWlpWRmJsKlhDNWQ9UilpekwqPiFPJkNgUjs+
Riohd3hpOUJpUlJUfj97KWRwSAp6ZFQtcHBxKnV8Q0Bsbj0wJCFTNX1aV29gT21XV2dDTGxkX244
YyZOQ15ZMCUkVl9IelN3MjB8b1N9KGhNaDhQcmoKejxFSE5ycitZYEhyV2dgPGE1Nnp+N1UhTFhM
KyZIeVdmTHh0SDdAJS09PXtvfUlzOD18O2k1VShZNHolcVYlV31oCnpIQkFkSSFiRiZtZ0s+Xn5j
UChpKm9gOFg7UVM0bEI5aTJoeT1xUVRFZVp1b0wtRyV2Q1lvbCs4eDkzSUtLN1JGcAp6VjZuRkJw
fXk+XkQ0ZmFhPVMmRFFkPnN0YWJ4cH03NEgpbHF7UnVvQCk5NzZ3RXRFfiVIfjhKQT9gfm9DUXZa
Mk8KeiNgSWQkTktkRSN4Qi0/TF53IVIkMHMzVlYxKXVxeCMtR2x8X1pVP0tOdzcyZ3hTI0JyXzNh
Yj9EaipvUUl2JkFTCnpvNiNraVdgTkFPRWh9b0Q1JTZRNTMrSX5lRDI8O2gqUHs5MUF3Q2k/M0ZW
azxqTkVzWE9GQjdOWlhTZ3hwVGpTNwp6bz9uRmY/c3Itb0hkZz9LLXlkQD9BZjYrdk4oQUItd1Bt
RzRgPWw+Pj9JaEs/U2gjNzAjYldTZVcmIWxQd3J8dXEKejEpajx3UTxaKzBAekgzRjNwNWRrSWN3
LVdESUhQaFN+elV4TTBCP0M/OG8+ZVN0TmlnNjFVSyl5ZGI0Pm5JKz5QCnpESzlNY1k2ND9qQWZv
eil7SVIjZHk2dk4yLXw9YXkjK2t8cWRnVlJ2YGZYMjVPajJSY3Q0WVh4SG0wNz04c1Qobgp6Uilp
cSRmZjJvVE1DViZidGJUeSNzbkhkU3lgQ1QkRj0pa2ApQ2JxVmE2WjEmVllqa0VkMkA4QSRKWH1G
dkE4YH4KelokeUtNYFZVQ2JkemhnfjM1YCF3R35HQUlyTHM9ZEs3cGFwJTNQfDsyakVebEk2aGUr
TCplQ081e0lZbVZtfilKCno5aiNDWkoyOWErM31RakJsNnQ+TXZFKjFWKntZVEV7YDFBYVBjfVFY
LUtuZ053N290S0IqeWt+bSkkU304b1A4NAp6I0R8PygrOHt9X1JZYjttdmZtKUpSUm1tajUkentM
VGZfeHQ3THBAYm8kPTtwM3JrWV40SlJLZnYpKzZ5NXZIaXgKelM9ODw2ezN1aDthO2Z4fkspJGtw
e055bDZZelpBOEVYZ1NwSF4zcWlqMUpRc1laUERoMTJhcXlFeENiS0BoRXtzCnohMT5iMnooQ0Np
WmRYTmo5V3BZQ0VzaSgqR288JVI8M1Y5WClie0Qre1BTPFowUDJwaHtRUmQhTWZfSHhnVXM3Sgp6
VllgRW4tY0xXblNPVzckRE1oWmlmPylhUVopO2w4JG05UnRKO1I+dGg+VjBwRj8jbz1qM3lmOXxD
YDR6TTMqdGkKemIxOHwtQU9qJktDb3N6Mj8zQ1FfVkNMS0l5T1dnKzdwayZGJFY8aClUczt+T3U9
YStPLXlEfUhDPlBERW8hdktECnpxcylvYVdJdGBMUVQ+K2M1fX5UfXI/aDMhOHprO1UtalZGVT4o
Qm5RVGJQN2xCJnlQTCU9YG5uaClgdl88RnxpOAp6WHZJd3NNNXNBWmUlRk0+Z1FsemhaZlhQNW5f
ckRgTEcjaUgzakI3MDJ5JlQkMXEhM1liPEF0MzBSQjxeLSVVM18KelNhYygqMmBMKkojNEN9a3xN
KTl9LU9+VXdTSG18bmd+SXszR0pMaCl0Xzt5NjIkfT52QSlwQ19FY2hEI1p1JkxmCnpsUjFFaT1m
fklqU0pUV0soN3lJPUlgX09Manp4M1lxVGo5X1ZUYXtgTD9mS1UqRUNfa0ROKU0pNGo+VHY5KWIx
RQp6IV5QY2pPJGI2SEF+VncoMT1WZlhLQ3xjVE89QzElYUM5ZXRfY3l8JDdGWHx8akxKV0UjPU0r
NWZXVXFmQ35FMV8KenA0PH5EYUBaSDFRRHxKSkg5SkZeYU56ciZWK2EhaXpNZzBCY2AmczhWdGkq
SlZfeXAwTm4ra1Q0KVdgTHwwWVd5Cnp2dEFNTE1HTz8lYyo0YmJqNUskVyVkaVUyJF87MldLPUlz
bE1JWXJyKnIjZF94OEY/Pjs0Ty03XyElWTQ4TjdBbgp6bipRKFRUYnZYYHVhdzc7b0dKTjFZeiVA
fl9FdFklTnhkdExZQDwtLTlzZD1XdjVaclVfdyt3MDswcCMzcm8yKUoKekVzOEtWX3koY051UF8k
Vmp4KktZWmdxMnkyR2coLV5kdX5PYVA4O1pNdU5xSGtIP3h3dUdnU3NCVyZVJXQlVWU1CnpjNGxn
VDxYemlPMGJNJD0yKWEwYSh9azlkJkJtejBlcmo8R01nZHlQSkFeKGV7aElWTFZBOUw9RVE8UiFm
YlQ1QQp6NDVFSjhoWG5uWlBaX1B8RHxvbW5HdlE0anU9N2lTa2BvakJrXm1BKzM5TEU8REt2PEY4
eE8pOVFlZzlYYmgraCEKejh5SU91NFFiQD16SUhJe2V3IUUkQWt4MiZ7RlRlNGl1X2R1I0p1PmM0
MWJtM3VmX2M5Q2VaJHghQHVWNlo9bSF5CnpJe1hfRHswI3tIMV9YWnRnMS1VNTwtV21SYk5KVUJ7
eHlleCZFZnllOUxgKUk8K1FBPlZBfkFNQSVWWlVeMiNAaApJV0s5RDg0fEIyXzZhV0FLCgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
bGlvbi9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi9zdmcvdHJhbnNmb3Jtcy90cmFu
c2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM3OWYy
MzYxNGQ4N2Q3YWEwOTNjNWMzNjNkOWJkNGQyMmVlYmU3NQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmln
aW4tY3NzLXByb3BlcnR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwMSBAQAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHgxMzgKKyAgUmVuZGVyQmxvY2sge2h0bWx9IGF0ICgwLDAp
IHNpemUgODAweDEzOAorICAgIFJlbmRlckJvZHkge2JvZHl9IGF0ICg4LDE2KSBzaXplIDc4NHgx
MDYKKyAgICAgIFJlbmRlckJsb2NrIHtwfSBhdCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA4MXgxOAorICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDgxOiAiVGVzdCBmb3IgYnVnICIKKyAgICAgICAgUmVuZGVySW5saW5l
IHthfSBhdCAoMCwwKSBzaXplIDQweDE4IFtjb2xvcj0jNTUxQThCXQorICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoODEsMCkgc2l6ZSA0MHgxOAorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDgxLDApIHdpZHRoIDQwOiAiNzkwNjgiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMTIxLDApIHNpemUgMzc0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDEyMSwwKSB3aWR0
aCAzNzQ6ICIgLSBTVkcgc2hvdWxkIHN1cHBvcnQgdHJhbnNmb3JtLW9yaWdpbiBhbmQgcmVsYXRp
dmUgdmFsdWVzLiIKKyAgICAgIFJlbmRlckJsb2NrIHtwfSBhdCAoMCwzNCkgc2l6ZSA3ODR4NzIK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzgzeDcyCisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNjEzOiAiWW91IHNob3VsZCBzZWUgOSBncmVlbiAy
MHgyMCByZWN0YW5nbGVzIGJlbG93LCBlYWNoIHJlY3RhbmdsZSBzaG91bGQgYmUgcm90YXRlZCBi
eSA0NSBkZWdyZWVzLiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDYxMywwKSB3aWR0aCAxMzY6
ICJFYWNoIGdyZWVuIHJlY3RhbmdsZSAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDc0OSwwKSB3
aWR0aCAxMDogImlzIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCA2NzY6ICJh
Y3R1YWxseSBvbmUgb2YgYSBzZXQgb2YgYWJvdXQgNiwgZWFjaCBvbmUgd2l0aCBhIGRpZmZlcmVu
dCBidXQgZXF1aXZhbGVudCB2YWx1ZSBmb3IgdGhlIENTUyB0cmFuc2Zvcm0tb3JpZ2luICIKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNjc2LDE4KSB3aWR0aCA2MTogInByb3BlcnR5LiAiCisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDczNywxOCkgd2lkdGggNDY6ICJCZWhpbmQiCisgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMzYpIHdpZHRoIDYxNDogImVhY2ggc3RhY2sgb2YgYmx1ZSByZWN0YW5n
bGVzIGlzIGEgc2luZ2xlIDIweDIwIHJlZCBkaXYgdGhhdCBoYXMgYmVlbiBzcGVjaWZpZWQgaW4g
aW4gdGhlIHNhbWUgd2F5LiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDYxNCwzNikgd2lkdGgg
MTQ0OiAiVGhlIHJlZCBkaXZzIHNob3VsZCBiZSIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1
NCkgd2lkdGggMTM0OiAiY29tcGxldGVseSBvYnNjdXJlZC4iCisgICAgICBSZW5kZXJCbG9jayB7
ZGl2fSBhdCAoMCwxMjIpIHNpemUgNzg0eDAKK2xheWVyIGF0ICgxNjAsMTYwKSBzaXplIDIweDIw
CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7ZGl2fSBhdCAoMTYwLDE2MCkgc2l6ZSAyMHgy
MCBbYmdjb2xvcj0jRkYwMDAwXQorbGF5ZXIgYXQgKDIyMCwxNjApIHNpemUgMjB4MjAKKyAgUmVu
ZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtkaXZ9IGF0ICgyMjAsMTYwKSBzaXplIDIweDIwIFtiZ2Nv
bG9yPSNGRjAwMDBdCitsYXllciBhdCAoMjgwLDE2MCkgc2l6ZSAyMHgyMAorICBSZW5kZXJCbG9j
ayAocG9zaXRpb25lZCkge2Rpdn0gYXQgKDI4MCwxNjApIHNpemUgMjB4MjAgW2JnY29sb3I9I0ZG
MDAwMF0KK2xheWVyIGF0ICgzNDAsMTYwKSBzaXplIDIweDIwCisgIFJlbmRlckJsb2NrIChwb3Np
dGlvbmVkKSB7ZGl2fSBhdCAoMzQwLDE2MCkgc2l6ZSAyMHgyMCBbYmdjb2xvcj0jRkYwMDAwXQor
bGF5ZXIgYXQgKDE2MCwyMjApIHNpemUgMjB4MjAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQp
IHtkaXZ9IGF0ICgxNjAsMjIwKSBzaXplIDIweDIwIFtiZ2NvbG9yPSNGRjAwMDBdCitsYXllciBh
dCAoMjIwLDIyMCkgc2l6ZSAyMHgyMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge2Rpdn0g
YXQgKDIyMCwyMjApIHNpemUgMjB4MjAgW2JnY29sb3I9I0ZGMDAwMF0KK2xheWVyIGF0ICgyODAs
MjIwKSBzaXplIDIweDIwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7ZGl2fSBhdCAoMjgw
LDIyMCkgc2l6ZSAyMHgyMCBbYmdjb2xvcj0jRkYwMDAwXQorbGF5ZXIgYXQgKDM0MCwyMjApIHNp
emUgMjB4MjAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtkaXZ9IGF0ICgzNDAsMjIwKSBz
aXplIDIweDIwIFtiZ2NvbG9yPSNGRjAwMDBdCitsYXllciBhdCAoMTYwLDI4MCkgc2l6ZSAyMHgy
MAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge2Rpdn0gYXQgKDE2MCwyODApIHNpemUgMjB4
MjAgW2JnY29sb3I9I0ZGMDAwMF0KK2xheWVyIGF0ICgxMDAsMTAwKSBzaXplIDMwMHgzMDAKKyAg
UmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMTUyLDE0NSkgc2l6ZSAyMjB4MTU1CisgICAgUmVuZGVy
U1ZHUmVjdCB7cmVjdH0gYXQgKDE1NSwxNTUpIHNpemUgMzB4MzAgW3RyYW5zZm9ybT17bT0oKDAu
NzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDcwLjAwLC0yOC45OSl9XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTYwLjAwXSBbeT02MC4wMF0gW3dpZHRoPTIwLjAwXSBb
aGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgxNTUsMTU1KSBzaXpl
IDMweDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSg3MC4wMCwt
MjguOTkpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD02MC4wMF0g
W3k9NjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0
IHtyZWN0fSBhdCAoMTU1LDE1NSkgc2l6ZSAzMHgzMCBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcx
KSgtMC43MSwwLjcxKSkgdD0oNzAuMDAsLTI4Ljk5KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDgwMDBdfV0gW3g9NjAuMDBdIFt5PTYwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9
MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDE1NSwxNTUpIHNpemUgMzB4MzAg
W3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDcwLjAwLC0yOC45OSl9
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTYwLjAwXSBbeT02MC4w
MF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9
IGF0ICgxNTUsMTU1KSBzaXplIDMweDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcx
LDAuNzEpKSB0PSg3MC4wMCwtMjguOTkpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
ODAwMF19XSBbeD02MC4wMF0gW3k9NjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0K
KyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMTU1LDE1NSkgc2l6ZSAzMHgzMCBbdHJhbnNm
b3JtPXttPSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oNzAuMDAsLTI4Ljk5KX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9NjAuMDBdIFt5PTYwLjAwXSBbd2lk
dGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDIw
NSwxNjApIHNpemUgMzB4MjkgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkp
IHQ9KDc3LjU3LC02Ny4yOCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1d
IFt4PTEyMC4wMF0gW3k9NjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICBS
ZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjA1LDE2MCkgc2l6ZSAzMHgyOSBbdHJhbnNmb3JtPXtt
PSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oNzcuNTcsLTY3LjI4KX1dIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTIwLjAwXSBbeT02MC4wMF0gW3dpZHRoPTIw
LjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgyMDUsMTYw
KSBzaXplIDMweDI5IFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSg3
Ny41NywtNjcuMjgpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0x
MjAuMDBdIFt5PTYwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVy
U1ZHUmVjdCB7cmVjdH0gYXQgKDIwNSwxNjApIHNpemUgMzB4MjkgW3RyYW5zZm9ybT17bT0oKDAu
NzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDc3LjU3LC02Ny4yOCl9XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTEyMC4wMF0gW3k9NjAuMDBdIFt3aWR0aD0yMC4wMF0g
W2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjA1LDE2MCkgc2l6
ZSAzMHgyOSBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oNzcuNTcs
LTY3LjI4KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTIwLjAw
XSBbeT02MC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1Jl
Y3Qge3JlY3R9IGF0ICgyMDUsMTYwKSBzaXplIDMweDI5IFt0cmFuc2Zvcm09e209KCgwLjcxLDAu
NzEpKC0wLjcxLDAuNzEpKSB0PSg3Ny41NywtNjcuMjgpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwODAwMF19XSBbeD0xMjAuMDBdIFt5PTYwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWln
aHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDI3MiwxNjIpIHNpemUgMzB4
MzAgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDEwMi4yMiwtMTA2
Ljc4KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTgwLjAwXSBb
eT02MC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qg
e3JlY3R9IGF0ICgyNzIsMTYyKSBzaXplIDMweDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEp
KC0wLjcxLDAuNzEpKSB0PSgxMDIuMjIsLTEwNi43OCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtj
b2xvcj0jMDA4MDAwXX1dIFt4PTE4MC4wMF0gW3k9NjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdo
dD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjcyLDE2Mikgc2l6ZSAzMHgz
MCBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oMTAyLjIyLC0xMDYu
NzgpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0xODAuMDBdIFt5
PTYwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7
cmVjdH0gYXQgKDI3MiwxNjIpIHNpemUgMzB4MzAgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSko
LTAuNzEsMC43MSkpIHQ9KDEwMi4yMiwtMTA2Ljc4KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSMwMDgwMDBdfV0gW3g9MTgwLjAwXSBbeT02MC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0
PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgyNzIsMTYyKSBzaXplIDMweDMw
IFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgxMDIuMjIsLTEwNi43
OCl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTE4MC4wMF0gW3k9
NjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHty
ZWN0fSBhdCAoMjcyLDE2Mikgc2l6ZSAzMHgzMCBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgt
MC43MSwwLjcxKSkgdD0oMTAyLjIyLC0xMDYuNzgpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwODAwMF19XSBbeD0xODAuMDBdIFt5PTYwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9
MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDI3MiwxNjIpIHNpemUgMzB4MzAg
W3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDEwMi4yMiwtMTA2Ljc4
KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTgwLjAwXSBbeT02
MC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3Jl
Y3R9IGF0ICgzMzEsMTQ1KSBzaXplIDI5eDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0w
LjcxLDAuNzEpKSB0PSgxMTguNTgsLTE2Ni4yNyl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDA4MDAwXX1dIFt4PTI0MC4wMF0gW3k9NjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0y
MC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMzMxLDE0NSkgc2l6ZSAyOXgzMCBb
dHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oMTE4LjU4LC0xNjYuMjcp
fV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0yNDAuMDBdIFt5PTYw
LjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVj
dH0gYXQgKDMzMSwxNDUpIHNpemUgMjl4MzAgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAu
NzEsMC43MSkpIHQ9KDExOC41OCwtMTY2LjI3KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDgwMDBdfV0gW3g9MjQwLjAwXSBbeT02MC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIw
LjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgzMzEsMTQ1KSBzaXplIDI5eDMwIFt0
cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgxMTguNTgsLTE2Ni4yNyl9
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTI0MC4wMF0gW3k9NjAu
MDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0
fSBhdCAoMzMxLDE0NSkgc2l6ZSAyOXgzMCBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgtMC43
MSwwLjcxKSkgdD0oMTE4LjU4LC0xNjYuMjcpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwODAwMF19XSBbeD0yNDAuMDBdIFt5PTYwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAu
MDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDMzMSwxNDUpIHNpemUgMjl4MzAgW3Ry
YW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDExOC41OCwtMTY2LjI3KX1d
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MjQwLjAwXSBbeT02MC4w
MF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9
IGF0ICgxNTIsMjIyKSBzaXplIDMweDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcx
LDAuNzEpKSB0PSgxMDkuNTAsLTQuMzUpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
ODAwMF19XSBbeD02MC4wMF0gW3k9MTIwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBd
CisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDE1MiwyMjIpIHNpemUgMzB4MzAgW3RyYW5z
Zm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDEwOS41MCwtNC4zNSl9XSBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTYwLjAwXSBbeT0xMjAuMDBdIFt3
aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAo
MTUyLDIyMikgc2l6ZSAzMHgzMCBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgtMC43MSwwLjcx
KSkgdD0oMTA5LjUwLC00LjM1KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBd
fV0gW3g9NjAuMDBdIFt5PTEyMC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAg
IFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgxNTIsMjIyKSBzaXplIDMweDMwIFt0cmFuc2Zvcm09
e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgxMDkuNTAsLTQuMzUpfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD02MC4wMF0gW3k9MTIwLjAwXSBbd2lkdGg9
MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDE1Miwy
MjIpIHNpemUgMzB4MzAgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9
KDEwOS41MCwtNC4zNSl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4
PTYwLjAwXSBbeT0xMjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICBSZW5k
ZXJTVkdSZWN0IHtyZWN0fSBhdCAoMTUyLDIyMikgc2l6ZSAzMHgzMCBbdHJhbnNmb3JtPXttPSgo
MC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oMTA5LjUwLC00LjM1KX1dIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9NjAuMDBdIFt5PTEyMC4wMF0gW3dpZHRoPTIwLjAw
XSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgyMTgsMjA4KSBz
aXplIDMweDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgxMzIu
OTMsLTYwLjkyKX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTIw
LjAwXSBbeT0xMjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJT
VkdSZWN0IHtyZWN0fSBhdCAoMjE4LDIwOCkgc2l6ZSAzMHgzMCBbdHJhbnNmb3JtPXttPSgoMC43
MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oMTMyLjkzLC02MC45Mil9XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTEyMC4wMF0gW3k9MTIwLjAwXSBbd2lkdGg9MjAuMDBd
IFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDIxOCwyMDgpIHNp
emUgMzB4MzAgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDEzMi45
MywtNjAuOTIpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0xMjAu
MDBdIFt5PTEyMC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNW
R1JlY3Qge3JlY3R9IGF0ICgyMTgsMjA4KSBzaXplIDMweDMwIFt0cmFuc2Zvcm09e209KCgwLjcx
LDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgxMzIuOTMsLTYwLjkyKX1dIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTIwLjAwXSBbeT0xMjAuMDBdIFt3aWR0aD0yMC4wMF0g
W2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjE4LDIwOCkgc2l6
ZSAzMHgzMCBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oMTMyLjkz
LC02MC45Mil9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTEyMC4w
MF0gW3k9MTIwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZH
UmVjdCB7cmVjdH0gYXQgKDIxOCwyMDgpIHNpemUgMzB4MzAgW3RyYW5zZm9ybT17bT0oKDAuNzEs
MC43MSkoLTAuNzEsMC43MSkpIHQ9KDEzMi45MywtNjAuOTIpfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwODAwMF19XSBbeD0xMjAuMDBdIFt5PTEyMC4wMF0gW3dpZHRoPTIwLjAwXSBb
aGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgyODAsMjI1KSBzaXpl
IDI5eDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgxNTEuNzIs
LTg2LjI3KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MTgwLjAw
XSBbeT0xMjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdS
ZWN0IHtyZWN0fSBhdCAoMjgwLDIyNSkgc2l6ZSAyOXgzMCBbdHJhbnNmb3JtPXttPSgoMC43MSww
LjcxKSgtMC43MSwwLjcxKSkgdD0oMTUxLjcyLC04Ni4yNyl9XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDA4MDAwXX1dIFt4PTE4MC4wMF0gW3k9MTIwLjAwXSBbd2lkdGg9MjAuMDBdIFto
ZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDI4MCwyMjUpIHNpemUg
Mjl4MzAgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDE1MS43Miwt
ODYuMjcpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0xODAuMDBd
IFt5PTEyMC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1Jl
Y3Qge3JlY3R9IGF0ICgyODAsMjI1KSBzaXplIDI5eDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAu
NzEpKC0wLjcxLDAuNzEpKSB0PSgxNTEuNzIsLTg2LjI3KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDgwMDBdfV0gW3g9MTgwLjAwXSBbeT0xMjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hl
aWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjgwLDIyNSkgc2l6ZSAy
OXgzMCBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oMTUxLjcyLC04
Ni4yNyl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTE4MC4wMF0g
W3k9MTIwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVj
dCB7cmVjdH0gYXQgKDI4MCwyMjUpIHNpemUgMjl4MzAgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43
MSkoLTAuNzEsMC43MSkpIHQ9KDE1MS43MiwtODYuMjcpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBb
Y29sb3I9IzAwODAwMF19XSBbeD0xODAuMDBdIFt5PTEyMC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVp
Z2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgzNDIsMjE4KSBzaXplIDMw
eDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgxNzIuMjIsLTEz
NS43Nyl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTI0MC4wMF0g
W3k9MTIwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVj
dCB7cmVjdH0gYXQgKDM0MiwyMTgpIHNpemUgMzB4MzAgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43
MSkoLTAuNzEsMC43MSkpIHQ9KDE3Mi4yMiwtMTM1Ljc3KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDgwMDBdfV0gW3g9MjQwLjAwXSBbeT0xMjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hl
aWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMzQyLDIxOCkgc2l6ZSAz
MHgzMCBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oMTcyLjIyLC0x
MzUuNzcpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0yNDAuMDBd
IFt5PTEyMC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1Jl
Y3Qge3JlY3R9IGF0ICgzNDIsMjE4KSBzaXplIDMweDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAu
NzEpKC0wLjcxLDAuNzEpKSB0PSgxNzIuMjIsLTEzNS43Nyl9XSBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDA4MDAwXX1dIFt4PTI0MC4wMF0gW3k9MTIwLjAwXSBbd2lkdGg9MjAuMDBdIFto
ZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDM0MiwyMTgpIHNpemUg
MzB4MzAgW3RyYW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDE3Mi4yMiwt
MTM1Ljc3KX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MjQwLjAw
XSBbeT0xMjAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdS
ZWN0IHtyZWN0fSBhdCAoMzQyLDIxOCkgc2l6ZSAzMHgzMCBbdHJhbnNmb3JtPXttPSgoMC43MSww
LjcxKSgtMC43MSwwLjcxKSkgdD0oMTcyLjIyLC0xMzUuNzcpfV0gW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwODAwMF19XSBbeD0yNDAuMDBdIFt5PTEyMC4wMF0gW3dpZHRoPTIwLjAwXSBb
aGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgzNDIsMjE4KSBzaXpl
IDMweDMwIFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgxNzIuMjIs
LTEzNS43Nyl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTI0MC4w
MF0gW3k9MTIwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCisgICAgUmVuZGVyU1ZH
UmVjdCB7cmVjdH0gYXQgKDE2NSwyNzEpIHNpemUgMzB4MjkgW3RyYW5zZm9ybT17bT0oKDAuNzEs
MC43MSkoLTAuNzEsMC43MSkpIHQ9KDE2NC44NSwyLjAxKX1dIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDgwMDBdfV0gW3g9NjAuMDBdIFt5PTE4MC4wMF0gW3dpZHRoPTIwLjAwXSBbaGVp
Z2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgxNjUsMjcxKSBzaXplIDMw
eDI5IFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAuNzEpKSB0PSgxNjQuODUsMi4w
MSl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTYwLjAwXSBbeT0x
ODAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAgICBSZW5kZXJTVkdSZWN0IHty
ZWN0fSBhdCAoMTY1LDI3MSkgc2l6ZSAzMHgyOSBbdHJhbnNmb3JtPXttPSgoMC43MSwwLjcxKSgt
MC43MSwwLjcxKSkgdD0oMTY0Ljg1LDIuMDEpfV0gW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwODAwMF19XSBbeD02MC4wMF0gW3k9MTgwLjAwXSBbd2lkdGg9MjAuMDBdIFtoZWlnaHQ9MjAu
MDBdCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDE2NSwyNzEpIHNpemUgMzB4MjkgW3Ry
YW5zZm9ybT17bT0oKDAuNzEsMC43MSkoLTAuNzEsMC43MSkpIHQ9KDE2NC44NSwyLjAxKX1dIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9NjAuMDBdIFt5PTE4MC4wMF0g
W3dpZHRoPTIwLjAwXSBbaGVpZ2h0PTIwLjAwXQorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0
ICgxNjUsMjcxKSBzaXplIDMweDI5IFt0cmFuc2Zvcm09e209KCgwLjcxLDAuNzEpKC0wLjcxLDAu
NzEpKSB0PSgxNjQuODUsMi4wMSl9XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAw
XX1dIFt4PTYwLjAwXSBbeT0xODAuMDBdIFt3aWR0aD0yMC4wMF0gW2hlaWdodD0yMC4wMF0KKyAg
ICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMTY1LDI3MSkgc2l6ZSAzMHgyOSBbdHJhbnNmb3Jt
PXttPSgoMC43MSwwLjcxKSgtMC43MSwwLjcxKSkgdD0oMTY0Ljg1LDIuMDEpfV0gW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD02MC4wMF0gW3k9MTgwLjAwXSBbd2lkdGg9
MjAuMDBdIFtoZWlnaHQ9MjAuMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNm
b3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zvcm0tdmFsdWVzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZjMyNzM0YWU0YzJiM2U2N2E2YjAwOTk4OWE3OWY2ZWY2OTVkZDBiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zvcm0t
dmFsdWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgZm9yIGJ1ZyA3OTA2OCAt
IFNWRyBzaG91bGQgc3VwcG9ydCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMg
VmVyaWZ5IHRoYXQgQ1NTIHRyYW5zZm9ybSB0cmFuc2xhdGUgdmFsdWVzIGNhbiBiZSBzcGVjaWZp
ZWQgd2l0aCBwZXJjZW50YWdlcy4KKworWW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzIGFuZCBvbmUgODB4NjAgZ3JlZW4gcmVjdGFuZ2xlLiBUaGUgZ3JlZW4gcmVjdGFu
Z2xlIG9ic2N1cmVzIHR3byByZWQgcmVjdGFuZ2xlcyBvZiB0aGUgc2FtZSBzaXplIHdoaWNoIGhh
dmUgYmVlbiB0cmFuc2xhdGVkIHRvIHRoZSBzYW1lIGxvY2F0aW9uLgorUEFTUyAgcmVjdCAicjEi
IFs1MCwyMDAgODB4NjBdIGV4cGVjdGVkIFs1MCwyMDAgODB4NjBdCitQQVNTICByZWN0ICJyMiIg
WzUwLDIwMCA4MHg2MF0gZXhwZWN0ZWQgWzUwLDIwMCA4MHg2MF0KK1BBU1MgIHJlY3QgInIzIiBb
NTAsMjAwIDgweDYwXSBleHBlY3RlZCBbNTAsMjAwIDgweDYwXQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWwgYi9M
YXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2RhNjllYTk5YjkxZDllOTY4ZmQyOGM0NDZkYzVjYzVkNWM3ZGQ5NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNm
b3JtLXZhbHVlcy54aHRtbApAQCAtMCwwICsxLDM1IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCI+Cis8Ym9keT4KKyAgPHA+VGVzdCBmb3IgYnVnIDxhIGhyZWY9
IiI+NzkwNjg8L2E+IC0gU1ZHIHNob3VsZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmlnaW4gYW5kIHJl
bGF0aXZlIHZhbHVlcworICBWZXJpZnkgdGhhdCBDU1MgdHJhbnNmb3JtIHRyYW5zbGF0ZSB2YWx1
ZXMgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHBlcmNlbnRhZ2VzLgorICA8L3A+CisgIFlvdSBzaG91
bGQgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcyBhbmQgb25lIDgweDYwIGdyZWVuIHJl
Y3RhbmdsZS4gICBUaGUgZ3JlZW4gcmVjdGFuZ2xlIG9ic2N1cmVzIHR3byAKKyAgcmVkIHJlY3Rh
bmdsZXMgb2YgdGhlIHNhbWUgc2l6ZSB3aGljaCBoYXZlIGJlZW4gdHJhbnNsYXRlZCB0byB0aGUg
c2FtZSBsb2NhdGlvbi4KKyAgPHA+CisgIDwvcD4KKyAgPHN2ZyBzdHlsZT0icG9zaXRpb246YWJz
b2x1dGU7IGxlZnQ6MHB4OyB0b3A6MHB4OyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIj4KKyAgICA8cmVjdCBpZD0icjEiIHg9IjEwIiB5PSIyMDAiIHdpZHRoPSI4MCIgaGVpZ2h0
PSI2MCIgZmlsbD0icmVkIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUp
Ii8+CisgICAgPHJlY3QgaWQ9InIyIiB4PSI5MCIgeT0iMjYwIiB3aWR0aD0iODAiIGhlaWdodD0i
NjAiIGZpbGw9InJlZCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwg
LTEwMCUpIi8+CisgICAgPHJlY3QgaWQ9InIzIiB4PSIxMCIgeT0iMjAwIiB3aWR0aD0iODAiIGhl
aWdodD0iNjAiIGZpbGw9ImdyZWVuIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZSg1MCUsIDAlKSIvPgorICA8L3N2Zz4KKyAgPHByZSBpZD0ibG9nIj48L3ByZT4KKzwvYm9keT4K
KzxzY3JpcHQ+PCFbQ0RBVEFbCisKKyAgICB2YXIgcmVzdWx0U3RyaW5nID0gIiI7CisKKyAgICBm
dW5jdGlvbiBjaGVja0NsaWVudFJlY3QocmVjdElEKSB7CisgICAgICAgIHZhciBjciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKHJlY3RJRCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAg
ICAgIHZhciBjclN0cmluZyA9ICJbIiArIGNyLmxlZnQgKyAiLCIgKyBjci50b3AgKyAiICIgKyBj
ci53aWR0aCArICJ4IiArIGNyLmhlaWdodCArICJdIjsKKyAgICAgICAgdmFyIGV4cGVjdGVkID0g
Ils1MCwyMDAgODB4NjBdIjsKKyAgICAgICAgcmVzdWx0U3RyaW5nICs9ICgoY3JTdHJpbmcgPT0g
ZXhwZWN0ZWQpID8gIlBBU1MgIiA6ICJGQUlMICIpICsgIiByZWN0IFwiIiArIHJlY3RJRCArICJc
IiAiICsgY3JTdHJpbmcgKyAiIGV4cGVjdGVkICIgKyBleHBlY3RlZCArICJcbiI7CisgICAgfQor
CisgICAgWyJyMSIsICJyMiIsICJyMyJdLm1hcChjaGVja0NsaWVudFJlY3QpOworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5pbm5lckhUTUwgPSByZXN1bHRTdHJpbmc7CisKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyBdXT48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3Bl
cnR5LnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1j
c3MtcHJvcGVydHkueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk4NjI2ZjJhZGRmZTQ4ZTM3YTA0YmUyYjhh
MDY0NzkxNWQ4OGQzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zv
cm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sCkBAIC0wLDAgKzEsODggQEAK
KzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzdHlsZT4KKyNz
dmdSb290IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7IAorICAgIHRvcDogMTAwcHg7IAorICAg
IGxlZnQ6IDEwMHB4OyAKKyAgICB3aWR0aDozMDBweDsgCisgICAgaGVpZ2h0OiAzMDBweDsKK30K
KworI3RyYW5zZm9ybU9yaWdpblJlY3QgeworICAgIGZpbGw6IGdyZWVuOworICAgIC13ZWJraXQt
dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOworfQorCisjdHJhbnNmb3JtT3JpZ2luRGl2IHsKKyAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgIHdpZHRoOiAyMHB4OworICAgaGVpZ2h0OiAyMHB4Owor
ICAgYmFja2dyb3VuZDogcmVkOworICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7
Cit9Cis8L3N0eWxlPgorCis8Ym9keT4KKyAgPHA+VGVzdCBmb3IgYnVnIDxhIGhyZWY9IiI+Nzkw
Njg8L2E+IC0gU1ZHIHNob3VsZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmlnaW4gYW5kIHJlbGF0aXZl
IHZhbHVlcy48L3A+CisgIDxwPgorICBZb3Ugc2hvdWxkIHNlZSA5IGdyZWVuIDIweDIwIHJlY3Rh
bmdsZXMgYmVsb3csIGVhY2ggcmVjdGFuZ2xlIHNob3VsZCBiZSByb3RhdGVkIGJ5IDQ1IGRlZ3Jl
ZXMuICBFYWNoIGdyZWVuIHJlY3RhbmdsZQorICBpcyBhY3R1YWxseSBvbmUgb2YgYSBzZXQgb2Yg
YWJvdXQgNiwgZWFjaCBvbmUgd2l0aCBhIGRpZmZlcmVudCBidXQgZXF1aXZhbGVudCB2YWx1ZSBm
b3IgdGhlIENTUyB0cmFuc2Zvcm0tb3JpZ2luCisgIHByb3BlcnR5LiAgQmVoaW5kIGVhY2ggc3Rh
Y2sgb2YgYmx1ZSByZWN0YW5nbGVzIGlzIGEgc2luZ2xlIDIweDIwIHJlZCBkaXYgdGhhdCBoYXMg
YmVlbiBzcGVjaWZpZWQgaW4gaW4gdGhlIHNhbWUgd2F5LgorICBUaGUgcmVkIGRpdnMgc2hvdWxk
IGJlIGNvbXBsZXRlbHkgb2JzY3VyZWQuCisgIDwvcD4KKworICA8ZGl2IGlkPSJkaXZSb290Ij48
L2Rpdj4KKyAgPHN2ZyBpZD0ic3ZnUm9vdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIj48L3N2Zz4KKworICA8c2NyaXB0PjwhW0NEQVRBWworICAgIHZhciBzdmdOUyA9ICJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7CisKKyAgICBmdW5jdGlvbiBhZGRUcmFuc2Zvcm1Pcmln
aW5SZWN0KHgsIHksIHMpCisgICAgeworICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudE5TKHN2Z05TLCAicmVjdCIpOworICAgICAgIHZhciB0cmFuc2Zvcm1PcmlnaW4gPSAo
dHlwZW9mKHMpID09ICJzdHJpbmciKSA/IHMgOiAgKHggKyBzWzBdKSArICIgIiArICh5ICsgc1sx
XSk7CisgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInRyYW5zZm9ybU9yaWdpblJlY3Qi
KTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgieCIsIHgpOworICAgICAgIHJlY3Quc2V0QXR0
cmlidXRlKCJ5IiwgeSk7CisgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgMjApOwor
ICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAyMCk7CisgICAgICAgcmVjdC5zZXRB
dHRyaWJ1dGUoInN0eWxlIiwgIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogIiArIHRyYW5zZm9y
bU9yaWdpbiArICI7Iik7CisgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2Z1Jvb3Qi
KS5hcHBlbmRDaGlsZChyZWN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhZGRUcmFuc2Zvcm1P
cmlnaW5EaXYoeCwgeSwgdHJhbnNmb3JtT3JpZ2luKQorICAgIHsKKyAgICAgICB2YXIgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgi
aWQiLCAidHJhbnNmb3JtT3JpZ2luRGl2Iik7CisgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgic3R5
bGUiLCAidG9wOiAiICsgKHkrMTAwKSArICJweDsgbGVmdDogIisgKHgrMTAwKSArICJweDsgLXdl
YmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAiICsgdHJhbnNmb3JtT3JpZ2luICsgIjsiKTsKKyAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Um9vdCIpLmFwcGVuZENoaWxkKGRpdik7Cisg
ICAgfQorCisgICAgIHZhciBlcXVpdmFsZW50VHJhbnNmb3JtT3JpZ2lucyA9IFsKKyAgICAgICAg
IFsiNTAlIDUwJSIsICJjZW50ZXIgNTAlIiwgIjUwJSBjZW50ZXIiLCAiY2VudGVyIiwgImNlbnRl
ciBjZW50ZXIiLCBbMTAsIDEwXV0sCisgICAgICAgICBbIjAlIDAlIiwgImxlZnQgMCUiLCAiMCUg
dG9wIiwgImxlZnQgdG9wIiwgInRvcCBsZWZ0IiwgWzAsIDBdXSwKKyAgICAgICAgIFsiMCUgNTAl
IiwgImxlZnQgNTAlIiwgIjAlIGNlbnRlciIsICJsZWZ0IiwgImxlZnQgY2VudGVyIiwgImNlbnRl
ciBsZWZ0IiwgWzAsIDEwXV0sCisgICAgICAgICBbIjEwMCUgMCUiLCAicmlnaHQgMCUiLCAiMTAw
JSB0b3AiLCAicmlnaHQgdG9wIiwgInRvcCByaWdodCIsIFsyMCwgMF1dLAorICAgICAgICAgWyIw
JSA1MCUiLCAibGVmdCA1MCUiLCAiMCUgY2VudGVyIiwgImxlZnQgY2VudGVyIiwgImNlbnRlciBs
ZWZ0IiwgWzAsIDEwXV0sCisgICAgICAgICBbIjEwMCUgNTAlIiwgInJpZ2h0IDUwJSIsICIxMDAl
IGNlbnRlciIsICJyaWdodCBjZW50ZXIiLCAiY2VudGVyIHJpZ2h0IiwgWzIwLCAxMF1dLAorICAg
ICAgICAgWyIwJSAxMDAlIiwgImxlZnQgMTAwJSIsICIwJSBib3R0b20iLCAibGVmdCBib3R0b20i
LCAibGVmdCBib3R0b20iLCBbMCwgMjBdXSwKKyAgICAgICAgIFsiNTAlIDEwMCUiLCAiY2VudGVy
IDEwMCUiLCAiNTAlIGJvdHRvbSIsICJib3R0b20iLCAiY2VudGVyIGJvdHRvbSIsICJib3R0b20g
Y2VudGVyIiwgWzEwLCAyMF1dLAorICAgICAgICAgWyIxMDAlIDEwMCUiLCAicmlnaHQgMTAwJSIs
ICIxMDAlIGJvdHRvbSIsICJyaWdodCBib3R0b20iLCAiYm90dG9tIHJpZ2h0IiwgWzIwLCAyMF1d
CisgICAgIF07CisKKyAgICAgZnVuY3Rpb24gdGVzdCgpCisgICAgIHsKKyAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgZXF1aXZhbGVudFRyYW5zZm9ybU9yaWdpbnMubGVuZ3RoOyBpKyspICB7
CisgICAgICAgICAgICAgdmFyIHggPSA2MCArIChpICUgIDQpICogNjA7CisgICAgICAgICAgICAg
dmFyIHkgPSA2MCArIE1hdGguZmxvb3IoaSAvIDQpICogNjA7CisgICAgICAgICAgICAgdmFyIHRy
YW5zZm9ybU9yaWdpbnMgPSBlcXVpdmFsZW50VHJhbnNmb3JtT3JpZ2luc1tpXTsKKyAgICAgICAg
ICAgICB0cmFuc2Zvcm1PcmlnaW5zLm1hcCggZnVuY3Rpb24ocykgeyBhZGRUcmFuc2Zvcm1Pcmln
aW5SZWN0KHgsIHksIHMpOyB9ICk7CisgICAgICAgICAgICAgYWRkVHJhbnNmb3JtT3JpZ2luRGl2
KHgsIHksIHRyYW5zZm9ybU9yaWdpbnNbMF0pOyAKKyAgICAgICAgIH0KKyAgICAgfQorCisgICAg
IHRlc3QoKTsKKworICBdXT48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130431</attachid>
            <date>2012-03-06 13:11:49 -0800</date>
            <delta_ts>2012-03-06 16:29:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79068-20120306131148.patch</filename>
            <type>text/plain</type>
            <size>18892</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5OTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhkZmE5MzQ5ODA3NDEx
NmExNDcxYTJiYzk0OWJkNWQ0N2Q0NWVkZS4uMjgzYzc5ODg2MzBkMWY3MDdkYWNhODAzYzcwZjVi
MjM0ZmE3ZTMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTA1ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQgc3VwcG9y
dCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgU1ZHIHN1cHBvcnQgZm9yIHRoZSBD
U1MgJ3RyYW5zZm9ybS1vcmlnaW4nIHByb3BlcnR5IGFuZCBmb3IgcGVyY2VudGFnZSAKKyAgICAg
ICAgdmFsdWVzIGluIHRoZSB0cmFuc2Zvcm0gdHJhbnNsYXRlIGZ1bmN0aW9uLgorCisgICAgICAg
IFRlc3RzOiBzdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWwKKyAg
ICAgICAgICAgICAgIHN2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5
LnhodG1sCisKKyAgICAgICAgKiBjc3Mvc3ZnLmNzczoKKyAgICAgICAgKCopOgorICAgICAgICAo
aHRtbHwqID4gc3ZnKToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY0Zsb2F0VmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
Om9wdGltaXplRm9yVHJhbnNmb3JtT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjphcHBseVRyYW5zZm9ybSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjphbmltYXRl
ZExvY2FsVHJhbnNmb3JtKToKKwogMjAxMi0wMy0wNiAgRmlsaXAgU3BhY2VrICA8ZnNwYWNla0By
aW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBEaXNhYmxlIGJvcmRlciByYWRpdXMgY2xp
cHMgKHI5NTIzOSkgZm9yIEJsYWNrQmVycnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9zdmcuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKaW5kZXggYmMzMTI2OWY4ODA2
MDJlNTAwYTQyZjVlODViZTY1MjdlYWZmNTFlNi4uYTFhMTNmMDI5NzMzMDU4MmI1ZTllOWYwYjdj
NWZjNjg3Y2U5ZjE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKQEAgLTI2LDYgKzI2LDcgQEAKICAqLwogCiBA
bmFtZXNwYWNlICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7CitAbmFtZXNwYWNlIGh0bWwg
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOwogCiAvKgogICAgIFdoZW4gYW4gb3V0ZXJt
b3N0IFNWRyAnc3ZnJyBlbGVtZW50IGlzIHN0YW5kLWFsb25lIG9yIGVtYmVkZGVkIGlubGluZSB3
aXRoaW4gYSBwYXJlbnQgWE1MIGdyYW1tYXIgCkBAIC02MywzICs2NCwxMyBAQCB0ZXh0LCB0c3Bh
biwgdHJlZiB7CiA6Zm9jdXMgewogICAgIG91dGxpbmU6IGF1dG8gNXB4IC13ZWJraXQtZm9jdXMt
cmluZy1jb2xvcgogfQorCisvKiB0cmFuc2Zvcm0tb3JpZ2luIG9uIFNWRyBlbGVtZW50cyAqLwor
CisqIHsKKyAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAgMDsKK30KKworaHRtbHwqID4g
c3ZnIHsKKyAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7Cit9ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TGVuZ3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAppbmRleCA1M2IwMjYw
YzIwN2IwNzgyODk1ZWYzNzdjODRjZjYxNjQ3NTc0OTdlLi45YmM3YjRmYmI4MmRhODZiM2FhZWEx
Njc0YWVmZGFhMDRiMjI5MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaApAQCAtMTY1LDYg
KzE2NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisgICAgLy8gRklY
TUUgLSB3aGVuIHN1YnBpeGVsIGxheW91dCBpcyBzdXBwb3J0ZWQgdGhpcyBjb3B5IG9mIGNhbGNG
bG9hdFZhbHVlKCkgY2FuIGJlIHJlbW92ZWQuIFNlZSBidWcgNzExNDMuCiAgICAgZmxvYXQgY2Fs
Y0Zsb2F0VmFsdWUoaW50IG1heFZhbHVlKSBjb25zdAogICAgIHsKICAgICAgICAgc3dpdGNoICh0
eXBlKCkpIHsKQEAgLTE4NSw2ICsxODYsMjYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gMDsK
ICAgICB9CiAKKyAgICBmbG9hdCBjYWxjRmxvYXRWYWx1ZShmbG9hdCBtYXhWYWx1ZSkgY29uc3QK
KyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSgpKSB7CisgICAgICAgICAgICBjYXNlIEZpeGVk
OgorICAgICAgICAgICAgICAgIHJldHVybiBnZXRGbG9hdFZhbHVlKCk7CisgICAgICAgICAgICBj
YXNlIFBlcmNlbnQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Piht
YXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wZik7CisgICAgICAgICAgICBjYXNlIEF1dG86Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtYXhWYWx1ZSk7CisgICAg
ICAgICAgICBjYXNlIFJlbGF0aXZlOgorICAgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6CisgICAg
ICAgICAgICBjYXNlIE1pbkludHJpbnNpYzoKKyAgICAgICAgICAgIGNhc2UgVW5kZWZpbmVkOgor
ICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIHJl
dHVybiAwOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gMDsKKyAgICB9CisKICAgICBib29sIGlzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1
cm4gdHlwZSgpID09IFVuZGVmaW5lZDsgfQogICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5k
ZXggMTQ1OTUxZDNhZDNmYjhlOGY4NDRjMjJmNDI5OGZkZGYzZWIxNmYwZi4uNWY5NWFmZTM1NjRj
NzdmMmRiNDYyNzgyMjliMTI2Njc4NDg0MjI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQWRvYmUgU3lz
dGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTc2OSwzOSArNzcwLDY1IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQoUXVv
dGVUeXBlIHF1b3RlLCBib29sIGFkZCkKIAogICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2Vz
cygpLT5tX2NvbnRlbnQgPSBDb250ZW50RGF0YTo6Y3JlYXRlKHF1b3RlKTsKIH0KLQotdm9pZCBS
ZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94U2l6ZSwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4g
YXBwbHlPcmlnaW4pIGNvbnN0CisgICAgCitpbmxpbmUgYm9vbCByZXF1aXJlVHJhbnNmb3JtT3Jp
Z2luKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMsIFJlbmRl
clN0eWxlOjpBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBseU9yaWdpbikKIHsKICAgICAvLyB0cmFu
c2Zvcm0tb3JpZ2luIGJyYWNrZXRzIHRoZSB0cmFuc2Zvcm0gd2l0aCB0cmFuc2xhdGUgb3BlcmF0
aW9ucy4KICAgICAvLyBPcHRpbWl6ZSBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIG9ubHkgdHJhbnNm
b3JtIGlzIGEgdHJhbnNsYXRpb24sIHNpbmNlIHRoZSB0cmFuc2Zvcm0tb3JpZ2luIGlzIGlycmVs
ZXZhbnQKICAgICAvLyBpbiB0aGF0IGNhc2UuCi0gICAgYm9vbCBhcHBseVRyYW5zZm9ybU9yaWdp
biA9IGZhbHNlOwotICAgIHVuc2lnbmVkIHMgPSByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFu
c2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuc2l6ZSgpOwotICAgIHVuc2lnbmVkIGk7
Ci0gICAgaWYgKGFwcGx5T3JpZ2luID09IEluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIHsKLSAgICAg
ICAgZm9yIChpID0gMDsgaSA8IHM7IGkrKykgewotICAgICAgICAgICAgVHJhbnNmb3JtT3BlcmF0
aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zv
cm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmdldE9wZXJhdGlvblR5cGUoKTsKLSAg
ICAgICAgICAgIGlmICh0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1gKLSAg
ICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFU
RV9ZCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpU
UkFOU0xBVEUgCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0
aW9uOjpUUkFOU0xBVEVfWgotICAgICAgICAgICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9y
bU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNECi0gICAgICAgICAgICAgICAgICAgICkgewotICAgICAg
ICAgICAgICAgIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIGlmIChhcHBseU9yaWdpbiAhPSBS
ZW5kZXJTdHlsZTo6SW5jbHVkZVRyYW5zZm9ybU9yaWdpbikKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgdW5zaWduZWQgc2l6ZSA9IHRyYW5zZm9ybU9wZXJhdGlvbnMub3BlcmF0aW9ucygp
LnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAg
ICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlID0gdHJhbnNmb3JtT3Bl
cmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmdldE9wZXJhdGlvblR5cGUoKTsKKyAgICAgICAgaWYg
KHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWAorICAgICAgICAgICAgJiYg
dHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9ZCisgICAgICAgICAgICAmJiB0
eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFIAorICAgICAgICAgICAgJiYgdHlw
ZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9aCisgICAgICAgICAgICAmJiB0eXBl
ICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNEKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQorICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KIAotICAgIGlmIChhcHBs
eVRyYW5zZm9ybU9yaWdpbikgewordm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94
U2l6ZSwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNvbnN0Cit7CisgICAgYm9v
bCBhcHBseVRyYW5zZm9ybU9yaWdpbiA9IHJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4ocmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtLT5tX29wZXJhdGlvbnMsIGFwcGx5T3JpZ2luKTsKKwor
ICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikKICAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0
ZTNkKHRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hTaXplLndpZHRo
KCkpLCB0cmFuc2Zvcm1PcmlnaW5ZKCkuY2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94U2l6ZS5oZWln
aHQoKSksIHRyYW5zZm9ybU9yaWdpblooKSk7Ci0gICAgfQogCi0gICAgZm9yIChpID0gMDsgaSA8
IHM7IGkrKykKKyAgICB1bnNpZ25lZCBzaXplID0gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJh
bnNmb3JtLT5tX29wZXJhdGlvbnMub3BlcmF0aW9ucygpLnNpemUoKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmFwcGx5KHRyYW5zZm9y
bSwgYm9yZGVyQm94U2l6ZSk7CiAKLSAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHsKKyAg
ICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pCiAgICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGUz
ZCgtdHJhbnNmb3JtT3JpZ2luWCgpLmNhbGNGbG9hdFZhbHVlKGJvcmRlckJveFNpemUud2lkdGgo
KSksIC10cmFuc2Zvcm1PcmlnaW5ZKCkuY2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94U2l6ZS5oZWln
aHQoKSksIC10cmFuc2Zvcm1PcmlnaW5aKCkpOworfQorCit2b2lkIFJlbmRlclN0eWxlOjphcHBs
eVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94LCBBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBseU9yaWdpbikgY29uc3QK
K3sKKyAgICBib29sIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gcmVxdWlyZVRyYW5zZm9ybU9yaWdp
bihyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucywgYXBwbHlP
cmlnaW4pOworICAgIAorICAgIGZsb2F0IG9mZnNldFggPSB0cmFuc2Zvcm1PcmlnaW5YKCkudHlw
ZSgpID09IFBlcmNlbnQgPyBib3VuZGluZ0JveC54KCkgOiAwOworICAgIGZsb2F0IG9mZnNldFkg
PSB0cmFuc2Zvcm1PcmlnaW5ZKCkudHlwZSgpID09IFBlcmNlbnQgPyBib3VuZGluZ0JveC55KCkg
OiAwOworICAgIAorICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikgeworICAgICAgICB0cmFu
c2Zvcm0udHJhbnNsYXRlM2QodHJhbnNmb3JtT3JpZ2luWCgpLmNhbGNGbG9hdFZhbHVlKGJvdW5k
aW5nQm94LndpZHRoKCkpICsgb2Zmc2V0WCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRyYW5zZm9ybU9yaWdpblkoKS5jYWxjRmxvYXRWYWx1ZShib3VuZGluZ0JveC5oZWlnaHQoKSkg
KyBvZmZzZXRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2lu
WigpKTsKKyAgICB9CisgICAgCisgICAgdW5zaWduZWQgc2l6ZSA9IHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5zaXplKCk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgcmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fdHJhbnNmb3JtLT5tX29wZXJhdGlvbnMub3BlcmF0aW9ucygpW2ldLT5hcHBs
eSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CisgICAgCisgICAgaWYgKGFwcGx5VHJh
bnNmb3JtT3JpZ2luKSB7CisgICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGUzZCgtdHJhbnNmb3Jt
T3JpZ2luWCgpLmNhbGNGbG9hdFZhbHVlKGJvdW5kaW5nQm94LndpZHRoKCkpIC0gb2Zmc2V0WCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC10cmFuc2Zvcm1PcmlnaW5ZKCkuY2FsY0Zs
b2F0VmFsdWUoYm91bmRpbmdCb3guaGVpZ2h0KCkpIC0gb2Zmc2V0WSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC10cmFuc2Zvcm1PcmlnaW5aKCkpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA1NTE1MWQzZWNl
OTdmN2Y5ZGYxZDQ0YzdjOTA5MzEzOTZiODY1ZmMzLi4zNGI1N2VlMzMxOTFiNjFiMmNiMDQ1Yjgx
ODQwOTVjZDBjMmIxYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaApAQCAtODk0LDYgKzg5NCw3IEBAIHB1YmxpYzoKIAogICAgIGVudW0gQXBwbHlU
cmFuc2Zvcm1PcmlnaW4geyBJbmNsdWRlVHJhbnNmb3JtT3JpZ2luLCBFeGNsdWRlVHJhbnNmb3Jt
T3JpZ2luIH07CiAgICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGNvbnN0IExheW91dFNpemUmIGJvcmRlckJveFNpemUsIEFwcGx5VHJhbnNmb3JtT3JpZ2luID0g
SW5jbHVkZVRyYW5zZm9ybU9yaWdpbikgY29uc3Q7CisgICAgdm9pZCBhcHBseVRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIEFwcGx5
VHJhbnNmb3JtT3JpZ2luID0gSW5jbHVkZVRyYW5zZm9ybU9yaWdpbikgY29uc3Q7CiAgICAgdm9p
ZCBzZXRQYWdlU2NhbGVUcmFuc2Zvcm0oZmxvYXQpOwogCiAgICAgYm9vbCBoYXNNYXNrKCkgY29u
c3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFzay5oYXNJbWFnZSgpIHx8IHJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2tCb3hJbWFnZS5oYXNJbWFnZSgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcApp
bmRleCA5OWMxNzgxNzU4ZDA1YzE4MTVlMjM2NzRhYWI2ODFiZWUyMjM3MjU0Li40OTk1NmE0ZDQ2
YTQ0YWUyNTkxZDEyMjZlNGIwMzQ4NzVlN2ViZTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKQEAgLTY2LDE0ICs2Niwx
NSBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmFuaW1h
dGVkTG9jYWxUcmFuc2Zvcm0oKSBjb25zdAogICAgIEFmZmluZVRyYW5zZm9ybSBtYXRyaXg7CiAg
ICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVuZGVyZXIoKSA/IHJlbmRlcmVyKCktPnN0eWxlKCkg
OiAwOwogCi0gICAgLy8gaWYgQ1NTIHByb3BlcnR5IHdhcyBzZXQsIHVzZSB0aGF0LCBvdGhlcndp
c2UgZmFsbGJhY2sgdG8gYXR0cmlidXRlIChpZiBzZXQpCisgICAgLy8gSWYgQ1NTIHByb3BlcnR5
IHdhcyBzZXQsIHVzZSB0aGF0LCBvdGhlcndpc2UgZmFsbGJhY2sgdG8gYXR0cmlidXRlIChpZiBz
ZXQpLgogICAgIGlmIChzdHlsZSAmJiBzdHlsZS0+aGFzVHJhbnNmb3JtKCkpIHsKLSAgICAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggdDsKLSAgICAgICAgLy8gRm9yIG5vdywgdGhlIHRyYW5zZm9y
bS1vcmlnaW4gaXMgbm90IHRha2VuIGludG8gYWNjb3VudAotICAgICAgICAvLyBBbHNvLCBhbnkg
cGVyY2VudGFnZSB2YWx1ZXMgd2lsbCBub3QgYmUgdGFrZW4gaW50byBhY2NvdW50Ci0gICAgICAg
IHN0eWxlLT5hcHBseVRyYW5zZm9ybSh0LCBJbnRTaXplKDAsIDApLCBSZW5kZXJTdHlsZTo6RXhj
bHVkZVRyYW5zZm9ybU9yaWdpbik7Ci0gICAgICAgIC8vIEZsYXR0ZW4gYW55IDNEIHRyYW5zZm9y
bQotICAgICAgICBtYXRyaXggPSB0LnRvQWZmaW5lVHJhbnNmb3JtKCk7CisgICAgICAgIC8vIFJl
bmRlclNWR0hpZGRlbkNvbnRhaW5lcnMgZG9uJ3QgaGF2ZSBhbiBvYmplY3RCb3VuZGluZ0JveC4g
VGhlcmVmb3JlIG5vCisgICAgICAgIC8vIHBlcmNlbnRhZ2UgdmFsdWUgY2FuIGJlIHVzZWQgdGhl
cmUuICAgICAgICAKKyAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOworICAg
ICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCByZW5kZXJlcigpLT5vYmplY3RC
b3VuZGluZ0JveCgpKTsKKworICAgICAgICAvLyBGbGF0dGVuIGFueSAzRCB0cmFuc2Zvcm0uCisg
ICAgICAgIG1hdHJpeCA9IHRyYW5zZm9ybS50b0FmZmluZVRyYW5zZm9ybSgpOwogICAgIH0gZWxz
ZQogICAgICAgICB0cmFuc2Zvcm0oKS5jb25jYXRlbmF0ZShtYXRyaXgpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDBh
MTQ0OGRlNGM0NTUxOTg2M2ZjODY1ZGNmNGJkNmQwY2ZlZjQwMC4uYWNjM2YyNmZlZGE4MjNiYzhm
ZGVkYjliYmI3YzQ4NjRmMzZlOGNiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAzLTA1
ICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQg
c3VwcG9ydCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGUgdGVzdHMgZm9yIFNW
RyBDU1MgdHJhbnNmb3JtLW9yaWdpbiBwcm9wZXJ0eSBzdXBwb3J0IGFuZCBmb3IgCisgICAgICAg
IENTUyB0cmFuc2xhdGlvbnMgc3BlY2lmaWVkIHdpdGggcGVyY2VudGFnZXMgYW5kIGFwcGxpZWQg
dG8gYW4gU1ZHIGVsZW1lbnQuCisKKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRy
YW5zZm9ybS12YWx1ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNm
b3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2
Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LWV4cGVjdGVkLnhodG1s
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1w
cm9wZXJ0eS54aHRtbDogQWRkZWQuCisKIDIwMTItMDMtMDYgIFN0ZXBoZW4gV2hpdGUgIDxzZW5v
cmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjEwOTg0MC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQt
dHJhbnNmb3JtLXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jt
cy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmMzI3
MzRhZTRjMmIzZTY3YTZiMDA5OTg5YTc5ZjZlZjY5NWRkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorVGVzdCBmb3IgYnVnIDc5MDY4IC0gU1ZHIHNob3VsZCBz
dXBwb3J0IHRyYW5zZm9ybS1vcmlnaW4gYW5kIHJlbGF0aXZlIHZhbHVlcyBWZXJpZnkgdGhhdCBD
U1MgdHJhbnNmb3JtIHRyYW5zbGF0ZSB2YWx1ZXMgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHBlcmNl
bnRhZ2VzLgorCitZb3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMgYW5k
IG9uZSA4MHg2MCBncmVlbiByZWN0YW5nbGUuIFRoZSBncmVlbiByZWN0YW5nbGUgb2JzY3VyZXMg
dHdvIHJlZCByZWN0YW5nbGVzIG9mIHRoZSBzYW1lIHNpemUgd2hpY2ggaGF2ZSBiZWVuIHRyYW5z
bGF0ZWQgdG8gdGhlIHNhbWUgbG9jYXRpb24uCitQQVNTICByZWN0ICJyMSIgWzUwLDIwMCA4MHg2
MF0gZXhwZWN0ZWQgWzUwLDIwMCA4MHg2MF0KK1BBU1MgIHJlY3QgInIyIiBbNTAsMjAwIDgweDYw
XSBleHBlY3RlZCBbNTAsMjAwIDgweDYwXQorUEFTUyAgcmVjdCAicjMiIFs1MCwyMDAgODB4NjBd
IGV4cGVjdGVkIFs1MCwyMDAgODB4NjBdCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90
cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54aHRtbCBiL0xheW91dFRlc3RzL3N2
Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54aHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZGE2OWVhOTliOTFkOWU5NjhmZDI4YzQ0NmRjNWNjNWQ1YzdkZDk3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zvcm0tdmFsdWVzLnho
dG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKzxib2R5PgorICA8cD5UZXN0IGZvciBidWcgPGEgaHJlZj0iIj43OTA2ODwvYT4g
LSBTVkcgc2hvdWxkIHN1cHBvcnQgdHJhbnNmb3JtLW9yaWdpbiBhbmQgcmVsYXRpdmUgdmFsdWVz
CisgIFZlcmlmeSB0aGF0IENTUyB0cmFuc2Zvcm0gdHJhbnNsYXRlIHZhbHVlcyBjYW4gYmUgc3Bl
Y2lmaWVkIHdpdGggcGVyY2VudGFnZXMuCisgIDwvcD4KKyAgWW91IHNob3VsZCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzIGFuZCBvbmUgODB4NjAgZ3JlZW4gcmVjdGFuZ2xlLiAgIFRo
ZSBncmVlbiByZWN0YW5nbGUgb2JzY3VyZXMgdHdvIAorICByZWQgcmVjdGFuZ2xlcyBvZiB0aGUg
c2FtZSBzaXplIHdoaWNoIGhhdmUgYmVlbiB0cmFuc2xhdGVkIHRvIHRoZSBzYW1lIGxvY2F0aW9u
LgorICA8cD4KKyAgPC9wPgorICA8c3ZnIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDow
cHg7IHRvcDowcHg7IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxy
ZWN0IGlkPSJyMSIgeD0iMTAiIHk9IjIwMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjYwIiBmaWxsPSJy
ZWQiIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSkiLz4KKyAgICA8cmVj
dCBpZD0icjIiIHg9IjkwIiB5PSIyNjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgZmlsbD0icmVk
IiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtMTAwJSkiLz4KKyAg
ICA8cmVjdCBpZD0icjMiIHg9IjEwIiB5PSIyMDAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgZmls
bD0iZ3JlZW4iIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgMCUpIi8+
CisgIDwvc3ZnPgorICA8cHJlIGlkPSJsb2ciPjwvcHJlPgorPC9ib2R5PgorPHNjcmlwdD48IVtD
REFUQVsKKworICAgIHZhciByZXN1bHRTdHJpbmcgPSAiIjsKKworICAgIGZ1bmN0aW9uIGNoZWNr
Q2xpZW50UmVjdChyZWN0SUQpIHsKKyAgICAgICAgdmFyIGNyID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQocmVjdElEKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgdmFyIGNyU3Ry
aW5nID0gIlsiICsgY3IubGVmdCArICIsIiArIGNyLnRvcCArICIgIiArIGNyLndpZHRoICsgIngi
ICsgY3IuaGVpZ2h0ICsgIl0iOworICAgICAgICB2YXIgZXhwZWN0ZWQgPSAiWzUwLDIwMCA4MHg2
MF0iOworICAgICAgICByZXN1bHRTdHJpbmcgKz0gKChjclN0cmluZyA9PSBleHBlY3RlZCkgPyAi
UEFTUyAiIDogIkZBSUwgIikgKyAiIHJlY3QgXCIiICsgcmVjdElEICsgIlwiICIgKyBjclN0cmlu
ZyArICIgZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIlxuIjsKKyAgICB9CisKKyAgICBbInIxIiwg
InIyIiwgInIzIl0ubWFwKGNoZWNrQ2xpZW50UmVjdCk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImxvZyIpLmlubmVySFRNTCA9IHJlc3VsdFN0cmluZzsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKworIF1dPjwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHktZXhwZWN0ZWQu
eGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1w
cm9wZXJ0eS1leHBlY3RlZC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWZkZTA5YWMxZjgwNGZjOTA4YzU4
Y2M3N2YzODcxYzcyOTBkOTA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3Ry
YW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHktZXhwZWN0ZWQueGh0bWwKQEAg
LTAsMCArMSw1MCBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
PgorPHN0eWxlPgorI3RyYW5zZm9ybU9yaWdpbkRpdiB7CisgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICB3aWR0aDogMzBweDsKKyAgIGhlaWdodDogMzBweDsKKyAgIGJhY2tncm91bmQ6IGdyZWVu
OworICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7Cit9Cis8L3N0eWxlPgorCis8
Ym9keT4KKyAgPGRpdiBpZD0iZGl2Um9vdCI+PC9kaXY+CisKKyAgPHNjcmlwdD48IVtDREFUQVsK
KworICAgIGZ1bmN0aW9uIGFkZFRyYW5zZm9ybU9yaWdpbkRpdih4LCB5LCB0cmFuc2Zvcm1Pcmln
aW4pCisgICAgeworICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJ0cmFuc2Zvcm1PcmlnaW5EaXYiKTsK
KyAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJ0b3A6ICIgKyB5ICsgInB4OyBsZWZ0
OiAiKyB4ICsgInB4OyAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46ICIgKyB0cmFuc2Zvcm1Pcmln
aW4gKyAiOyIpOworICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXZSb290IikuYXBw
ZW5kQ2hpbGQoZGl2KTsKKyAgICB9CisKKyAgICB2YXIgdHJhbnNmb3JtT3JpZ2lucyA9IFsKKyAg
ICAgICAgICI1MCUgNTAlIiwKKyAgICAgICAgICIwJSAwJSIsCisgICAgICAgICAiMCUgNTAlIiwK
KyAgICAgICAgICIxMDAlIDAlIiwKKyAgICAgICAgICIwJSA1MCUiLAorICAgICAgICAgIjEwMCUg
NTAlIiwKKyAgICAgICAgICIwJSAxMDAlIiwKKyAgICAgICAgICI1MCUgMTAwJSIsCisgICAgICAg
ICAiMTAwJSAxMDAlIiwKKyAgICAgXTsKKworICAgICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgewor
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmFuc2Zvcm1PcmlnaW5zLmxlbmd0aDsgaSsr
KSAgeworICAgICAgICAgICAgIHZhciB4ID0gNjAgKyAoaSAlICA0KSAqIDYwOworICAgICAgICAg
ICAgIHZhciB5ID0gNjAgKyBNYXRoLmZsb29yKGkgLyA0KSAqIDYwOworICAgICAgICAgICAgIGFk
ZFRyYW5zZm9ybU9yaWdpbkRpdih4LCB5LCB0cmFuc2Zvcm1PcmlnaW5zW2ldKTsgCisgICAgICAg
ICB9CisgICAgIH0KKworICAgICB0ZXN0KCk7CisKKyAgXV0+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0t
b3JpZ2luLWNzcy1wcm9wZXJ0eS54aHRtbCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3Ry
YW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlZjdkZjIxMDY0
YjYwNmYxZTMyN2QxNGI3MDMxOTc0YWMwMDA5NDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS54aHRtbApA
QCAtMCwwICsxLDY2IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCI+Cis8c3R5bGU+Cisjc3ZnUm9vdCB7CisgICAgcG9zaXRpb246IGFic29sdXRlOyAKKyAgICB0
b3A6IDA7CisgICAgbGVmdDogMDsKK30KKworI3RyYW5zZm9ybU9yaWdpblJlY3QgeworICAgIGZp
bGw6IGdyZWVuOworICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOworfQorPC9z
dHlsZT4KKworPCEtLQorICBUZXN0IGZvciBidWcgNzkwNjggLSBTVkcgc2hvdWxkIHN1cHBvcnQg
dHJhbnNmb3JtLW9yaWdpbiBhbmQgcmVsYXRpdmUgdmFsdWVzLjwvcD4KKyAgCisgIFlvdSBzaG91
bGQgc2VlIDkgZ3JlZW4gMjB4MjAgcmVjdGFuZ2xlcy4gIEVhY2ggZ3JlZW4gcmVjdGFuZ2xlIGlz
IGFjdHVhbGx5IG9uZSBvZiBhIHNldCBvZiBhYm91dCA2LCBlYWNoIG9uZSAKKyAgd2l0aCBhIGRp
ZmZlcmVudCBidXQgZXF1aXZhbGVudCB2YWx1ZSBmb3IgdGhlIENTUyB0cmFuc2Zvcm0tb3JpZ2lu
IHByb3BlcnR5LiAKKy0tPgorCis8Ym9keT4KKyAgPHN2ZyBpZD0ic3ZnUm9vdCIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKworICA8c2NyaXB0PjwhW0NEQVRBWwor
ICAgIHZhciBzdmdOUyA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7CisKKyAgICBmdW5j
dGlvbiBhZGRUcmFuc2Zvcm1PcmlnaW5SZWN0KHgsIHksIHMpCisgICAgeworICAgICAgIHZhciBy
ZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2Z05TLCAicmVjdCIpOworICAgICAgIHZh
ciB0cmFuc2Zvcm1PcmlnaW4gPSAodHlwZW9mKHMpID09ICJzdHJpbmciKSA/IHMgOiAgKHggKyBz
WzBdKSArICIgIiArICh5ICsgc1sxXSk7CisgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoImlkIiwg
InRyYW5zZm9ybU9yaWdpblJlY3QiKTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgieCIsIHgp
OworICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ5IiwgeSk7CisgICAgICAgcmVjdC5zZXRBdHRy
aWJ1dGUoIndpZHRoIiwgMzApOworICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAz
MCk7CisgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgIi13ZWJraXQtdHJhbnNmb3Jt
LW9yaWdpbjogIiArIHRyYW5zZm9ybU9yaWdpbiArICI7Iik7CisgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN2Z1Jvb3QiKS5hcHBlbmRDaGlsZChyZWN0KTsKKyAgICB9CisKKyAgICB2
YXIgZXF1aXZhbGVudFRyYW5zZm9ybU9yaWdpbnMgPSBbCisgICAgICAgICBbIjUwJSA1MCUiLCAi
Y2VudGVyIDUwJSIsICI1MCUgY2VudGVyIiwgImNlbnRlciIsICJjZW50ZXIgY2VudGVyIiwgWzE1
LCAxNV1dLAorICAgICAgICAgWyIwJSAwJSIsICJsZWZ0IDAlIiwgIjAlIHRvcCIsICJsZWZ0IHRv
cCIsICJ0b3AgbGVmdCIsIFswLCAwXV0sCisgICAgICAgICBbIjAlIDUwJSIsICJsZWZ0IDUwJSIs
ICIwJSBjZW50ZXIiLCAibGVmdCIsICJsZWZ0IGNlbnRlciIsICJjZW50ZXIgbGVmdCIsIFswLCAx
NV1dLAorICAgICAgICAgWyIxMDAlIDAlIiwgInJpZ2h0IDAlIiwgIjEwMCUgdG9wIiwgInJpZ2h0
IHRvcCIsICJ0b3AgcmlnaHQiLCBbMzAsIDBdXSwKKyAgICAgICAgIFsiMCUgNTAlIiwgImxlZnQg
NTAlIiwgIjAlIGNlbnRlciIsICJsZWZ0IGNlbnRlciIsICJjZW50ZXIgbGVmdCIsIFswLCAxNV1d
LAorICAgICAgICAgWyIxMDAlIDUwJSIsICJyaWdodCA1MCUiLCAiMTAwJSBjZW50ZXIiLCAicmln
aHQgY2VudGVyIiwgImNlbnRlciByaWdodCIsIFszMCwgMTVdXSwKKyAgICAgICAgIFsiMCUgMTAw
JSIsICJsZWZ0IDEwMCUiLCAiMCUgYm90dG9tIiwgImxlZnQgYm90dG9tIiwgImxlZnQgYm90dG9t
IiwgWzAsIDMwXV0sCisgICAgICAgICBbIjUwJSAxMDAlIiwgImNlbnRlciAxMDAlIiwgIjUwJSBi
b3R0b20iLCAiYm90dG9tIiwgImNlbnRlciBib3R0b20iLCAiYm90dG9tIGNlbnRlciIsIFsxNSwg
MzBdXSwKKyAgICAgICAgIFsiMTAwJSAxMDAlIiwgInJpZ2h0IDEwMCUiLCAiMTAwJSBib3R0b20i
LCAicmlnaHQgYm90dG9tIiwgImJvdHRvbSByaWdodCIsIFszMCwgMzBdXQorICAgICBdOworCisg
ICAgIGZ1bmN0aW9uIHRlc3QoKQorICAgICB7CisgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGVxdWl2YWxlbnRUcmFuc2Zvcm1PcmlnaW5zLmxlbmd0aDsgaSsrKSAgeworICAgICAgICAgICAg
IHZhciB4ID0gNjAgKyAoaSAlICA0KSAqIDYwOworICAgICAgICAgICAgIHZhciB5ID0gNjAgKyBN
YXRoLmZsb29yKGkgLyA0KSAqIDYwOworICAgICAgICAgICAgIGVxdWl2YWxlbnRUcmFuc2Zvcm1P
cmlnaW5zW2ldLm1hcCggZnVuY3Rpb24ocykgeyBhZGRUcmFuc2Zvcm1PcmlnaW5SZWN0KHgsIHks
IHMpOyB9ICk7CisgICAgICAgICB9CisgICAgIH0KKworICAgICB0ZXN0KCk7CisKKyAgXV0+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130466</attachid>
            <date>2012-03-06 16:29:19 -0800</date>
            <delta_ts>2012-03-08 11:19:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79068-20120306162919.patch</filename>
            <type>text/plain</type>
            <size>19035</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5OTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhkZmE5MzQ5ODA3NDEx
NmExNDcxYTJiYzk0OWJkNWQ0N2Q0NWVkZS4uMjgzYzc5ODg2MzBkMWY3MDdkYWNhODAzYzcwZjVi
MjM0ZmE3ZTMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTA1ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQgc3VwcG9y
dCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgU1ZHIHN1cHBvcnQgZm9yIHRoZSBD
U1MgJ3RyYW5zZm9ybS1vcmlnaW4nIHByb3BlcnR5IGFuZCBmb3IgcGVyY2VudGFnZSAKKyAgICAg
ICAgdmFsdWVzIGluIHRoZSB0cmFuc2Zvcm0gdHJhbnNsYXRlIGZ1bmN0aW9uLgorCisgICAgICAg
IFRlc3RzOiBzdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWwKKyAg
ICAgICAgICAgICAgIHN2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5
LnhodG1sCisKKyAgICAgICAgKiBjc3Mvc3ZnLmNzczoKKyAgICAgICAgKCopOgorICAgICAgICAo
aHRtbHwqID4gc3ZnKToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoKKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aDo6Y2FsY0Zsb2F0VmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
Om9wdGltaXplRm9yVHJhbnNmb3JtT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjphcHBseVRyYW5zZm9ybSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjphbmltYXRl
ZExvY2FsVHJhbnNmb3JtKToKKwogMjAxMi0wMy0wNiAgRmlsaXAgU3BhY2VrICA8ZnNwYWNla0By
aW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBEaXNhYmxlIGJvcmRlciByYWRpdXMgY2xp
cHMgKHI5NTIzOSkgZm9yIEJsYWNrQmVycnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9zdmcuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKaW5kZXggYmMzMTI2OWY4ODA2
MDJlNTAwYTQyZjVlODViZTY1MjdlYWZmNTFlNi4uYTFhMTNmMDI5NzMzMDU4MmI1ZTllOWYwYjdj
NWZjNjg3Y2U5ZjE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKQEAgLTI2LDYgKzI2LDcgQEAKICAqLwogCiBA
bmFtZXNwYWNlICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7CitAbmFtZXNwYWNlIGh0bWwg
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOwogCiAvKgogICAgIFdoZW4gYW4gb3V0ZXJt
b3N0IFNWRyAnc3ZnJyBlbGVtZW50IGlzIHN0YW5kLWFsb25lIG9yIGVtYmVkZGVkIGlubGluZSB3
aXRoaW4gYSBwYXJlbnQgWE1MIGdyYW1tYXIgCkBAIC02MywzICs2NCwxMyBAQCB0ZXh0LCB0c3Bh
biwgdHJlZiB7CiA6Zm9jdXMgewogICAgIG91dGxpbmU6IGF1dG8gNXB4IC13ZWJraXQtZm9jdXMt
cmluZy1jb2xvcgogfQorCisvKiB0cmFuc2Zvcm0tb3JpZ2luIG9uIFNWRyBlbGVtZW50cyAqLwor
CisqIHsKKyAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAgMDsKK30KKworaHRtbHwqID4g
c3ZnIHsKKyAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7Cit9ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TGVuZ3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaAppbmRleCA1M2IwMjYw
YzIwN2IwNzgyODk1ZWYzNzdjODRjZjYxNjQ3NTc0OTdlLi45YmM3YjRmYmI4MmRhODZiM2FhZWEx
Njc0YWVmZGFhMDRiMjI5MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaApAQCAtMTY1LDYg
KzE2NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisgICAgLy8gRklY
TUUgLSB3aGVuIHN1YnBpeGVsIGxheW91dCBpcyBzdXBwb3J0ZWQgdGhpcyBjb3B5IG9mIGNhbGNG
bG9hdFZhbHVlKCkgY2FuIGJlIHJlbW92ZWQuIFNlZSBidWcgNzExNDMuCiAgICAgZmxvYXQgY2Fs
Y0Zsb2F0VmFsdWUoaW50IG1heFZhbHVlKSBjb25zdAogICAgIHsKICAgICAgICAgc3dpdGNoICh0
eXBlKCkpIHsKQEAgLTE4NSw2ICsxODYsMjYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gMDsK
ICAgICB9CiAKKyAgICBmbG9hdCBjYWxjRmxvYXRWYWx1ZShmbG9hdCBtYXhWYWx1ZSkgY29uc3QK
KyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSgpKSB7CisgICAgICAgICAgICBjYXNlIEZpeGVk
OgorICAgICAgICAgICAgICAgIHJldHVybiBnZXRGbG9hdFZhbHVlKCk7CisgICAgICAgICAgICBj
YXNlIFBlcmNlbnQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Piht
YXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wZik7CisgICAgICAgICAgICBjYXNlIEF1dG86Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtYXhWYWx1ZSk7CisgICAg
ICAgICAgICBjYXNlIFJlbGF0aXZlOgorICAgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6CisgICAg
ICAgICAgICBjYXNlIE1pbkludHJpbnNpYzoKKyAgICAgICAgICAgIGNhc2UgVW5kZWZpbmVkOgor
ICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIHJl
dHVybiAwOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gMDsKKyAgICB9CisKICAgICBib29sIGlzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1
cm4gdHlwZSgpID09IFVuZGVmaW5lZDsgfQogICAgIGJvb2wgaXNaZXJvKCkgY29uc3QgCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5k
ZXggMTQ1OTUxZDNhZDNmYjhlOGY4NDRjMjJmNDI5OGZkZGYzZWIxNmYwZi4uOTU2NGJkOWE4NjVl
NWRmM2ZmMzlhMTRiZGY3NTZmYzRlODE3MDVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQWRvYmUgU3lz
dGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTc2OSwzOSArNzcwLDY3IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQoUXVv
dGVUeXBlIHF1b3RlLCBib29sIGFkZCkKIAogICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2Vz
cygpLT5tX2NvbnRlbnQgPSBDb250ZW50RGF0YTo6Y3JlYXRlKHF1b3RlKTsKIH0KLQotdm9pZCBS
ZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94U2l6ZSwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4g
YXBwbHlPcmlnaW4pIGNvbnN0CisgICAgCitpbmxpbmUgYm9vbCByZXF1aXJlVHJhbnNmb3JtT3Jp
Z2luKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMsIFJlbmRl
clN0eWxlOjpBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBseU9yaWdpbikKIHsKICAgICAvLyB0cmFu
c2Zvcm0tb3JpZ2luIGJyYWNrZXRzIHRoZSB0cmFuc2Zvcm0gd2l0aCB0cmFuc2xhdGUgb3BlcmF0
aW9ucy4KICAgICAvLyBPcHRpbWl6ZSBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIG9ubHkgdHJhbnNm
b3JtIGlzIGEgdHJhbnNsYXRpb24sIHNpbmNlIHRoZSB0cmFuc2Zvcm0tb3JpZ2luIGlzIGlycmVs
ZXZhbnQKICAgICAvLyBpbiB0aGF0IGNhc2UuCi0gICAgYm9vbCBhcHBseVRyYW5zZm9ybU9yaWdp
biA9IGZhbHNlOwotICAgIHVuc2lnbmVkIHMgPSByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFu
c2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuc2l6ZSgpOwotICAgIHVuc2lnbmVkIGk7
Ci0gICAgaWYgKGFwcGx5T3JpZ2luID09IEluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIHsKLSAgICAg
ICAgZm9yIChpID0gMDsgaSA8IHM7IGkrKykgewotICAgICAgICAgICAgVHJhbnNmb3JtT3BlcmF0
aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zv
cm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmdldE9wZXJhdGlvblR5cGUoKTsKLSAg
ICAgICAgICAgIGlmICh0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1gKLSAg
ICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFU
RV9ZCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpU
UkFOU0xBVEUgCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0
aW9uOjpUUkFOU0xBVEVfWgotICAgICAgICAgICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9y
bU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNECi0gICAgICAgICAgICAgICAgICAgICkgewotICAgICAg
ICAgICAgICAgIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIGlmIChhcHBseU9yaWdpbiAhPSBS
ZW5kZXJTdHlsZTo6SW5jbHVkZVRyYW5zZm9ybU9yaWdpbikKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgdW5zaWduZWQgc2l6ZSA9IHRyYW5zZm9ybU9wZXJhdGlvbnMub3BlcmF0aW9ucygp
LnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAg
ICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlID0gdHJhbnNmb3JtT3Bl
cmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmdldE9wZXJhdGlvblR5cGUoKTsKKyAgICAgICAgaWYg
KHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWAorICAgICAgICAgICAgJiYg
dHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9ZCisgICAgICAgICAgICAmJiB0
eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFIAorICAgICAgICAgICAgJiYgdHlw
ZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9aCisgICAgICAgICAgICAmJiB0eXBl
ICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNEKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQorICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KIAotICAgIGlmIChhcHBs
eVRyYW5zZm9ybU9yaWdpbikgewordm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94
U2l6ZSwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNvbnN0Cit7CisgICAgY29u
c3QgVHJhbnNmb3JtT3BlcmF0aW9ucyB0cmFuc2Zvcm1PcGVyYXRpb25zID0gcmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fdHJhbnNmb3JtLT5tX29wZXJhdGlvbnM7CisgICAgYm9vbCBhcHBseVRyYW5z
Zm9ybU9yaWdpbiA9IHJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4odHJhbnNmb3JtT3BlcmF0aW9ucywg
YXBwbHlPcmlnaW4pOworCisgICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2luKQogICAgICAgICB0
cmFuc2Zvcm0udHJhbnNsYXRlM2QodHJhbnNmb3JtT3JpZ2luWCgpLmNhbGNGbG9hdFZhbHVlKGJv
cmRlckJveFNpemUud2lkdGgoKSksIHRyYW5zZm9ybU9yaWdpblkoKS5jYWxjRmxvYXRWYWx1ZShi
b3JkZXJCb3hTaXplLmhlaWdodCgpKSwgdHJhbnNmb3JtT3JpZ2luWigpKTsKLSAgICB9CiAKLSAg
ICBmb3IgKGkgPSAwOyBpIDwgczsgaSsrKQotICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmFwcGx5KHRyYW5zZm9y
bSwgYm9yZGVyQm94U2l6ZSk7CisgICAgdW5zaWduZWQgc2l6ZSA9IHRyYW5zZm9ybU9wZXJhdGlv
bnMub3BlcmF0aW9ucygpLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6
ZTsgKytpKQorICAgICAgICB0cmFuc2Zvcm1PcGVyYXRpb25zLm9wZXJhdGlvbnMoKVtpXS0+YXBw
bHkodHJhbnNmb3JtLCBib3JkZXJCb3hTaXplKTsKIAotICAgIGlmIChhcHBseVRyYW5zZm9ybU9y
aWdpbikgeworICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikKICAgICAgICAgdHJhbnNmb3Jt
LnRyYW5zbGF0ZTNkKC10cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94
U2l6ZS53aWR0aCgpKSwgLXRyYW5zZm9ybU9yaWdpblkoKS5jYWxjRmxvYXRWYWx1ZShib3JkZXJC
b3hTaXplLmhlaWdodCgpKSwgLXRyYW5zZm9ybU9yaWdpblooKSk7Cit9CisKK3ZvaWQgUmVuZGVy
U3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIEFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3Jp
Z2luKSBjb25zdAoreworICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMgdHJhbnNmb3JtT3Bl
cmF0aW9ucyA9IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRpb25z
OworICAgIGJvb2wgYXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSByZXF1aXJlVHJhbnNmb3JtT3JpZ2lu
KHRyYW5zZm9ybU9wZXJhdGlvbnMsIGFwcGx5T3JpZ2luKTsKKyAgICAKKyAgICBmbG9hdCBvZmZz
ZXRYID0gdHJhbnNmb3JtT3JpZ2luWCgpLnR5cGUoKSA9PSBQZXJjZW50ID8gYm91bmRpbmdCb3gu
eCgpIDogMDsKKyAgICBmbG9hdCBvZmZzZXRZID0gdHJhbnNmb3JtT3JpZ2luWSgpLnR5cGUoKSA9
PSBQZXJjZW50ID8gYm91bmRpbmdCb3gueSgpIDogMDsKKyAgICAKKyAgICBpZiAoYXBwbHlUcmFu
c2Zvcm1PcmlnaW4pIHsKKyAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZTNkKHRyYW5zZm9ybU9y
aWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3VuZGluZ0JveC53aWR0aCgpKSArIG9mZnNldFgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW5ZKCkuY2FsY0Zsb2F0
VmFsdWUoYm91bmRpbmdCb3guaGVpZ2h0KCkpICsgb2Zmc2V0WSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpblooKSk7CisgICAgfQorICAgIAorICAgIHVuc2ln
bmVkIHNpemUgPSB0cmFuc2Zvcm1PcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5zaXplKCk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgdHJhbnNmb3JtT3Bl
cmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmFwcGx5KHRyYW5zZm9ybSwgYm91bmRpbmdCb3guc2l6
ZSgpKTsKKyAgICAKKyAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHsKKyAgICAgICAgdHJh
bnNmb3JtLnRyYW5zbGF0ZTNkKC10cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zsb2F0VmFsdWUoYm91
bmRpbmdCb3gud2lkdGgoKSkgLSBvZmZzZXRYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLXRyYW5zZm9ybU9yaWdpblkoKS5jYWxjRmxvYXRWYWx1ZShib3VuZGluZ0JveC5oZWlnaHQo
KSkgLSBvZmZzZXRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXRyYW5zZm9ybU9y
aWdpblooKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCmluZGV4IDU1MTUxZDNlY2U5N2Y3ZjlkZjFkNDRjN2M5MDkzMTM5NmI4NjVm
YzMuLjM0YjU3ZWUzMzE5MWI2MWIyY2IwNDViODE4NDA5NWNkMGMyYjFhY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC04OTQsNiArODk0LDcg
QEAgcHVibGljOgogCiAgICAgZW51bSBBcHBseVRyYW5zZm9ybU9yaWdpbiB7IEluY2x1ZGVUcmFu
c2Zvcm1PcmlnaW4sIEV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4gfTsKICAgICB2b2lkIGFwcGx5VHJh
bnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94
U2l6ZSwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKSBjb25z
dDsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3Qg
RmxvYXRSZWN0JiBib3VuZGluZ0JveCwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBJbmNsdWRlVHJh
bnNmb3JtT3JpZ2luKSBjb25zdDsKICAgICB2b2lkIHNldFBhZ2VTY2FsZVRyYW5zZm9ybShmbG9h
dCk7CiAKICAgICBib29sIGhhc01hc2soKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9tYXNrLmhhc0ltYWdlKCkgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFza0Jv
eEltYWdlLmhhc0ltYWdlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5
bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCmluZGV4IDk5YzE3ODE3NThkMDVjMTgxNWUyMzY3
NGFhYjY4MWJlZTIyMzcyNTQuLjQ5OTU2YTRkNDZhNDRhZTI1OTFkMTIyNmU0YjAzNDg3NWU3ZWJl
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50LmNwcApAQCAtNjYsMTQgKzY2LDE1IEBAIEFmZmluZVRyYW5zZm9ybSBTVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiAg
ICAgQWZmaW5lVHJhbnNmb3JtIG1hdHJpeDsKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5k
ZXJlcigpID8gcmVuZGVyZXIoKS0+c3R5bGUoKSA6IDA7CiAKLSAgICAvLyBpZiBDU1MgcHJvcGVy
dHkgd2FzIHNldCwgdXNlIHRoYXQsIG90aGVyd2lzZSBmYWxsYmFjayB0byBhdHRyaWJ1dGUgKGlm
IHNldCkKKyAgICAvLyBJZiBDU1MgcHJvcGVydHkgd2FzIHNldCwgdXNlIHRoYXQsIG90aGVyd2lz
ZSBmYWxsYmFjayB0byBhdHRyaWJ1dGUgKGlmIHNldCkuCiAgICAgaWYgKHN0eWxlICYmIHN0eWxl
LT5oYXNUcmFuc2Zvcm0oKSkgewotICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwotICAg
ICAgICAvLyBGb3Igbm93LCB0aGUgdHJhbnNmb3JtLW9yaWdpbiBpcyBub3QgdGFrZW4gaW50byBh
Y2NvdW50Ci0gICAgICAgIC8vIEFsc28sIGFueSBwZXJjZW50YWdlIHZhbHVlcyB3aWxsIG5vdCBi
ZSB0YWtlbiBpbnRvIGFjY291bnQKLSAgICAgICAgc3R5bGUtPmFwcGx5VHJhbnNmb3JtKHQsIElu
dFNpemUoMCwgMCksIFJlbmRlclN0eWxlOjpFeGNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKLSAgICAg
ICAgLy8gRmxhdHRlbiBhbnkgM0QgdHJhbnNmb3JtCi0gICAgICAgIG1hdHJpeCA9IHQudG9BZmZp
bmVUcmFuc2Zvcm0oKTsKKyAgICAgICAgLy8gUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVycyBkb24n
dCBoYXZlIGFuIG9iamVjdEJvdW5kaW5nQm94LiBUaGVyZWZvcmUgbm8KKyAgICAgICAgLy8gcGVy
Y2VudGFnZSB2YWx1ZSBjYW4gYmUgdXNlZCB0aGVyZS4gICAgICAgIAorICAgICAgICBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07CisgICAgICAgIHN0eWxlLT5hcHBseVRyYW5zZm9ybSh0
cmFuc2Zvcm0sIHJlbmRlcmVyKCktPm9iamVjdEJvdW5kaW5nQm94KCkpOworCisgICAgICAgIC8v
IEZsYXR0ZW4gYW55IDNEIHRyYW5zZm9ybS4KKyAgICAgICAgbWF0cml4ID0gdHJhbnNmb3JtLnRv
QWZmaW5lVHJhbnNmb3JtKCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHRyYW5zZm9ybSgpLmNvbmNh
dGVuYXRlKG1hdHJpeCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMGExNDQ4ZGU0YzQ1NTE5ODYzZmM4NjVkY2Y0YmQ2
ZDBjZmVmNDAwLi5hY2MzZjI2ZmVkYTgyM2JjOGZkZWRiOWJiYjdjNDg2NGYzNmU4Y2JjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDMtMDUgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9i
ZS5jb20+CisKKyAgICAgICAgU1ZHIHNob3VsZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmlnaW4gYW5k
IHJlbGF0aXZlIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzkwNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTZXBhcmF0ZSB0ZXN0cyBmb3IgU1ZHIENTUyB0cmFuc2Zvcm0tb3JpZ2luIHByb3Bl
cnR5IHN1cHBvcnQgYW5kIGZvciAKKyAgICAgICAgQ1NTIHRyYW5zbGF0aW9ucyBzcGVjaWZpZWQg
d2l0aCBwZXJjZW50YWdlcyBhbmQgYXBwbGllZCB0byBhbiBTVkcgZWxlbWVudC4KKworICAgICAg
ICAqIHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVl
cy54aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdp
bi1jc3MtcHJvcGVydHktZXhwZWN0ZWQueGh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFu
c2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sOiBBZGRlZC4KKwogMjAx
Mi0wMy0wNiAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTA5ODQwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zvcm0tdmFsdWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYzMjczNGFlNGMyYjNlNjdhNmIwMDk5ODlhNzlmNmVm
Njk1ZGQwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3Bl
cmNlbnQtdHJhbnNmb3JtLXZhbHVlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0
IGZvciBidWcgNzkwNjggLSBTVkcgc2hvdWxkIHN1cHBvcnQgdHJhbnNmb3JtLW9yaWdpbiBhbmQg
cmVsYXRpdmUgdmFsdWVzIFZlcmlmeSB0aGF0IENTUyB0cmFuc2Zvcm0gdHJhbnNsYXRlIHZhbHVl
cyBjYW4gYmUgc3BlY2lmaWVkIHdpdGggcGVyY2VudGFnZXMuCisKK1lvdSBzaG91bGQgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcyBhbmQgb25lIDgweDYwIGdyZWVuIHJlY3RhbmdsZS4g
VGhlIGdyZWVuIHJlY3RhbmdsZSBvYnNjdXJlcyB0d28gcmVkIHJlY3RhbmdsZXMgb2YgdGhlIHNh
bWUgc2l6ZSB3aGljaCBoYXZlIGJlZW4gdHJhbnNsYXRlZCB0byB0aGUgc2FtZSBsb2NhdGlvbi4K
K1BBU1MgIHJlY3QgInIxIiBbNTAsMjAwIDgweDYwXSBleHBlY3RlZCBbNTAsMjAwIDgweDYwXQor
UEFTUyAgcmVjdCAicjIiIFs1MCwyMDAgODB4NjBdIGV4cGVjdGVkIFs1MCwyMDAgODB4NjBdCitQ
QVNTICByZWN0ICJyMyIgWzUwLDIwMCA4MHg2MF0gZXhwZWN0ZWQgWzUwLDIwMCA4MHg2MF0KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zvcm0t
dmFsdWVzLnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zv
cm0tdmFsdWVzLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkYTY5ZWE5OWI5MWQ5ZTk2OGZkMjhjNDQ2ZGM1
Y2M1ZDVjN2RkOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jt
cy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGh0bWwg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGJvZHk+CisgIDxwPlRlc3Qg
Zm9yIGJ1ZyA8YSBocmVmPSIiPjc5MDY4PC9hPiAtIFNWRyBzaG91bGQgc3VwcG9ydCB0cmFuc2Zv
cm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgVmVyaWZ5IHRoYXQgQ1NTIHRyYW5zZm9y
bSB0cmFuc2xhdGUgdmFsdWVzIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCBwZXJjZW50YWdlcy4KKyAg
PC9wPgorICBZb3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMgYW5kIG9u
ZSA4MHg2MCBncmVlbiByZWN0YW5nbGUuICAgVGhlIGdyZWVuIHJlY3RhbmdsZSBvYnNjdXJlcyB0
d28gCisgIHJlZCByZWN0YW5nbGVzIG9mIHRoZSBzYW1lIHNpemUgd2hpY2ggaGF2ZSBiZWVuIHRy
YW5zbGF0ZWQgdG8gdGhlIHNhbWUgbG9jYXRpb24uCisgIDxwPgorICA8L3A+CisgIDxzdmcgc3R5
bGU9InBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjBweDsiIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgPHJlY3QgaWQ9InIxIiB4PSIxMCIgeT0iMjAwIiB3
aWR0aD0iODAiIGhlaWdodD0iNjAiIGZpbGw9InJlZCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3Jt
OiB0cmFuc2xhdGUoNTAlKSIvPgorICAgIDxyZWN0IGlkPSJyMiIgeD0iOTAiIHk9IjI2MCIgd2lk
dGg9IjgwIiBoZWlnaHQ9IjYwIiBmaWxsPSJyZWQiIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTog
dHJhbnNsYXRlKC01MCUsIC0xMDAlKSIvPgorICAgIDxyZWN0IGlkPSJyMyIgeD0iMTAiIHk9IjIw
MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjYwIiBmaWxsPSJncmVlbiIgc3R5bGU9Ii13ZWJraXQtdHJh
bnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAwJSkiLz4KKyAgPC9zdmc+CisgIDxwcmUgaWQ9ImxvZyI+
PC9wcmU+Cis8L2JvZHk+Cis8c2NyaXB0PjwhW0NEQVRBWworCisgICAgdmFyIHJlc3VsdFN0cmlu
ZyA9ICIiOworCisgICAgZnVuY3Rpb24gY2hlY2tDbGllbnRSZWN0KHJlY3RJRCkgeworICAgICAg
ICB2YXIgY3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZWN0SUQpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOworICAgICAgICB2YXIgY3JTdHJpbmcgPSAiWyIgKyBjci5sZWZ0ICsgIiwiICsg
Y3IudG9wICsgIiAiICsgY3Iud2lkdGggKyAieCIgKyBjci5oZWlnaHQgKyAiXSI7CisgICAgICAg
IHZhciBleHBlY3RlZCA9ICJbNTAsMjAwIDgweDYwXSI7CisgICAgICAgIHJlc3VsdFN0cmluZyAr
PSAoKGNyU3RyaW5nID09IGV4cGVjdGVkKSA/ICJQQVNTICIgOiAiRkFJTCAiKSArICIgcmVjdCBc
IiIgKyByZWN0SUQgKyAiXCIgIiArIGNyU3RyaW5nICsgIiBleHBlY3RlZCAiICsgZXhwZWN0ZWQg
KyAiXG4iOworICAgIH0KKworICAgIFsicjEiLCAicjIiLCAicjMiXS5tYXAoY2hlY2tDbGllbnRS
ZWN0KTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuaW5uZXJIVE1MID0gcmVz
dWx0U3RyaW5nOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgXV0+PC9zY3JpcHQ+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0t
b3JpZ2luLWNzcy1wcm9wZXJ0eS1leHBlY3RlZC54aHRtbCBiL0xheW91dFRlc3RzL3N2Zy90cmFu
c2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LWV4cGVjdGVkLnhodG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUxZmRlMDlhYzFmODA0ZmM5MDhjNThjYzc3ZjM4NzFjNzI5MGQ5MDgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNz
cy1wcm9wZXJ0eS1leHBlY3RlZC54aHRtbApAQCAtMCwwICsxLDUwIEBACis8aHRtbCB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8c3R5bGU+CisjdHJhbnNmb3JtT3JpZ2lu
RGl2IHsKKyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgIHdpZHRoOiAzMHB4OworICAgaGVpZ2h0
OiAzMHB4OworICAgYmFja2dyb3VuZDogZ3JlZW47CisgICAtd2Via2l0LXRyYW5zZm9ybTogcm90
YXRlKDkwZGVnKTsKK30KKzwvc3R5bGU+CisKKzxib2R5PgorICA8ZGl2IGlkPSJkaXZSb290Ij48
L2Rpdj4KKworICA8c2NyaXB0PjwhW0NEQVRBWworCisgICAgZnVuY3Rpb24gYWRkVHJhbnNmb3Jt
T3JpZ2luRGl2KHgsIHksIHRyYW5zZm9ybU9yaWdpbikKKyAgICB7CisgICAgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUo
ImlkIiwgInRyYW5zZm9ybU9yaWdpbkRpdiIpOworICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoInN0
eWxlIiwgInRvcDogIiArIHkgKyAicHg7IGxlZnQ6ICIrIHggKyAicHg7IC13ZWJraXQtdHJhbnNm
b3JtLW9yaWdpbjogIiArIHRyYW5zZm9ybU9yaWdpbiArICI7Iik7CisgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdlJvb3QiKS5hcHBlbmRDaGlsZChkaXYpOworICAgIH0KKworICAg
IHZhciB0cmFuc2Zvcm1PcmlnaW5zID0gWworICAgICAgICAgIjUwJSA1MCUiLAorICAgICAgICAg
IjAlIDAlIiwKKyAgICAgICAgICIwJSA1MCUiLAorICAgICAgICAgIjEwMCUgMCUiLAorICAgICAg
ICAgIjAlIDUwJSIsCisgICAgICAgICAiMTAwJSA1MCUiLAorICAgICAgICAgIjAlIDEwMCUiLAor
ICAgICAgICAgIjUwJSAxMDAlIiwKKyAgICAgICAgICIxMDAlIDEwMCUiLAorICAgICBdOworCisg
ICAgIGZ1bmN0aW9uIHRlc3QoKQorICAgICB7CisgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRyYW5zZm9ybU9yaWdpbnMubGVuZ3RoOyBpKyspICB7CisgICAgICAgICAgICAgdmFyIHggPSA2
MCArIChpICUgIDQpICogNjA7CisgICAgICAgICAgICAgdmFyIHkgPSA2MCArIE1hdGguZmxvb3Io
aSAvIDQpICogNjA7CisgICAgICAgICAgICAgYWRkVHJhbnNmb3JtT3JpZ2luRGl2KHgsIHksIHRy
YW5zZm9ybU9yaWdpbnNbaV0pOyAKKyAgICAgICAgIH0KKyAgICAgfQorCisgICAgIHRlc3QoKTsK
KworICBdXT48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sIGIv
TGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHku
eGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWVmN2RmMjEwNjRiNjA2ZjFlMzI3ZDE0YjcwMzE5NzRhYzAwMDk0
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9y
bS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sCkBAIC0wLDAgKzEsNjYgQEAKKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzdHlsZT4KKyNzdmdSb290IHsKKyAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7IAorICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworfQorCisj
dHJhbnNmb3JtT3JpZ2luUmVjdCB7CisgICAgZmlsbDogZ3JlZW47CisgICAgLXdlYmtpdC10cmFu
c2Zvcm06IHJvdGF0ZSg5MGRlZyk7Cit9Cis8L3N0eWxlPgorCis8IS0tCisgIFRlc3QgZm9yIGJ1
ZyA3OTA2OCAtIFNWRyBzaG91bGQgc3VwcG9ydCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2
ZSB2YWx1ZXMuPC9wPgorICAKKyAgWW91IHNob3VsZCBzZWUgOSBncmVlbiAyMHgyMCByZWN0YW5n
bGVzLiAgRWFjaCBncmVlbiByZWN0YW5nbGUgaXMgYWN0dWFsbHkgb25lIG9mIGEgc2V0IG9mIGFi
b3V0IDYsIGVhY2ggb25lIAorICB3aXRoIGEgZGlmZmVyZW50IGJ1dCBlcXVpdmFsZW50IHZhbHVl
IGZvciB0aGUgQ1NTIHRyYW5zZm9ybS1vcmlnaW4gcHJvcGVydHkuIAorLS0+CisKKzxib2R5Pgor
ICA8c3ZnIGlkPSJzdmdSb290IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwv
c3ZnPgorCisgIDxzY3JpcHQ+PCFbQ0RBVEFbCisgICAgdmFyIHN2Z05TID0gImh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIjsKKworICAgIGZ1bmN0aW9uIGFkZFRyYW5zZm9ybU9yaWdpblJlY3Qo
eCwgeSwgcykKKyAgICB7CisgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
TlMoc3ZnTlMsICJyZWN0Iik7CisgICAgICAgdmFyIHRyYW5zZm9ybU9yaWdpbiA9ICh0eXBlb2Yo
cykgPT0gInN0cmluZyIpID8gcyA6ICAoeCArIHNbMF0pICsgIiAiICsgKHkgKyBzWzFdKTsKKyAg
ICAgICByZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHJhbnNmb3JtT3JpZ2luUmVjdCIpOworICAg
ICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ4IiwgeCk7CisgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUo
InkiLCB5KTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAzMCk7CisgICAgICAg
cmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIDMwKTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0
ZSgic3R5bGUiLCAiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAiICsgdHJhbnNmb3JtT3JpZ2lu
ICsgIjsiKTsKKyAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnUm9vdCIpLmFwcGVu
ZENoaWxkKHJlY3QpOworICAgIH0KKworICAgIHZhciBlcXVpdmFsZW50VHJhbnNmb3JtT3JpZ2lu
cyA9IFsKKyAgICAgICAgIFsiNTAlIDUwJSIsICJjZW50ZXIgNTAlIiwgIjUwJSBjZW50ZXIiLCAi
Y2VudGVyIiwgImNlbnRlciBjZW50ZXIiLCBbMTUsIDE1XV0sCisgICAgICAgICBbIjAlIDAlIiwg
ImxlZnQgMCUiLCAiMCUgdG9wIiwgImxlZnQgdG9wIiwgInRvcCBsZWZ0IiwgWzAsIDBdXSwKKyAg
ICAgICAgIFsiMCUgNTAlIiwgImxlZnQgNTAlIiwgIjAlIGNlbnRlciIsICJsZWZ0IiwgImxlZnQg
Y2VudGVyIiwgImNlbnRlciBsZWZ0IiwgWzAsIDE1XV0sCisgICAgICAgICBbIjEwMCUgMCUiLCAi
cmlnaHQgMCUiLCAiMTAwJSB0b3AiLCAicmlnaHQgdG9wIiwgInRvcCByaWdodCIsIFszMCwgMF1d
LAorICAgICAgICAgWyIwJSA1MCUiLCAibGVmdCA1MCUiLCAiMCUgY2VudGVyIiwgImxlZnQgY2Vu
dGVyIiwgImNlbnRlciBsZWZ0IiwgWzAsIDE1XV0sCisgICAgICAgICBbIjEwMCUgNTAlIiwgInJp
Z2h0IDUwJSIsICIxMDAlIGNlbnRlciIsICJyaWdodCBjZW50ZXIiLCAiY2VudGVyIHJpZ2h0Iiwg
WzMwLCAxNV1dLAorICAgICAgICAgWyIwJSAxMDAlIiwgImxlZnQgMTAwJSIsICIwJSBib3R0b20i
LCAibGVmdCBib3R0b20iLCAibGVmdCBib3R0b20iLCBbMCwgMzBdXSwKKyAgICAgICAgIFsiNTAl
IDEwMCUiLCAiY2VudGVyIDEwMCUiLCAiNTAlIGJvdHRvbSIsICJib3R0b20iLCAiY2VudGVyIGJv
dHRvbSIsICJib3R0b20gY2VudGVyIiwgWzE1LCAzMF1dLAorICAgICAgICAgWyIxMDAlIDEwMCUi
LCAicmlnaHQgMTAwJSIsICIxMDAlIGJvdHRvbSIsICJyaWdodCBib3R0b20iLCAiYm90dG9tIHJp
Z2h0IiwgWzMwLCAzMF1dCisgICAgIF07CisKKyAgICAgZnVuY3Rpb24gdGVzdCgpCisgICAgIHsK
KyAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXF1aXZhbGVudFRyYW5zZm9ybU9yaWdpbnMu
bGVuZ3RoOyBpKyspICB7CisgICAgICAgICAgICAgdmFyIHggPSA2MCArIChpICUgIDQpICogNjA7
CisgICAgICAgICAgICAgdmFyIHkgPSA2MCArIE1hdGguZmxvb3IoaSAvIDQpICogNjA7CisgICAg
ICAgICAgICAgZXF1aXZhbGVudFRyYW5zZm9ybU9yaWdpbnNbaV0ubWFwKCBmdW5jdGlvbihzKSB7
IGFkZFRyYW5zZm9ybU9yaWdpblJlY3QoeCwgeSwgcyk7IH0gKTsKKyAgICAgICAgIH0KKyAgICAg
fQorCisgICAgIHRlc3QoKTsKKworICBdXT48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130861</attachid>
            <date>2012-03-08 11:19:14 -0800</date>
            <delta_ts>2012-03-08 12:44:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79068-20120308111922.patch</filename>
            <type>text/plain</type>
            <size>23584</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5OTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhkZmE5MzQ5ODA3NDEx
NmExNDcxYTJiYzk0OWJkNWQ0N2Q0NWVkZS4uOTM4MTg1OWEwZGNhYzcyOGFiYzlkOWM0NGRiZTI0
YmYwMGZmYWFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAzLTA1ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQgc3VwcG9y
dCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgU1ZHIHN1cHBvcnQgZm9yIHRoZSBD
U1MgJ3RyYW5zZm9ybS1vcmlnaW4nIHByb3BlcnR5IGFuZCBmb3IgcGVyY2VudGFnZQorICAgICAg
ICB2YWx1ZXMgaW4gdGhlIHRyYW5zZm9ybSB0cmFuc2xhdGUgZnVuY3Rpb24uICBUaGUgY2hhbmdl
cyBjb25mb3JtIHRvCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdHJhbnNm
b3Jtcy8uCisKKyAgICAgICAgVGVzdHM6IHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3Jt
LXZhbHVlcy54aHRtbAorICAgICAgICAgICAgICAgc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9y
aWdpbi1jc3MtcHJvcGVydHkueGh0bWwKKworICAgICAgICAqIGNzcy9zdmcuY3NzOgorICAgICAg
ICAoKik6CisgICAgICAgIChodG1sfCogPiBzdmcpOgorICAgICAgICBEZWZhdWx0IHRyYW5zZm9y
bS1vcmlnaW4gZm9yIFNWRyBlbGVtZW50cyBpcyAwIDAKKworICAgICAgICAqIHBsYXRmb3JtL0xl
bmd0aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoOjpjYWxjRmxvYXRWYWx1ZSk6CisgICAg
ICAgIEFkZGVkIGEgY2FsY0Zsb2F0VmFsdWUgb3ZlcmxvYWQgd2hvc2UgbWF4IHBhcmFtZXRlciAo
Zm9yIHBlcmNlbnQgbGVuZ3RocykgaXMgYSBmbG9hdC4KKyAgICAgICAgVGhlIG9yaWdpbmFsIHZl
cnNpb24gd2lsbCBiZSBvYnNvbGV0ZSB3aGVuIHRoZSBzdWItcGl4ZWwgbGF5b3V0IHN1cHBvcnQg
aXMgY29tcGxldGVkLgorCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6b3B0aW1pemVGb3JUcmFu
c2Zvcm1PcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNm
b3JtKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAg
KiBzdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0p
OgorCiAyMDEyLTAzLTA2ICBGaWxpcCBTcGFjZWsgIDxmc3BhY2VrQHJpbS5jb20+CiAKICAgICAg
ICAgW0JsYWNrQmVycnldIERpc2FibGUgYm9yZGVyIHJhZGl1cyBjbGlwcyAocjk1MjM5KSBmb3Ig
QmxhY2tCZXJyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3Mvc3ZnLmNzcwppbmRleCBiYzMxMjY5Zjg4MDYwMmU1MDBhNDJmNWU4NWJl
NjUyN2VhZmY1MWU2Li5hMWExM2YwMjk3MzMwNTgyYjVlOWU5ZjBiN2M1ZmM2ODdjZTlmMTU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mvc3ZnLmNzcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3Mvc3ZnLmNzcwpAQCAtMjYsNiArMjYsNyBAQAogICovCiAKIEBuYW1lc3BhY2UgImh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsKK0BuYW1lc3BhY2UgaHRtbCAiaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCI7CiAKIC8qCiAgICAgV2hlbiBhbiBvdXRlcm1vc3QgU1ZHICdzdmcnIGVs
ZW1lbnQgaXMgc3RhbmQtYWxvbmUgb3IgZW1iZWRkZWQgaW5saW5lIHdpdGhpbiBhIHBhcmVudCBY
TUwgZ3JhbW1hciAKQEAgLTYzLDMgKzY0LDEzIEBAIHRleHQsIHRzcGFuLCB0cmVmIHsKIDpmb2N1
cyB7CiAgICAgb3V0bGluZTogYXV0byA1cHggLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yCiB9CisK
Ky8qIHRyYW5zZm9ybS1vcmlnaW4gb24gU1ZHIGVsZW1lbnRzICovCisKKyogeworICAgIC13ZWJr
aXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOworfQorCitodG1sfCogPiBzdmcgeworICAgIC13ZWJr
aXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCmluZGV4IDUzYjAyNjBjMjA3YjA3ODI4OTVlZjM3
N2M4NGNmNjE2NDc1NzQ5N2UuLjZjZmE1MTU1NjI3MDJmZmRkN2U2YzBiNDhhMWNhNWQ4NzY5MDk3
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCkBAIC0xNjUsNiArMTY1LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKKyAgICAvLyBGSVhNRTogd2hlbiBzdWJwaXhl
bCBsYXlvdXQgaXMgc3VwcG9ydGVkIHRoaXMgY29weSBvZiBjYWxjRmxvYXRWYWx1ZSgpIGNhbiBi
ZSByZW1vdmVkLiBTZWUgYnVnIDcxMTQzLgogICAgIGZsb2F0IGNhbGNGbG9hdFZhbHVlKGludCBt
YXhWYWx1ZSkgY29uc3QKICAgICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSgpKSB7CkBAIC0xODUs
NiArMTg2LDI2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisgICAgZmxv
YXQgY2FsY0Zsb2F0VmFsdWUoZmxvYXQgbWF4VmFsdWUpIGNvbnN0CisgICAgeworICAgICAgICBz
d2l0Y2ggKHR5cGUoKSkgeworICAgICAgICBjYXNlIEZpeGVkOgorICAgICAgICAgICAgcmV0dXJu
IGdldEZsb2F0VmFsdWUoKTsKKyAgICAgICAgY2FzZSBQZXJjZW50OgorICAgICAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wZik7Cisg
ICAgICAgIGNhc2UgQXV0bzoKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4o
bWF4VmFsdWUpOworICAgICAgICBjYXNlIFJlbGF0aXZlOgorICAgICAgICBjYXNlIEludHJpbnNp
YzoKKyAgICAgICAgY2FzZSBNaW5JbnRyaW5zaWM6CisgICAgICAgIGNhc2UgVW5kZWZpbmVkOgor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgfQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgfQorCiAgICAgYm9vbCBpc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUo
KSA9PSBVbmRlZmluZWQ7IH0KICAgICBib29sIGlzWmVybygpIGNvbnN0IAogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDE0NTk1
MWQzYWQzZmI4ZThmODQ0YzIyZjQyOThmZGRmM2ViMTZmMGYuLjYyMDIwMGE5MjE0MThiYjEyM2U3
ZWE0NjIxZDRhMjkyZGYwNjBjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEFkb2JlIFN5c3RlbXMgSW5j
b3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03
NjksMzkgKzc3MCw2NyBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRDb250ZW50KFF1b3RlVHlwZSBx
dW90ZSwgYm9vbCBhZGQpCiAKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9j
b250ZW50ID0gQ29udGVudERhdGE6OmNyZWF0ZShxdW90ZSk7CiB9Ci0KLXZvaWQgUmVuZGVyU3R5
bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0
IExheW91dFNpemUmIGJvcmRlckJveFNpemUsIEFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3Jp
Z2luKSBjb25zdAorICAgIAoraW5saW5lIGJvb2wgcmVxdWlyZVRyYW5zZm9ybU9yaWdpbihjb25z
dCBWZWN0b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gPiYgdHJhbnNmb3JtT3BlcmF0aW9u
cywgUmVuZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2luKQogewogICAg
IC8vIHRyYW5zZm9ybS1vcmlnaW4gYnJhY2tldHMgdGhlIHRyYW5zZm9ybSB3aXRoIHRyYW5zbGF0
ZSBvcGVyYXRpb25zLgogICAgIC8vIE9wdGltaXplIGZvciB0aGUgY2FzZSB3aGVyZSB0aGUgb25s
eSB0cmFuc2Zvcm0gaXMgYSB0cmFuc2xhdGlvbiwgc2luY2UgdGhlIHRyYW5zZm9ybS1vcmlnaW4g
aXMgaXJyZWxldmFudAogICAgIC8vIGluIHRoYXQgY2FzZS4KLSAgICBib29sIGFwcGx5VHJhbnNm
b3JtT3JpZ2luID0gZmFsc2U7Ci0gICAgdW5zaWduZWQgcyA9IHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5zaXplKCk7Ci0gICAgdW5z
aWduZWQgaTsKLSAgICBpZiAoYXBwbHlPcmlnaW4gPT0gSW5jbHVkZVRyYW5zZm9ybU9yaWdpbikg
ewotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgczsgaSsrKSB7Ci0gICAgICAgICAgICBUcmFuc2Zv
cm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X3RyYW5zZm9ybS0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKVtpXS0+Z2V0T3BlcmF0aW9uVHlw
ZSgpOwotICAgICAgICAgICAgaWYgKHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xB
VEVfWAotICAgICAgICAgICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6
VFJBTlNMQVRFX1kKLSAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVy
YXRpb246OlRSQU5TTEFURSAKLSAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zv
cm1PcGVyYXRpb246OlRSQU5TTEFURV9aCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0g
VHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfM0QKLSAgICAgICAgICAgICAgICAgICAgKSB7
Ci0gICAgICAgICAgICAgICAgYXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSB0cnVlOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgaWYgKGFwcGx5T3Jp
Z2luICE9IFJlbmRlclN0eWxlOjpJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICB1bnNpZ25lZCBzaXplID0gdHJhbnNmb3JtT3BlcmF0aW9ucy5zaXpl
KCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBU
cmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IHRyYW5zZm9ybU9wZXJhdGlv
bnNbaV0tPmdldE9wZXJhdGlvblR5cGUoKTsKKyAgICAgICAgaWYgKHR5cGUgIT0gVHJhbnNmb3Jt
T3BlcmF0aW9uOjpUUkFOU0xBVEVfWAorICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1P
cGVyYXRpb246OlRSQU5TTEFURV9ZCisgICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9ybU9w
ZXJhdGlvbjo6VFJBTlNMQVRFIAorICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVy
YXRpb246OlRSQU5TTEFURV9aCisgICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9ybU9wZXJh
dGlvbjo6VFJBTlNMQVRFXzNEKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAg
IAorICAgIHJldHVybiBmYWxzZTsKK30KIAotICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikg
ewordm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgm
IHRyYW5zZm9ybSwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94U2l6ZSwgQXBwbHlUcmFuc2Zv
cm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNvbnN0Cit7CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxU
cmFuc2Zvcm1PcGVyYXRpb24+ID4mIHRyYW5zZm9ybU9wZXJhdGlvbnMgPSByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCk7CisgICAgYm9v
bCBhcHBseVRyYW5zZm9ybU9yaWdpbiA9IHJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4odHJhbnNmb3Jt
T3BlcmF0aW9ucywgYXBwbHlPcmlnaW4pOworCisgICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2lu
KQogICAgICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlM2QodHJhbnNmb3JtT3JpZ2luWCgpLmNhbGNG
bG9hdFZhbHVlKGJvcmRlckJveFNpemUud2lkdGgoKSksIHRyYW5zZm9ybU9yaWdpblkoKS5jYWxj
RmxvYXRWYWx1ZShib3JkZXJCb3hTaXplLmhlaWdodCgpKSwgdHJhbnNmb3JtT3JpZ2luWigpKTsK
LSAgICB9CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgczsgaSsrKQotICAgICAgICByYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmFw
cGx5KHRyYW5zZm9ybSwgYm9yZGVyQm94U2l6ZSk7CisgICAgdW5zaWduZWQgc2l6ZSA9IHRyYW5z
Zm9ybU9wZXJhdGlvbnMuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXpl
OyArK2kpCisgICAgICAgIHRyYW5zZm9ybU9wZXJhdGlvbnNbaV0tPmFwcGx5KHRyYW5zZm9ybSwg
Ym9yZGVyQm94U2l6ZSk7CiAKLSAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHsKKyAgICBp
ZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pCiAgICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGUzZCgt
dHJhbnNmb3JtT3JpZ2luWCgpLmNhbGNGbG9hdFZhbHVlKGJvcmRlckJveFNpemUud2lkdGgoKSks
IC10cmFuc2Zvcm1PcmlnaW5ZKCkuY2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94U2l6ZS5oZWlnaHQo
KSksIC10cmFuc2Zvcm1PcmlnaW5aKCkpOworfQorCit2b2lkIFJlbmRlclN0eWxlOjphcHBseVRy
YW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBseU9yaWdpbikgY29uc3QKK3sK
KyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gPiYgdHJhbnNmb3Jt
T3BlcmF0aW9ucyA9IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRp
b25zLm9wZXJhdGlvbnMoKTsKKyAgICBib29sIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gcmVxdWly
ZVRyYW5zZm9ybU9yaWdpbih0cmFuc2Zvcm1PcGVyYXRpb25zLCBhcHBseU9yaWdpbik7CisgICAg
CisgICAgZmxvYXQgb2Zmc2V0WCA9IHRyYW5zZm9ybU9yaWdpblgoKS50eXBlKCkgPT0gUGVyY2Vu
dCA/IGJvdW5kaW5nQm94LngoKSA6IDA7CisgICAgZmxvYXQgb2Zmc2V0WSA9IHRyYW5zZm9ybU9y
aWdpblkoKS50eXBlKCkgPT0gUGVyY2VudCA/IGJvdW5kaW5nQm94LnkoKSA6IDA7CisgICAgCisg
ICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2luKSB7CisgICAgICAgIHRyYW5zZm9ybS50cmFuc2xh
dGUzZCh0cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zsb2F0VmFsdWUoYm91bmRpbmdCb3gud2lkdGgo
KSkgKyBvZmZzZXRYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtT3Jp
Z2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvdW5kaW5nQm94LmhlaWdodCgpKSArIG9mZnNldFksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW5aKCkpOworICAgIH0K
KyAgICAKKyAgICB1bnNpZ25lZCBzaXplID0gdHJhbnNmb3JtT3BlcmF0aW9ucy5zaXplKCk7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgdHJhbnNmb3Jt
T3BlcmF0aW9uc1tpXS0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0JveC5zaXplKCkpOworICAg
IAorICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikgeworICAgICAgICB0cmFuc2Zvcm0udHJh
bnNsYXRlM2QoLXRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3VuZGluZ0JveC53
aWR0aCgpKSAtIG9mZnNldFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtdHJhbnNm
b3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvdW5kaW5nQm94LmhlaWdodCgpKSAtIG9mZnNl
dFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtdHJhbnNmb3JtT3JpZ2luWigpKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKaW5kZXggNTUxNTFkM2VjZTk3ZjdmOWRmMWQ0NGM3YzkwOTMxMzk2Yjg2NWZjMy4uMzRiNTdl
ZTMzMTkxYjYxYjJjYjA0NWI4MTg0MDk1Y2QwYzJiMWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTg5NCw2ICs4OTQsNyBAQCBwdWJsaWM6
CiAKICAgICBlbnVtIEFwcGx5VHJhbnNmb3JtT3JpZ2luIHsgSW5jbHVkZVRyYW5zZm9ybU9yaWdp
biwgRXhjbHVkZVRyYW5zZm9ybU9yaWdpbiB9OwogICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJh
bnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBMYXlvdXRTaXplJiBib3JkZXJCb3hTaXplLCBBcHBs
eVRyYW5zZm9ybU9yaWdpbiA9IEluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIGNvbnN0OworICAgIHZv
aWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94LCBBcHBseVRyYW5zZm9ybU9yaWdpbiA9IEluY2x1ZGVUcmFuc2Zvcm1Pcmln
aW4pIGNvbnN0OwogICAgIHZvaWQgc2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZsb2F0KTsKIAogICAg
IGJvb2wgaGFzTWFzaygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21h
c2suaGFzSW1hZ2UoKSB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrQm94SW1hZ2UuaGFz
SW1hZ2UoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5z
Zm9ybWFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudC5jcHAKaW5kZXggOTljMTc4MTc1OGQwNWMxODE1ZTIzNjc0YWFiNjgxYmVl
MjIzNzI1NC4uNDk5NTZhNGQ0NmE0NGFlMjU5MWQxMjI2ZTRiMDM0ODc1ZTdlYmU5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQu
Y3BwCkBAIC02NiwxNCArNjYsMTUgQEAgQWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxlZFRyYW5zZm9y
bWFibGVFbGVtZW50OjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3QKICAgICBBZmZpbmVU
cmFuc2Zvcm0gbWF0cml4OwogICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHJlbmRlcmVyKCkgPyBy
ZW5kZXJlcigpLT5zdHlsZSgpIDogMDsKIAotICAgIC8vIGlmIENTUyBwcm9wZXJ0eSB3YXMgc2V0
LCB1c2UgdGhhdCwgb3RoZXJ3aXNlIGZhbGxiYWNrIHRvIGF0dHJpYnV0ZSAoaWYgc2V0KQorICAg
IC8vIElmIENTUyBwcm9wZXJ0eSB3YXMgc2V0LCB1c2UgdGhhdCwgb3RoZXJ3aXNlIGZhbGxiYWNr
IHRvIGF0dHJpYnV0ZSAoaWYgc2V0KS4KICAgICBpZiAoc3R5bGUgJiYgc3R5bGUtPmhhc1RyYW5z
Zm9ybSgpKSB7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7Ci0gICAgICAgIC8vIEZv
ciBub3csIHRoZSB0cmFuc2Zvcm0tb3JpZ2luIGlzIG5vdCB0YWtlbiBpbnRvIGFjY291bnQKLSAg
ICAgICAgLy8gQWxzbywgYW55IHBlcmNlbnRhZ2UgdmFsdWVzIHdpbGwgbm90IGJlIHRha2VuIGlu
dG8gYWNjb3VudAotICAgICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0odCwgSW50U2l6ZSgwLCAw
KSwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pOwotICAgICAgICAvLyBGbGF0
dGVuIGFueSAzRCB0cmFuc2Zvcm0KLSAgICAgICAgbWF0cml4ID0gdC50b0FmZmluZVRyYW5zZm9y
bSgpOworICAgICAgICAvLyBSZW5kZXJTVkdIaWRkZW5Db250YWluZXJzIGRvbid0IGhhdmUgYW4g
b2JqZWN0Qm91bmRpbmdCb3guIFRoZXJlZm9yZSBubworICAgICAgICAvLyBwZXJjZW50YWdlIHZh
bHVlIGNhbiBiZSB1c2VkIHRoZXJlLiAgICAgICAgCisgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IHRyYW5zZm9ybTsKKyAgICAgICAgc3R5bGUtPmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwg
cmVuZGVyZXIoKS0+b2JqZWN0Qm91bmRpbmdCb3goKSk7CisKKyAgICAgICAgLy8gRmxhdHRlbiBh
bnkgM0QgdHJhbnNmb3JtLgorICAgICAgICBtYXRyaXggPSB0cmFuc2Zvcm0udG9BZmZpbmVUcmFu
c2Zvcm0oKTsKICAgICB9IGVsc2UKICAgICAgICAgdHJhbnNmb3JtKCkuY29uY2F0ZW5hdGUobWF0
cml4KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDAwYTE0NDhkZTRjNDU1MTk4NjNmYzg2NWRjZjRiZDZkMGNmZWY0MDAu
LmM3MGQ0YTQ2OWY4MTBlN2JiYTliNzY2ZmZiY2QxZjhhYWQ4OTVmMGIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAxMi0wMy0wNSAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KKwor
ICAgICAgICBTVkcgc2hvdWxkIHN1cHBvcnQgdHJhbnNmb3JtLW9yaWdpbiBhbmQgcmVsYXRpdmUg
dmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
OTA2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIHRlc3RzIGZvciBTVkcgQ1NTIHRyYW5zZm9ybS1vcmlnaW4gcHJvcGVydHkgc3VwcG9ydCBh
bmQgZm9yIAorICAgICAgICBDU1MgdHJhbnNsYXRpb25zIHNwZWNpZmllZCB3aXRoIHBlcmNlbnRh
Z2VzIGFuZCBhcHBsaWVkIHRvIGFuIFNWRyBlbGVtZW50LgorCisgICAgICAgICogc3ZnL3RyYW5z
Zm9ybXMvZHluYW1pYy10cmFuc2Zvcm0tb3JpZ2luLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAg
ICAgICogc3ZnL3RyYW5zZm9ybXMvZHluYW1pYy10cmFuc2Zvcm0tb3JpZ2luLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL3RyYW5zZm9ybXMvZHluYW1pYy10cmFuc2Zvcm0tb3Jp
Z2luLnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zv
cm0tdmFsdWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL3RyYW5zZm9ybXMv
cGVyY2VudC10cmFuc2Zvcm0tdmFsdWVzLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJh
bnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS1leHBlY3RlZC54aHRtbDogQWRk
ZWQuCisgICAgICAgICogc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVy
dHkueGh0bWw6IEFkZGVkLgorCiAyMDEyLTAzLTA2ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFu
Y29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDk4
NDAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKaW5kZXggODQ1MDU0NGU4ZDUyNGI3MjY1MmJiYjU2MGY0ZGI5MzNjNjBmNDdmMy4u
MTgyZmIxN2VhZTFlNTUxMmVhMWJjNjQ2Mzg5ZWNkMjk3YmY1NTdjNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtOTI0
LDYgKzkyNCw5IEBAIEJVR0NSNjI0MzMgV0lOIDogZmFzdC9pbWFnZXMvZ2lmLWxvb3AtY291bnQu
aHRtbCA9IElNQUdFCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAvLyBOZXcgdGVzdCByZXF1aXJlcyByZWJhc2Vs
aW5lCitCVUdXSzc5MDY4IDogc3ZnL3RyYW5zZm9ybXMvZHluYW1pYy10cmFuc2Zvcm0tb3JpZ2lu
LnN2ZyA9IElNQUdFK1RFWFQgSU1BR0UgVEVYVCBQQVNTCisKKy8vIE5ldyB0ZXN0IHJlcXVpcmVz
IHJlYmFzZWxpbmUKIEJVR1dLNzc1MzUgOiBzdmcvcmVwYWludC9pbm5lci1zdmctY2hhbmdlLXZp
ZXdQb3J0LXJlbGF0aXZlLnN2ZyA9IElNQUdFIElNQUdFK1RFWFQKIAogLy8gVXBkYXRlZCB0ZXN0
LCBuZWVkcyBhIHJlYmFzZWxpbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zv
cm1zL2R5bmFtaWMtdHJhbnNmb3JtLW9yaWdpbi1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9z
dmcvdHJhbnNmb3Jtcy9keW5hbWljLXRyYW5zZm9ybS1vcmlnaW4tZXhwZWN0ZWQucG5nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjUxNGNkMDA3ZmI0YzBmOGFlZmU5M2ZhZTcwODBkMzNiOTU1YTliNTIKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDEwNzQ3CnpjbWVITlola1dONnU8QkJ4O3wqbzJnbik7JGAjUnklUWwj
Rj9GPUlxWlAhKD97TW9gdHZqbmdNTTtrTXlRJGchYAp6T05AcE0yQ2Y/YWdkaD4zRVIqNGZsRE5k
c3FFb2dIcnB2XmNaSGV1fmUrd2FsRXA5RGg+eEhpRy1IKm5eUHV4JUsKenlZSmswUFM1JEItP2Bg
WGI9VE18bkhoTiowRHcmRVBFI0VLWCVHT3VMMG1eeEs3Nl5Xb3FRQUBHQitHQD5+Qz9uCnpVVlEw
IVU/Xj1od3c1fXx3bCVrdUkxRlZhRSY2OC1UVSsofU57cjIwVE9HfiUpQlpebjAxI01CbUFnQipg
QWJ2Wgp6eHoyVChZcD5MN0lyY35LblItKShXbktCSFVGVnkkNGBpUXc+JFdUWl8qfnJBZHBxb2pG
VU5sTCNRRmZvMyEoJU8KekNTTUFxPXRwPEUtfFMwWEM2fEs8alZPNlVTdzt9dVJTM0kjRX5+UT9G
XkhCaz8+dThnYUd7anJaaj9GO09lK3NmCno/ITtpeHUmVSRFUT5PKnQ/RFhqQ1F0Q2J0PGo7ZzxA
ZkJsb0J2PiRmdENHQDgzYHdJZCpQYkVLRTRxcW4xJlAxPAp6c0AqLUlzNmlFOXo4TU97SldKdEox
Tz9JMCQ1a1ZMYGdiVTw1MUo5KStkaU8oTmMmYTcmYmhXOyNvT01hN0BVcTYKenNmZUQ+NWNAQkZw
R1NwOSVXKkdFOVZ9RldJRnV7RnV9fTMxZTF1SXJ8NFl7XzY/TD0kQjczIXFpckhRZ2NoeiheCnpy
TWV6cnxLTFQreC1VZXJVdm4mblFheSUyK3g5V2F5N252eVlWJm9KWUNGZVdjLTgpKFZxSyZWcURA
OHtyUHxOKQp6JXJPdSMkMFJ8KjVWTSotWWFeOCsyaiZNUjRvSzB0QHhiSSZTS1EqQjRrWjQqcDIh
TSt7YSZoeUVnISlpRjd+ZUIKeitBQiZXaX1JdzlzV3pZNlF6UjQxIVVqVGVkd3Y9VFNJUF88KEdY
SjhlcCVHYHdvR2ZtYVlBQl5veGEwcm5afkBFCnpCPyZlejlDdz0pKzZvWW9Je2ZRMU9aTz0+SEhr
PWRvcUdDNFpufHMrdT8jVDdsNXpVQzl0KHltN04xLXhrR2hLQQp6YlFRRFhmJXNCKV9eTChyc2Jv
eCNZV3NhaG8+TSQ4bVhvU2QtTyF0ekxXQmd7dm44bUA0Tj05WmdHNmxiXlNwOy0KekpmS0pzTTdC
bzxzcF87fkxiJHdIfEM5XzY5SkNAbHUpQ1p0UHUmPUZlJnV7ZU1oeCkhRnhZbVlnRCVgVDFidUoo
CnpAUTRme2pAT1lRVCh7VW0/YX5vQXJrfGA7RmVUVz8lRS1fNlFvRWBOSzZDMWFzaD5KUFI7PUdW
TShyOVRmWXA3cgp6THFRJCFrak5hUV8+NEotQXQqJjNZZGdpZmlUS1VtTGpqd2JDUHJBSkEldHE1
eHU0PmxUP2tqQHNWUzBpYSRNY2YKeiVNPVlaa3Y3OVJ0QkAmMTh6Rk1tek5WeXxTakJOJCtWVXcx
OXdwdCZNa20je2RXI2A/eEhwWWJKYn1ScF5FXmUjCnpCYFY/VSRVJWtKKGE/R2NQSzw3K1oySlUq
NTZiU002d2k9O1ZmfT1LVikxKDw9PTtgN2sqXikkblU4TiN3IVAydQp6YHp7eiRGZDtXO0ckTH5m
YkJkUUMxcVdJQmg+VE5zZmV8Z01LQk98VGxGYWUhb0M0VjRPX2JQKVIkI3xgI0Nqam4Kekg/ZkEw
N2coM2ZAb2FTUFVxJU8mQHpgfCQoIURHMTA8Y3NmMTBqfTVFUzE8NFpnbiFzTXc1VXw7U2lnYGsm
IT19CmshbSVrRj17NWVofDl9JGVBIzMqSW14Yz5OPFpWdTFIUVArNW9AbmEmMmZgeFV5WmBfSQoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5z
Zm9ybXMvZHluYW1pYy10cmFuc2Zvcm0tb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N2Zy90cmFuc2Zvcm1zL2R5bmFtaWMtdHJhbnNmb3JtLW9yaWdpbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmVlNWQ2N2M0ZGFmNjNiZDczYWExYWJlZTIwMzRjNzQ2YTA3NDJkNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2R5bmFtaWMtdHJhbnNmb3Jt
LW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgyNSwyNSkgc2l6ZSAx
MDB4MTAwCisgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDI1LDI1KSBzaXplIDEwMHgxMDAg
W3RyYW5zZm9ybT17bT0oKDIuMDAsMC4wMCkoMC4wMCwyLjAwKSkgdD0oLTc1LjAwLC03NS4wMCl9
XSBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTUwLjAwXSBbeT01MC4w
MF0gW3dpZHRoPTUwLjAwXSBbaGVpZ2h0PTUwLjAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3ZnL3RyYW5zZm9ybXMvZHluYW1pYy10cmFuc2Zvcm0tb3JpZ2luLnN2ZyBiL0xheW91dFRlc3Rz
L3N2Zy90cmFuc2Zvcm1zL2R5bmFtaWMtdHJhbnNmb3JtLW9yaWdpbi5zdmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDBiYjdkNTg1YTk3YTllMjRhNDk4Y2NhZjA0MDdlOTE4N2IzMjZhMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2R5bmFtaWMtdHJhbnNmb3JtLW9yaWdpbi5z
dmcKQEAgLTAsMCArMSwxMCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBvbmxvYWQ9InJ1
blJlcGFpbnRUZXN0KCkiPgorICAgIDxzY3JpcHQgeGxpbms6aHJlZj0iLi4vLi4vZmFzdC9yZXBh
aW50L3Jlc291cmNlcy9yZXBhaW50LmpzIj48L3NjcmlwdD4KKyAgICA8dGl0bGU+VGhlIGdyZWVu
IDEwMHgxMDAgcmVjdGFuZ2xlIHNob3VsZCBhcHBlYXIgYXQgMjUsMjUuPC90aXRsZT4KKzxyZWN0
IGlkPSJyZWN0IiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB4PSI1MCIgeT0iNTAiIGZpbGw9
ImdyZWVuIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDIsIDIpOyIvPgorPHNjcmlw
dD4KKyAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3JlY3QnKS5zdHlsZS53ZWJraXRUcmFuc2Zvcm1PcmlnaW4gPSAiNTAlIDUwJSI7
CisgICAgfQorPC9zY3JpcHQ+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90
cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJmMzI3MzRhZTRjMmIzZTY3YTZiMDA5OTg5YTc5ZjZlZjY5NWRkMGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5z
Zm9ybS12YWx1ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorVGVzdCBmb3IgYnVnIDc5
MDY4IC0gU1ZHIHNob3VsZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmlnaW4gYW5kIHJlbGF0aXZlIHZh
bHVlcyBWZXJpZnkgdGhhdCBDU1MgdHJhbnNmb3JtIHRyYW5zbGF0ZSB2YWx1ZXMgY2FuIGJlIHNw
ZWNpZmllZCB3aXRoIHBlcmNlbnRhZ2VzLgorCitZb3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMgYW5kIG9uZSA4MHg2MCBncmVlbiByZWN0YW5nbGUuIFRoZSBncmVlbiBy
ZWN0YW5nbGUgb2JzY3VyZXMgdHdvIHJlZCByZWN0YW5nbGVzIG9mIHRoZSBzYW1lIHNpemUgd2hp
Y2ggaGF2ZSBiZWVuIHRyYW5zbGF0ZWQgdG8gdGhlIHNhbWUgbG9jYXRpb24uCitQQVNTICByZWN0
ICJyMSIgWzUwLDIwMCA4MHg2MF0gZXhwZWN0ZWQgWzUwLDIwMCA4MHg2MF0KK1BBU1MgIHJlY3Qg
InIyIiBbNTAsMjAwIDgweDYwXSBleHBlY3RlZCBbNTAsMjAwIDgweDYwXQorUEFTUyAgcmVjdCAi
cjMiIFs1MCwyMDAgODB4NjBdIGV4cGVjdGVkIFs1MCwyMDAgODB4NjBdCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54aHRt
bCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZGE2OWVhOTliOTFkOWU5NjhmZDI4YzQ0NmRjNWNjNWQ1YzdkZDk3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10
cmFuc2Zvcm0tdmFsdWVzLnhodG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxib2R5PgorICA8cD5UZXN0IGZvciBidWcgPGEg
aHJlZj0iIj43OTA2ODwvYT4gLSBTVkcgc2hvdWxkIHN1cHBvcnQgdHJhbnNmb3JtLW9yaWdpbiBh
bmQgcmVsYXRpdmUgdmFsdWVzCisgIFZlcmlmeSB0aGF0IENTUyB0cmFuc2Zvcm0gdHJhbnNsYXRl
IHZhbHVlcyBjYW4gYmUgc3BlY2lmaWVkIHdpdGggcGVyY2VudGFnZXMuCisgIDwvcD4KKyAgWW91
IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzIGFuZCBvbmUgODB4NjAgZ3Jl
ZW4gcmVjdGFuZ2xlLiAgIFRoZSBncmVlbiByZWN0YW5nbGUgb2JzY3VyZXMgdHdvIAorICByZWQg
cmVjdGFuZ2xlcyBvZiB0aGUgc2FtZSBzaXplIHdoaWNoIGhhdmUgYmVlbiB0cmFuc2xhdGVkIHRv
IHRoZSBzYW1lIGxvY2F0aW9uLgorICA8cD4KKyAgPC9wPgorICA8c3ZnIHN0eWxlPSJwb3NpdGlv
bjphYnNvbHV0ZTsgbGVmdDowcHg7IHRvcDowcHg7IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciPgorICAgIDxyZWN0IGlkPSJyMSIgeD0iMTAiIHk9IjIwMCIgd2lkdGg9IjgwIiBo
ZWlnaHQ9IjYwIiBmaWxsPSJyZWQiIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRl
KDUwJSkiLz4KKyAgICA8cmVjdCBpZD0icjIiIHg9IjkwIiB5PSIyNjAiIHdpZHRoPSI4MCIgaGVp
Z2h0PSI2MCIgZmlsbD0icmVkIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgt
NTAlLCAtMTAwJSkiLz4KKyAgICA8cmVjdCBpZD0icjMiIHg9IjEwIiB5PSIyMDAiIHdpZHRoPSI4
MCIgaGVpZ2h0PSI2MCIgZmlsbD0iZ3JlZW4iIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJh
bnNsYXRlKDUwJSwgMCUpIi8+CisgIDwvc3ZnPgorICA8cHJlIGlkPSJsb2ciPjwvcHJlPgorPC9i
b2R5PgorPHNjcmlwdD48IVtDREFUQVsKKworICAgIHZhciByZXN1bHRTdHJpbmcgPSAiIjsKKwor
ICAgIGZ1bmN0aW9uIGNoZWNrQ2xpZW50UmVjdChyZWN0SUQpIHsKKyAgICAgICAgdmFyIGNyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVjdElEKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
KyAgICAgICAgdmFyIGNyU3RyaW5nID0gIlsiICsgY3IubGVmdCArICIsIiArIGNyLnRvcCArICIg
IiArIGNyLndpZHRoICsgIngiICsgY3IuaGVpZ2h0ICsgIl0iOworICAgICAgICB2YXIgZXhwZWN0
ZWQgPSAiWzUwLDIwMCA4MHg2MF0iOworICAgICAgICByZXN1bHRTdHJpbmcgKz0gKChjclN0cmlu
ZyA9PSBleHBlY3RlZCkgPyAiUEFTUyAiIDogIkZBSUwgIikgKyAiIHJlY3QgXCIiICsgcmVjdElE
ICsgIlwiICIgKyBjclN0cmluZyArICIgZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIlxuIjsKKyAg
ICB9CisKKyAgICBbInIxIiwgInIyIiwgInIzIl0ubWFwKGNoZWNrQ2xpZW50UmVjdCk7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLmlubmVySFRNTCA9IHJlc3VsdFN0cmluZzsK
KworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworIF1dPjwvc2NyaXB0PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3Mt
cHJvcGVydHktZXhwZWN0ZWQueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFu
c2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS1leHBlY3RlZC54aHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWZk
ZTA5YWMxZjgwNGZjOTA4YzU4Y2M3N2YzODcxYzcyOTBkOTA4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHkt
ZXhwZWN0ZWQueGh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiPgorPHN0eWxlPgorI3RyYW5zZm9ybU9yaWdpbkRpdiB7CisgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICB3aWR0aDogMzBweDsKKyAgIGhlaWdodDogMzBweDsKKyAg
IGJhY2tncm91bmQ6IGdyZWVuOworICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7
Cit9Cis8L3N0eWxlPgorCis8Ym9keT4KKyAgPGRpdiBpZD0iZGl2Um9vdCI+PC9kaXY+CisKKyAg
PHNjcmlwdD48IVtDREFUQVsKKworICAgIGZ1bmN0aW9uIGFkZFRyYW5zZm9ybU9yaWdpbkRpdih4
LCB5LCB0cmFuc2Zvcm1PcmlnaW4pCisgICAgeworICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJ0cmFu
c2Zvcm1PcmlnaW5EaXYiKTsKKyAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJ0b3A6
ICIgKyB5ICsgInB4OyBsZWZ0OiAiKyB4ICsgInB4OyAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46
ICIgKyB0cmFuc2Zvcm1PcmlnaW4gKyAiOyIpOworICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkaXZSb290IikuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICB9CisKKyAgICB2YXIgdHJhbnNm
b3JtT3JpZ2lucyA9IFsKKyAgICAgICAgICI1MCUgNTAlIiwKKyAgICAgICAgICIwJSAwJSIsCisg
ICAgICAgICAiMCUgNTAlIiwKKyAgICAgICAgICIxMDAlIDAlIiwKKyAgICAgICAgICIwJSA1MCUi
LAorICAgICAgICAgIjEwMCUgNTAlIiwKKyAgICAgICAgICIwJSAxMDAlIiwKKyAgICAgICAgICI1
MCUgMTAwJSIsCisgICAgICAgICAiMTAwJSAxMDAlIiwKKyAgICAgXTsKKworICAgICBmdW5jdGlv
biB0ZXN0KCkKKyAgICAgeworICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmFuc2Zvcm1P
cmlnaW5zLmxlbmd0aDsgaSsrKSAgeworICAgICAgICAgICAgIHZhciB4ID0gNjAgKyAoaSAlICA0
KSAqIDYwOworICAgICAgICAgICAgIHZhciB5ID0gNjAgKyBNYXRoLmZsb29yKGkgLyA0KSAqIDYw
OworICAgICAgICAgICAgIGFkZFRyYW5zZm9ybU9yaWdpbkRpdih4LCB5LCB0cmFuc2Zvcm1Pcmln
aW5zW2ldKTsgCisgICAgICAgICB9CisgICAgIH0KKworICAgICB0ZXN0KCk7CisKKyAgXV0+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJh
bnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS54aHRtbCBiL0xheW91dFRlc3Rz
L3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVlZjdkZjIxMDY0YjYwNmYxZTMyN2QxNGI3MDMxOTc0YWMwMDA5NDMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNz
cy1wcm9wZXJ0eS54aHRtbApAQCAtMCwwICsxLDY2IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCI+Cis8c3R5bGU+Cisjc3ZnUm9vdCB7CisgICAgcG9zaXRpb246
IGFic29sdXRlOyAKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKK30KKworI3RyYW5zZm9ybU9y
aWdpblJlY3QgeworICAgIGZpbGw6IGdyZWVuOworICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3Rh
dGUoOTBkZWcpOworfQorPC9zdHlsZT4KKworPCEtLQorICBUZXN0IGZvciBidWcgNzkwNjggLSBT
Vkcgc2hvdWxkIHN1cHBvcnQgdHJhbnNmb3JtLW9yaWdpbiBhbmQgcmVsYXRpdmUgdmFsdWVzLjwv
cD4KKyAgCisgIFlvdSBzaG91bGQgc2VlIDkgZ3JlZW4gMjB4MjAgcmVjdGFuZ2xlcy4gIEVhY2gg
Z3JlZW4gcmVjdGFuZ2xlIGlzIGFjdHVhbGx5IG9uZSBvZiBhIHNldCBvZiBhYm91dCA2LCBlYWNo
IG9uZSAKKyAgd2l0aCBhIGRpZmZlcmVudCBidXQgZXF1aXZhbGVudCB2YWx1ZSBmb3IgdGhlIENT
UyB0cmFuc2Zvcm0tb3JpZ2luIHByb3BlcnR5LiAKKy0tPgorCis8Ym9keT4KKyAgPHN2ZyBpZD0i
c3ZnUm9vdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKworICA8
c2NyaXB0PjwhW0NEQVRBWworICAgIHZhciBzdmdOUyA9ICJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyI7CisKKyAgICBmdW5jdGlvbiBhZGRUcmFuc2Zvcm1PcmlnaW5SZWN0KHgsIHksIHMpCisg
ICAgeworICAgICAgIHZhciByZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2Z05TLCAi
cmVjdCIpOworICAgICAgIHZhciB0cmFuc2Zvcm1PcmlnaW4gPSAodHlwZW9mKHMpID09ICJzdHJp
bmciKSA/IHMgOiAgKHggKyBzWzBdKSArICIgIiArICh5ICsgc1sxXSk7CisgICAgICAgcmVjdC5z
ZXRBdHRyaWJ1dGUoImlkIiwgInRyYW5zZm9ybU9yaWdpblJlY3QiKTsKKyAgICAgICByZWN0LnNl
dEF0dHJpYnV0ZSgieCIsIHgpOworICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ5IiwgeSk7Cisg
ICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgMzApOworICAgICAgIHJlY3Quc2V0QXR0
cmlidXRlKCJoZWlnaHQiLCAzMCk7CisgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwg
Ii13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogIiArIHRyYW5zZm9ybU9yaWdpbiArICI7Iik7Cisg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2Z1Jvb3QiKS5hcHBlbmRDaGlsZChyZWN0
KTsKKyAgICB9CisKKyAgICB2YXIgZXF1aXZhbGVudFRyYW5zZm9ybU9yaWdpbnMgPSBbCisgICAg
ICAgICBbIjUwJSA1MCUiLCAiY2VudGVyIDUwJSIsICI1MCUgY2VudGVyIiwgImNlbnRlciIsICJj
ZW50ZXIgY2VudGVyIiwgWzE1LCAxNV1dLAorICAgICAgICAgWyIwJSAwJSIsICJsZWZ0IDAlIiwg
IjAlIHRvcCIsICJsZWZ0IHRvcCIsICJ0b3AgbGVmdCIsIFswLCAwXV0sCisgICAgICAgICBbIjAl
IDUwJSIsICJsZWZ0IDUwJSIsICIwJSBjZW50ZXIiLCAibGVmdCIsICJsZWZ0IGNlbnRlciIsICJj
ZW50ZXIgbGVmdCIsIFswLCAxNV1dLAorICAgICAgICAgWyIxMDAlIDAlIiwgInJpZ2h0IDAlIiwg
IjEwMCUgdG9wIiwgInJpZ2h0IHRvcCIsICJ0b3AgcmlnaHQiLCBbMzAsIDBdXSwKKyAgICAgICAg
IFsiMCUgNTAlIiwgImxlZnQgNTAlIiwgIjAlIGNlbnRlciIsICJsZWZ0IGNlbnRlciIsICJjZW50
ZXIgbGVmdCIsIFswLCAxNV1dLAorICAgICAgICAgWyIxMDAlIDUwJSIsICJyaWdodCA1MCUiLCAi
MTAwJSBjZW50ZXIiLCAicmlnaHQgY2VudGVyIiwgImNlbnRlciByaWdodCIsIFszMCwgMTVdXSwK
KyAgICAgICAgIFsiMCUgMTAwJSIsICJsZWZ0IDEwMCUiLCAiMCUgYm90dG9tIiwgImxlZnQgYm90
dG9tIiwgImxlZnQgYm90dG9tIiwgWzAsIDMwXV0sCisgICAgICAgICBbIjUwJSAxMDAlIiwgImNl
bnRlciAxMDAlIiwgIjUwJSBib3R0b20iLCAiYm90dG9tIiwgImNlbnRlciBib3R0b20iLCAiYm90
dG9tIGNlbnRlciIsIFsxNSwgMzBdXSwKKyAgICAgICAgIFsiMTAwJSAxMDAlIiwgInJpZ2h0IDEw
MCUiLCAiMTAwJSBib3R0b20iLCAicmlnaHQgYm90dG9tIiwgImJvdHRvbSByaWdodCIsIFszMCwg
MzBdXQorICAgICBdOworCisgICAgIGZ1bmN0aW9uIHRlc3QoKQorICAgICB7CisgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGVxdWl2YWxlbnRUcmFuc2Zvcm1PcmlnaW5zLmxlbmd0aDsgaSsr
KSAgeworICAgICAgICAgICAgIHZhciB4ID0gNjAgKyAoaSAlICA0KSAqIDYwOworICAgICAgICAg
ICAgIHZhciB5ID0gNjAgKyBNYXRoLmZsb29yKGkgLyA0KSAqIDYwOworICAgICAgICAgICAgIGVx
dWl2YWxlbnRUcmFuc2Zvcm1PcmlnaW5zW2ldLm1hcCggZnVuY3Rpb24ocykgeyBhZGRUcmFuc2Zv
cm1PcmlnaW5SZWN0KHgsIHksIHMpOyB9ICk7CisgICAgICAgICB9CisgICAgIH0KKworICAgICB0
ZXN0KCk7CisKKyAgXV0+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130882</attachid>
            <date>2012-03-08 12:44:05 -0800</date>
            <delta_ts>2012-03-12 11:22:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79068-20120308124404.patch</filename>
            <type>text/plain</type>
            <size>23668</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Y5OTUyM2Y1OTQwMzY3
ODcxNTEwMTBkYzU5OGI2OGFlZWM5OTBkMi4uYTljOTc1YzViOWJhNzdkMDg2NWQwYzYxNWQwODU3
MTcxOWY3NzI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAzLTA1ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQgc3VwcG9y
dCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgU1ZHIHN1cHBvcnQgZm9yIHRoZSBD
U1MgJ3RyYW5zZm9ybS1vcmlnaW4nIHByb3BlcnR5IGFuZCBmb3IgcGVyY2VudGFnZQorICAgICAg
ICB2YWx1ZXMgaW4gdGhlIHRyYW5zZm9ybSB0cmFuc2xhdGUgZnVuY3Rpb24uICBUaGUgY2hhbmdl
cyBjb25mb3JtIHRvCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdHJhbnNm
b3Jtcy8uCisKKyAgICAgICAgVGVzdHM6IHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3Jt
LXZhbHVlcy54aHRtbAorICAgICAgICAgICAgICAgc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9y
aWdpbi1jc3MtcHJvcGVydHkueGh0bWwKKworICAgICAgICAqIGNzcy9zdmcuY3NzOgorICAgICAg
ICAoKik6CisgICAgICAgIChodG1sfCogPiBzdmcpOgorICAgICAgICBEZWZhdWx0IHRyYW5zZm9y
bS1vcmlnaW4gZm9yIFNWRyBlbGVtZW50cyBpcyAwIDAuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9M
ZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY0Zsb2F0VmFsdWUpOgorICAg
ICAgICBBZGRlZCBhIGNhbGNGbG9hdFZhbHVlIG92ZXJsb2FkIHdob3NlIG1heCBwYXJhbWV0ZXIg
KGZvciBwZXJjZW50IGxlbmd0aHMpIGlzIGEgZmxvYXQuCisgICAgICAgIFRoZSBvcmlnaW5hbCB2
ZXJzaW9uIHdpbGwgYmUgb2Jzb2xldGUgd2hlbiB0aGUgc3ViLXBpeGVsIGxheW91dCBzdXBwb3J0
IGlzIGNvbXBsZXRlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Om9wdGltaXplRm9yVHJh
bnNmb3JtT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjphcHBseVRyYW5z
Zm9ybSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAg
ICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjphbmltYXRlZExvY2FsVHJhbnNmb3Jt
KToKKwogMjAxMi0wMy0wOCAgU2NvdHQgQnllciAgPHNjb3R0YnllckBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgSGF2ZSBTY3JvbGxBbmltYXRvck5vbmUgdXNlIHJlcXVlc3RBbmltYXRpb25GcmFt
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3Mvc3ZnLmNzcwppbmRleCBiYzMxMjY5Zjg4MDYwMmU1MDBhNDJmNWU4NWJlNjUyN2VhZmY1
MWU2Li5hMWExM2YwMjk3MzMwNTgyYjVlOWU5ZjBiN2M1ZmM2ODdjZTlmMTU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3Mvc3ZnLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mvc3Zn
LmNzcwpAQCAtMjYsNiArMjYsNyBAQAogICovCiAKIEBuYW1lc3BhY2UgImh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIjsKK0BuYW1lc3BhY2UgaHRtbCAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI7CiAKIC8qCiAgICAgV2hlbiBhbiBvdXRlcm1vc3QgU1ZHICdzdmcnIGVsZW1lbnQgaXMg
c3RhbmQtYWxvbmUgb3IgZW1iZWRkZWQgaW5saW5lIHdpdGhpbiBhIHBhcmVudCBYTUwgZ3JhbW1h
ciAKQEAgLTYzLDMgKzY0LDEzIEBAIHRleHQsIHRzcGFuLCB0cmVmIHsKIDpmb2N1cyB7CiAgICAg
b3V0bGluZTogYXV0byA1cHggLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yCiB9CisKKy8qIHRyYW5z
Zm9ybS1vcmlnaW4gb24gU1ZHIGVsZW1lbnRzICovCisKKyogeworICAgIC13ZWJraXQtdHJhbnNm
b3JtLW9yaWdpbjogMCAwOworfQorCitodG1sfCogPiBzdmcgeworICAgIC13ZWJraXQtdHJhbnNm
b3JtLW9yaWdpbjogNTAlIDUwJTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xlbmd0aC5oCmluZGV4IDJiY2Y5MzI2MjhmY2NhOWVhMmU4YjNjMTdmZmExZTJm
YzYwYzQxZGYuLjZiMTFiNTk4OTA0NTEyM2ExOGE1MWFlNzIyODcxYWNmOGJlZmI2MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xlbmd0aC5oCkBAIC0yMDMsNiArMjAzLDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKKyAgICAvLyBGSVhNRTogd2hlbiBzdWJwaXhlbCBsYXlvdXQg
aXMgc3VwcG9ydGVkIHRoaXMgY29weSBvZiBjYWxjRmxvYXRWYWx1ZSgpIGNhbiBiZSByZW1vdmVk
LiBTZWUgYnVnIDcxMTQzLgogICAgIGZsb2F0IGNhbGNGbG9hdFZhbHVlKGludCBtYXhWYWx1ZSkg
Y29uc3QKICAgICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSgpKSB7CkBAIC0yMjUsNiArMjI2LDI4
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisgICAgZmxvYXQgY2FsY0Zs
b2F0VmFsdWUoZmxvYXQgbWF4VmFsdWUpIGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKHR5
cGUoKSkgeworICAgICAgICBjYXNlIEZpeGVkOgorICAgICAgICAgICAgcmV0dXJuIGdldEZsb2F0
VmFsdWUoKTsKKyAgICAgICAgY2FzZSBQZXJjZW50OgorICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGZsb2F0PihtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wZik7CisgICAgICAgIGNh
c2UgQXV0bzoKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4obWF4VmFsdWUp
OworICAgICAgICBjYXNlIENhbGN1bGF0ZWQ6CisgICAgICAgICAgICByZXR1cm4gbm9uTmFuQ2Fs
Y3VsYXRlZFZhbHVlKG1heFZhbHVlKTsKKyAgICAgICAgY2FzZSBSZWxhdGl2ZToKKyAgICAgICAg
Y2FzZSBJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgTWluSW50cmluc2ljOgorICAgICAgICBjYXNl
IFVuZGVmaW5lZDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiAwOworICAgIH0KKwogICAgIGJvb2wgaXNVbmRlZmluZWQoKSBjb25zdCB7
IHJldHVybiB0eXBlKCkgPT0gVW5kZWZpbmVkOyB9CiAKICAgICAvLyBGSVhNRSBjYWxjOiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzNTcuIEEgY2FsY3VsYXRlZCBM
ZW5ndGggCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cAppbmRleCAxNDU5NTFkM2FkM2ZiOGU4Zjg0NGMyMmY0Mjk4ZmRkZjNlYjE2ZjBmLi42MjAyMDBh
OTIxNDE4YmIxMjNlN2VhNDYyMWQ0YTI5MmRmMDYwYzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICog
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBBZG9i
ZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtNzY5LDM5ICs3NzAsNjcgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29udGVu
dChRdW90ZVR5cGUgcXVvdGUsIGJvb2wgYWRkKQogCiAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEu
YWNjZXNzKCktPm1fY29udGVudCA9IENvbnRlbnREYXRhOjpjcmVhdGUocXVvdGUpOwogfQotCi12
b2lkIFJlbmRlclN0eWxlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJh
bnNmb3JtLCBjb25zdCBMYXlvdXRTaXplJiBib3JkZXJCb3hTaXplLCBBcHBseVRyYW5zZm9ybU9y
aWdpbiBhcHBseU9yaWdpbikgY29uc3QKKyAgICAKK2lubGluZSBib29sIHJlcXVpcmVUcmFuc2Zv
cm1PcmlnaW4oY29uc3QgVmVjdG9yPFJlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+ID4mIHRyYW5z
Zm9ybU9wZXJhdGlvbnMsIFJlbmRlclN0eWxlOjpBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBseU9y
aWdpbikKIHsKICAgICAvLyB0cmFuc2Zvcm0tb3JpZ2luIGJyYWNrZXRzIHRoZSB0cmFuc2Zvcm0g
d2l0aCB0cmFuc2xhdGUgb3BlcmF0aW9ucy4KICAgICAvLyBPcHRpbWl6ZSBmb3IgdGhlIGNhc2Ug
d2hlcmUgdGhlIG9ubHkgdHJhbnNmb3JtIGlzIGEgdHJhbnNsYXRpb24sIHNpbmNlIHRoZSB0cmFu
c2Zvcm0tb3JpZ2luIGlzIGlycmVsZXZhbnQKICAgICAvLyBpbiB0aGF0IGNhc2UuCi0gICAgYm9v
bCBhcHBseVRyYW5zZm9ybU9yaWdpbiA9IGZhbHNlOwotICAgIHVuc2lnbmVkIHMgPSByYXJlTm9u
SW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuc2l6
ZSgpOwotICAgIHVuc2lnbmVkIGk7Ci0gICAgaWYgKGFwcGx5T3JpZ2luID09IEluY2x1ZGVUcmFu
c2Zvcm1PcmlnaW4pIHsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IHM7IGkrKykgewotICAgICAg
ICAgICAgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSByYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmdl
dE9wZXJhdGlvblR5cGUoKTsKLSAgICAgICAgICAgIGlmICh0eXBlICE9IFRyYW5zZm9ybU9wZXJh
dGlvbjo6VFJBTlNMQVRFX1gKLSAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zv
cm1PcGVyYXRpb246OlRSQU5TTEFURV9ZCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0g
VHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEUgCi0gICAgICAgICAgICAgICAgICAgICYmIHR5
cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWgotICAgICAgICAgICAgICAgICAg
ICAmJiB0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNECi0gICAgICAgICAg
ICAgICAgICAgICkgewotICAgICAgICAgICAgICAgIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAg
IGlmIChhcHBseU9yaWdpbiAhPSBSZW5kZXJTdHlsZTo6SW5jbHVkZVRyYW5zZm9ybU9yaWdpbikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdW5zaWduZWQgc2l6ZSA9IHRyYW5zZm9ybU9w
ZXJhdGlvbnMuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kp
IHsKKyAgICAgICAgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSB0cmFu
c2Zvcm1PcGVyYXRpb25zW2ldLT5nZXRPcGVyYXRpb25UeXBlKCk7CisgICAgICAgIGlmICh0eXBl
ICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1gKKyAgICAgICAgICAgICYmIHR5cGUg
IT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWQorICAgICAgICAgICAgJiYgdHlwZSAh
PSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURSAKKyAgICAgICAgICAgICYmIHR5cGUgIT0g
VHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWgorICAgICAgICAgICAgJiYgdHlwZSAhPSBU
cmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV8zRCkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KKyAgICAKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKLSAgICBpZiAoYXBwbHlUcmFu
c2Zvcm1PcmlnaW4pIHsKK3ZvaWQgUmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IExheW91dFNpemUmIGJvcmRlckJveFNpemUs
IEFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2luKSBjb25zdAoreworICAgIGNvbnN0IFZl
Y3RvcjxSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiA+JiB0cmFuc2Zvcm1PcGVyYXRpb25zID0g
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtLT5tX29wZXJhdGlvbnMub3BlcmF0aW9u
cygpOworICAgIGJvb2wgYXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSByZXF1aXJlVHJhbnNmb3JtT3Jp
Z2luKHRyYW5zZm9ybU9wZXJhdGlvbnMsIGFwcGx5T3JpZ2luKTsKKworICAgIGlmIChhcHBseVRy
YW5zZm9ybU9yaWdpbikKICAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZTNkKHRyYW5zZm9ybU9y
aWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hTaXplLndpZHRoKCkpLCB0cmFuc2Zvcm1P
cmlnaW5ZKCkuY2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94U2l6ZS5oZWlnaHQoKSksIHRyYW5zZm9y
bU9yaWdpblooKSk7Ci0gICAgfQogCi0gICAgZm9yIChpID0gMDsgaSA8IHM7IGkrKykKLSAgICAg
ICAgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtLT5tX29wZXJhdGlvbnMub3BlcmF0
aW9ucygpW2ldLT5hcHBseSh0cmFuc2Zvcm0sIGJvcmRlckJveFNpemUpOworICAgIHVuc2lnbmVk
IHNpemUgPSB0cmFuc2Zvcm1PcGVyYXRpb25zLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICB0cmFuc2Zvcm1PcGVyYXRpb25zW2ldLT5hcHBs
eSh0cmFuc2Zvcm0sIGJvcmRlckJveFNpemUpOwogCi0gICAgaWYgKGFwcGx5VHJhbnNmb3JtT3Jp
Z2luKSB7CisgICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2luKQogICAgICAgICB0cmFuc2Zvcm0u
dHJhbnNsYXRlM2QoLXRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hT
aXplLndpZHRoKCkpLCAtdHJhbnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvcmRlckJv
eFNpemUuaGVpZ2h0KCkpLCAtdHJhbnNmb3JtT3JpZ2luWigpKTsKK30KKwordm9pZCBSZW5kZXJT
dHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29u
c3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmln
aW4pIGNvbnN0Cit7CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+
ID4mIHRyYW5zZm9ybU9wZXJhdGlvbnMgPSByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zv
cm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCk7CisgICAgYm9vbCBhcHBseVRyYW5zZm9ybU9y
aWdpbiA9IHJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4odHJhbnNmb3JtT3BlcmF0aW9ucywgYXBwbHlP
cmlnaW4pOworICAgIAorICAgIGZsb2F0IG9mZnNldFggPSB0cmFuc2Zvcm1PcmlnaW5YKCkudHlw
ZSgpID09IFBlcmNlbnQgPyBib3VuZGluZ0JveC54KCkgOiAwOworICAgIGZsb2F0IG9mZnNldFkg
PSB0cmFuc2Zvcm1PcmlnaW5ZKCkudHlwZSgpID09IFBlcmNlbnQgPyBib3VuZGluZ0JveC55KCkg
OiAwOworICAgIAorICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikgeworICAgICAgICB0cmFu
c2Zvcm0udHJhbnNsYXRlM2QodHJhbnNmb3JtT3JpZ2luWCgpLmNhbGNGbG9hdFZhbHVlKGJvdW5k
aW5nQm94LndpZHRoKCkpICsgb2Zmc2V0WCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRyYW5zZm9ybU9yaWdpblkoKS5jYWxjRmxvYXRWYWx1ZShib3VuZGluZ0JveC5oZWlnaHQoKSkg
KyBvZmZzZXRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2lu
WigpKTsKKyAgICB9CisgICAgCisgICAgdW5zaWduZWQgc2l6ZSA9IHRyYW5zZm9ybU9wZXJhdGlv
bnMuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAg
ICAgIHRyYW5zZm9ybU9wZXJhdGlvbnNbaV0tPmFwcGx5KHRyYW5zZm9ybSwgYm91bmRpbmdCb3gu
c2l6ZSgpKTsKKyAgICAKKyAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHsKKyAgICAgICAg
dHJhbnNmb3JtLnRyYW5zbGF0ZTNkKC10cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zsb2F0VmFsdWUo
Ym91bmRpbmdCb3gud2lkdGgoKSkgLSBvZmZzZXRYLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLXRyYW5zZm9ybU9yaWdpblkoKS5jYWxjRmxvYXRWYWx1ZShib3VuZGluZ0JveC5oZWln
aHQoKSkgLSBvZmZzZXRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXRyYW5zZm9y
bU9yaWdpblooKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCmluZGV4IDU1MTUxZDNlY2U5N2Y3ZjlkZjFkNDRjN2M5MDkzMTM5NmI4
NjVmYzMuLjM0YjU3ZWUzMzE5MWI2MWIyY2IwNDViODE4NDA5NWNkMGMyYjFhY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC04OTQsNiArODk0
LDcgQEAgcHVibGljOgogCiAgICAgZW51bSBBcHBseVRyYW5zZm9ybU9yaWdpbiB7IEluY2x1ZGVU
cmFuc2Zvcm1PcmlnaW4sIEV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4gfTsKICAgICB2b2lkIGFwcGx5
VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVy
Qm94U2l6ZSwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKSBj
b25zdDsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29u
c3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBJbmNsdWRl
VHJhbnNmb3JtT3JpZ2luKSBjb25zdDsKICAgICB2b2lkIHNldFBhZ2VTY2FsZVRyYW5zZm9ybShm
bG9hdCk7CiAKICAgICBib29sIGhhc01hc2soKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9tYXNrLmhhc0ltYWdlKCkgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFz
a0JveEltYWdlLmhhc0ltYWdlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCmluZGV4IDk5YzE3ODE3NThkMDVjMTgxNWUy
MzY3NGFhYjY4MWJlZTIyMzcyNTQuLjg0NmM4NTE1Zjc0ZWFiYzVmZDQwMjUwMWQyNzJiYWVlNmI2
NGRjNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9y
bWFibGVFbGVtZW50LmNwcApAQCAtNjYsMTQgKzY2LDE0IEBAIEFmZmluZVRyYW5zZm9ybSBTVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0
CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1hdHJpeDsKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBy
ZW5kZXJlcigpID8gcmVuZGVyZXIoKS0+c3R5bGUoKSA6IDA7CiAKLSAgICAvLyBpZiBDU1MgcHJv
cGVydHkgd2FzIHNldCwgdXNlIHRoYXQsIG90aGVyd2lzZSBmYWxsYmFjayB0byBhdHRyaWJ1dGUg
KGlmIHNldCkKKyAgICAvLyBJZiBDU1MgcHJvcGVydHkgd2FzIHNldCwgdXNlIHRoYXQsIG90aGVy
d2lzZSBmYWxsYmFjayB0byBhdHRyaWJ1dGUgKGlmIHNldCkuCiAgICAgaWYgKHN0eWxlICYmIHN0
eWxlLT5oYXNUcmFuc2Zvcm0oKSkgewotICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0Owot
ICAgICAgICAvLyBGb3Igbm93LCB0aGUgdHJhbnNmb3JtLW9yaWdpbiBpcyBub3QgdGFrZW4gaW50
byBhY2NvdW50Ci0gICAgICAgIC8vIEFsc28sIGFueSBwZXJjZW50YWdlIHZhbHVlcyB3aWxsIG5v
dCBiZSB0YWtlbiBpbnRvIGFjY291bnQKLSAgICAgICAgc3R5bGUtPmFwcGx5VHJhbnNmb3JtKHQs
IEludFNpemUoMCwgMCksIFJlbmRlclN0eWxlOjpFeGNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKLSAg
ICAgICAgLy8gRmxhdHRlbiBhbnkgM0QgdHJhbnNmb3JtCi0gICAgICAgIG1hdHJpeCA9IHQudG9B
ZmZpbmVUcmFuc2Zvcm0oKTsKKyAgICAgICAgLy8gTm90ZTogb2JqZWN0Qm91bmRpbmdCb3ggaXMg
YW4gZW1wdHlSZWN0IGZvciBlbGVtZW50cyBsaWtlIHBhdHRlcm4gb3IgY2xpcFBhdGguCisgICAg
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKKyAgICAgICAgc3R5bGUtPmFwcGx5
VHJhbnNmb3JtKHRyYW5zZm9ybSwgcmVuZGVyZXIoKS0+b2JqZWN0Qm91bmRpbmdCb3goKSk7CisK
KyAgICAgICAgLy8gRmxhdHRlbiBhbnkgM0QgdHJhbnNmb3JtLgorICAgICAgICBtYXRyaXggPSB0
cmFuc2Zvcm0udG9BZmZpbmVUcmFuc2Zvcm0oKTsKICAgICB9IGVsc2UKICAgICAgICAgdHJhbnNm
b3JtKCkuY29uY2F0ZW5hdGUobWF0cml4KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMxZDQ2MTQwNGQxYjZiZmFhYTll
OTk5NTYyNWYxOThkMmI1NDk4ZGEuLjc5OTVhYjliZWMxMmUyNjY2NDYxODkxOTE4NDIwMDAyYzQz
Y2FhMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wMy0wNSAgSGFucyBNdWxsZXIgIDxo
bXVsbGVyQGFkb2JlLmNvbT4KKworICAgICAgICBTVkcgc2hvdWxkIHN1cHBvcnQgdHJhbnNmb3Jt
LW9yaWdpbiBhbmQgcmVsYXRpdmUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03OTA2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBTVkcgQ1NTIHRyYW5zZm9ybS1vcmln
aW4gcHJvcGVydHkgc3VwcG9ydCBhbmQgZm9yCisgICAgICAgIENTUyB0cmFuc2xhdGlvbnMgc3Bl
Y2lmaWVkIHdpdGggcGVyY2VudGFnZXMgYW5kIGFwcGxpZWQgdG8gYW4gU1ZHIGVsZW1lbnQuCisK
KyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9keW5hbWljLXRyYW5zZm9ybS1vcmlnaW4tZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9keW5hbWljLXRyYW5zZm9y
bS1vcmlnaW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9k
eW5hbWljLXRyYW5zZm9ybS1vcmlnaW4uc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNm
b3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5
LWV4cGVjdGVkLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy90cmFuc2Zv
cm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS54aHRtbDogQWRkZWQuCisKIDIwMTItMDMtMDggIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTA5OTY0
KTogQXNzZXJ0aW9uIGZhaWx1cmUgKCFpc1VuZGVmaW5lZCgpKSBpbiBMZW5ndGg6OmdldEludFZh
bHVlKCkgd2hlbiBhIERhc2hib2FyZCByZWdpb24gaXMgc3BlY2lmaWVkIHdpdGhvdXQgb2Zmc2V0
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0CmluZGV4IGI5ZjIzMjk0ZTRjMDI1YWFlMjgyNTRhYjdiMDZkYzY4Y2JmMGJhYjguLjUz
OTc4MDhjZTZhMzA2YTg1Mzk2Zjg1NWRkZTcyMmZjMmRjODI1ZDAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTkzMCw2
ICs5MzAsOSBAQCBCVUdDUjYyNDMzIFdJTiA6IGZhc3QvaW1hZ2VzL2dpZi1sb29wLWNvdW50Lmh0
bWwgPSBJTUFHRQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLy8gTmV3IHRlc3QgcmVxdWlyZXMgcmViYXNlbGlu
ZQorQlVHV0s3OTA2OCA6IHN2Zy90cmFuc2Zvcm1zL2R5bmFtaWMtdHJhbnNmb3JtLW9yaWdpbi5z
dmcgPSBJTUFHRStURVhUIElNQUdFIFRFWFQgUEFTUworCisvLyBOZXcgdGVzdCByZXF1aXJlcyBy
ZWJhc2VsaW5lCiBCVUdXSzc3NTM1IDogc3ZnL3JlcGFpbnQvaW5uZXItc3ZnLWNoYW5nZS12aWV3
UG9ydC1yZWxhdGl2ZS5zdmcgPSBJTUFHRSBJTUFHRStURVhUCiAKIC8vIFVwZGF0ZWQgdGVzdCwg
bmVlZHMgYSByZWJhc2VsaW5lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jt
cy9keW5hbWljLXRyYW5zZm9ybS1vcmlnaW4tZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvc3Zn
L3RyYW5zZm9ybXMvZHluYW1pYy10cmFuc2Zvcm0tb3JpZ2luLWV4cGVjdGVkLnBuZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41MTRjZDAwN2ZiNGMwZjhhZWZlOTNmYWU3MDgwZDMzYjk1NWE5YjUyCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAxMDc0Nwp6Y21lSE5aJWtXTjZ1PEJCeDt8Km8yZ24pOyRgI1J5JVFsI0Y/
Rj1JcVpQISg/e01vYHR2am5nTU07a015USRnIWAKek9OQHBNMkNmP2FnZGg+M0VSKjRmbEROZHNx
RW9nSHJwdl5jWkhldX5lK3dhbEVwOURoPnhIaUctSCpuXlB1eCVLCnp5WUprMFBTNSRCLT9gYFhi
PVRNfG5IaE4qMER3JkVQRSNFS1glR091TDBtXnhLNzZeV29xUUFAR0IrR0A+fkM/bgp6VVZRMCFV
P149aHd3NX18d2wla3VJMUZWYUUmNjgtVFUrKH1Oe3IyMFRPR34lKUJaXm4wMSNNQm1BZ0IqYEFi
dloKenh6MlQoWXA+TDdJcmN+S25SLSkoV25LQkhVRlZ5JDRgaVF3PiRXVFpfKn5yQWRwcW9qRlVO
bEwjUUZmbzMhKCVPCnpDU01BcT10cDxFLXxTMFhDNnxLPGpWTzZVU3c7fXVSUzNJI0V+flE/Rl5I
Qms/PnU4Z2FHe2pyWmo/RjtPZStzZgp6PyE7aXh1JlUkRVE+Typ0P0RYakNRdENidDxqO2c8QGZC
bG9Cdj4kZnRDR0A4M2B3SWQqUGJFS0U0cXFuMSZQMTwKenNAKi1JczZpRTl6OE1Pe0pXSnRKMU8/
STAkNWtWTGBnYlU8NTFKOSkrZGlPKE5jJmE3JmJoVzsjb09NYTdAVXE2CnpzZmVEPjVjQEJGcEdT
cDklVypHRTlWfUZXSUZ1e0Z1fX0zMWUxdUlyfDRZe182P0w9JEI3MyFxaXJIUWdjaHooXgp6ck1l
enJ8S0xUK3gtVWVyVXZuJm5RYXklMit4OVdheTdudnlZViZvSllDRmVXYy04KShWcUsmVnFEQDh7
clB8TikKeiVyT3UjJDBSfCo1Vk0qLVlhXjgrMmomTVI0b0swdEB4YkkmU0tRKkI0a1o0KnAyIU0r
e2EmaHlFZyEpaUY3fmVCCnorQUImV2l9SXc5c1d6WTZRelI0MSFValRlZHd2PVRTSVBfPChHWEo4
ZXAlR2B3b0dmbWFZQUJeb3hhMHJuWn5ARQp6Qj8mZXo5Q3c9KSs2b1lvSXtmUTFPWk89PkhIaz1k
b3FHQzRabnxzK3U/I1Q3bDV6VUM5dCh5bTdOMS14a0doS0EKemJRUURYZiVzQilfXkwocnNib3gj
WVdzYWhvPk0kOG1Yb1NkLU8hdHpMV0Jne3ZuOG1ANE49OVpnRzZsYl5TcDstCnpKZktKc003Qm88
c3BfO35MYiR3SHxDOV82OUpDQGx1KUNadFB1Jj1GZSZ1e2VNaHgpIUZ4WW1ZZ0QlYFQxYnVKKAp6
QFE0ZntqQE9ZUVQoe1VtP2F+b0Fya3xgO0ZlVFc/JUUtXzZRb0VgTks2QzFhc2g+SlBSOz1HVk0o
cjlUZllwN3IKekxxUSQha2pOYVFfPjRKLUF0KiYzWWRnaWZpVEtVbUxqandiQ1ByQUpBJXRxNXh1
ND5sVD9rakBzVlMwaWEkTWNmCnolTT1ZWmt2NzlSdEJAJjE4ekZNbXpOVnl8U2pCTiQrVlV3MTl3
cHQmTWttI3tkVyNgP3hIcFliSmJ9UnBeRV5lIwp6QmBWP1UkVSVrSihhP0djUEs8NytaMkpVKjU2
YlNNNndpPTtWZn09S1YpMSg8PT07YDdrKl4pJG5VOE4jdyFQMnUKemB6e3okRmQ7VztHJEx+ZmJC
ZFFDMXFXSUJoPlROc2ZlfGdNS0JPfFRsRmFlIW9DNFY0T19iUClSJCN8YCNDampuCnpIP2ZBMDdn
KDNmQG9hU1BVcSVPJkB6YHwkKCFERzEwPGNzZjEwan01RVMxPDRaZ24hc013NVV8O1NpZ2BrJiE9
fQprIW0la0Y9ezVlaHw5fSRlQSMzKklteGM+TjxaVnUxSFFQKzVvQG5hJjJmYHhVeVpgX0kKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zv
cm1zL2R5bmFtaWMtdHJhbnNmb3JtLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dmcvdHJhbnNmb3Jtcy9keW5hbWljLXRyYW5zZm9ybS1vcmlnaW4tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZlZTVkNjdjNGRhZjYzYmQ3M2FhMWFiZWUyMDM0Yzc0NmEwNzQyZDUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9keW5hbWljLXRyYW5zZm9ybS1v
cmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMjUsMjUpIHNpemUgMTAw
eDEwMAorICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgyNSwyNSkgc2l6ZSAxMDB4MTAwIFt0
cmFuc2Zvcm09e209KCgyLjAwLDAuMDApKDAuMDAsMi4wMCkpIHQ9KC03NS4wMCwtNzUuMDApfV0g
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD01MC4wMF0gW3k9NTAuMDBd
IFt3aWR0aD01MC4wMF0gW2hlaWdodD01MC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2
Zy90cmFuc2Zvcm1zL2R5bmFtaWMtdHJhbnNmb3JtLW9yaWdpbi5zdmcgYi9MYXlvdXRUZXN0cy9z
dmcvdHJhbnNmb3Jtcy9keW5hbWljLXRyYW5zZm9ybS1vcmlnaW4uc3ZnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAw
YmI3ZDU4NWE5N2E5ZTI0YTQ5OGNjYWYwNDA3ZTkxODdiMzI2YTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9keW5hbWljLXRyYW5zZm9ybS1vcmlnaW4uc3Zn
CkBAIC0wLDAgKzEsMTAgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgb25sb2FkPSJydW5S
ZXBhaW50VGVzdCgpIj4KKyAgICA8c2NyaXB0IHhsaW5rOmhyZWY9Ii4uLy4uL2Zhc3QvcmVwYWlu
dC9yZXNvdXJjZXMvcmVwYWludC5qcyI+PC9zY3JpcHQ+CisgICAgPHRpdGxlPlRoZSBncmVlbiAx
MDB4MTAwIHJlY3RhbmdsZSBzaG91bGQgYXBwZWFyIGF0IDI1LDI1LjwvdGl0bGU+Cis8cmVjdCBp
ZD0icmVjdCIgd2lkdGg9IjUwcHgiIGhlaWdodD0iNTBweCIgeD0iNTAiIHk9IjUwIiBmaWxsPSJn
cmVlbiIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgyLCAyKTsiLz4KKzxzY3JpcHQ+
CisgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyZWN0Jykuc3R5bGUud2Via2l0VHJhbnNmb3JtT3JpZ2luID0gIjUwJSA1MCUiOwor
ICAgIH0KKzwvc2NyaXB0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJh
bnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zvcm0tdmFsdWVzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZjMyNzM0YWU0YzJiM2U2N2E2YjAwOTk4OWE3OWY2ZWY2OTVkZDBiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zv
cm0tdmFsdWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgZm9yIGJ1ZyA3OTA2
OCAtIFNWRyBzaG91bGQgc3VwcG9ydCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1
ZXMgVmVyaWZ5IHRoYXQgQ1NTIHRyYW5zZm9ybSB0cmFuc2xhdGUgdmFsdWVzIGNhbiBiZSBzcGVj
aWZpZWQgd2l0aCBwZXJjZW50YWdlcy4KKworWW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzIGFuZCBvbmUgODB4NjAgZ3JlZW4gcmVjdGFuZ2xlLiBUaGUgZ3JlZW4gcmVj
dGFuZ2xlIG9ic2N1cmVzIHR3byByZWQgcmVjdGFuZ2xlcyBvZiB0aGUgc2FtZSBzaXplIHdoaWNo
IGhhdmUgYmVlbiB0cmFuc2xhdGVkIHRvIHRoZSBzYW1lIGxvY2F0aW9uLgorUEFTUyAgcmVjdCAi
cjEiIFs1MCwyMDAgODB4NjBdIGV4cGVjdGVkIFs1MCwyMDAgODB4NjBdCitQQVNTICByZWN0ICJy
MiIgWzUwLDIwMCA4MHg2MF0gZXhwZWN0ZWQgWzUwLDIwMCA4MHg2MF0KK1BBU1MgIHJlY3QgInIz
IiBbNTAsMjAwIDgweDYwXSBleHBlY3RlZCBbNTAsMjAwIDgweDYwXQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWwg
Yi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWEyY2Y1MWNiYzlmYjM3N2YxOGNhYzhhYTQxYzhjNWZiYmZlZDhhYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJh
bnNmb3JtLXZhbHVlcy54aHRtbApAQCAtMCwwICsxLDM1IEBACis8aHRtbCB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8Ym9keT4KKyAgPHA+VGVzdCBmb3IgYnVnIDxhIGhy
ZWY9IiI+NzkwNjg8L2E+IC0gU1ZHIHNob3VsZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmlnaW4gYW5k
IHJlbGF0aXZlIHZhbHVlcworICBWZXJpZnkgdGhhdCBDU1MgdHJhbnNmb3JtIHRyYW5zbGF0ZSB2
YWx1ZXMgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHBlcmNlbnRhZ2VzLgorICA8L3A+CisgIFlvdSBz
aG91bGQgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcyBhbmQgb25lIDgweDYwIGdyZWVu
IHJlY3RhbmdsZS4gICBUaGUgZ3JlZW4gcmVjdGFuZ2xlIG9ic2N1cmVzIHR3bworICByZWQgcmVj
dGFuZ2xlcyBvZiB0aGUgc2FtZSBzaXplIHdoaWNoIGhhdmUgYmVlbiB0cmFuc2xhdGVkIHRvIHRo
ZSBzYW1lIGxvY2F0aW9uLgorICA8cD4KKyAgPC9wPgorICA8c3ZnIHN0eWxlPSJwb3NpdGlvbjph
YnNvbHV0ZTsgbGVmdDowcHg7IHRvcDowcHg7IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciPgorICAgIDxyZWN0IGlkPSJyMSIgeD0iMTAiIHk9IjIwMCIgd2lkdGg9IjgwIiBoZWln
aHQ9IjYwIiBmaWxsPSJyZWQiIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUw
JSkiLz4KKyAgICA8cmVjdCBpZD0icjIiIHg9IjkwIiB5PSIyNjAiIHdpZHRoPSI4MCIgaGVpZ2h0
PSI2MCIgZmlsbD0icmVkIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAl
LCAtMTAwJSkiLz4KKyAgICA8cmVjdCBpZD0icjMiIHg9IjEwIiB5PSIyMDAiIHdpZHRoPSI4MCIg
aGVpZ2h0PSI2MCIgZmlsbD0iZ3JlZW4iIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlKDUwJSwgMCUpIi8+CisgIDwvc3ZnPgorICA8cHJlIGlkPSJsb2ciPjwvcHJlPgorPC9ib2R5
PgorPHNjcmlwdD48IVtDREFUQVsKKworICAgIHZhciByZXN1bHRTdHJpbmcgPSAiIjsKKworICAg
IGZ1bmN0aW9uIGNoZWNrQ2xpZW50UmVjdChyZWN0SUQpIHsKKyAgICAgICAgdmFyIGNyID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVjdElEKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAg
ICAgICAgdmFyIGNyU3RyaW5nID0gIlsiICsgY3IubGVmdCArICIsIiArIGNyLnRvcCArICIgIiAr
IGNyLndpZHRoICsgIngiICsgY3IuaGVpZ2h0ICsgIl0iOworICAgICAgICB2YXIgZXhwZWN0ZWQg
PSAiWzUwLDIwMCA4MHg2MF0iOworICAgICAgICByZXN1bHRTdHJpbmcgKz0gKChjclN0cmluZyA9
PSBleHBlY3RlZCkgPyAiUEFTUyAiIDogIkZBSUwgIikgKyAiIHJlY3QgXCIiICsgcmVjdElEICsg
IlwiICIgKyBjclN0cmluZyArICIgZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIlxuIjsKKyAgICB9
CisKKyAgICBbInIxIiwgInIyIiwgInIzIl0ubWFwKGNoZWNrQ2xpZW50UmVjdCk7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLmlubmVySFRNTCA9IHJlc3VsdFN0cmluZzsKKwor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworIF1dPjwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJv
cGVydHktZXhwZWN0ZWQueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zv
cm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS1leHBlY3RlZC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjUwMTEx
ZmIxNzRlZGU1Yjg0YTBlMDU1YzdiOTBhOTc0ZGQzM2RiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHktZXhw
ZWN0ZWQueGh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorPHN0eWxlPgorI3RyYW5zZm9ybU9yaWdpbkRpdiB7CisgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICB3aWR0aDogMzBweDsKKyAgIGhlaWdodDogMzBweDsKKyAgIGJh
Y2tncm91bmQ6IGdyZWVuOworICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7Cit9
Cis8L3N0eWxlPgorCis8Ym9keT4KKyAgPGRpdiBpZD0iZGl2Um9vdCI+PC9kaXY+CisKKyAgPHNj
cmlwdD48IVtDREFUQVsKKworICAgIGZ1bmN0aW9uIGFkZFRyYW5zZm9ybU9yaWdpbkRpdih4LCB5
LCB0cmFuc2Zvcm1PcmlnaW4pCisgICAgeworICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJ0cmFuc2Zv
cm1PcmlnaW5EaXYiKTsKKyAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJ0b3A6ICIg
KyB5ICsgInB4OyBsZWZ0OiAiKyB4ICsgInB4OyAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46ICIg
KyB0cmFuc2Zvcm1PcmlnaW4gKyAiOyIpOworICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkaXZSb290IikuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICB9CisKKyAgICB2YXIgdHJhbnNmb3Jt
T3JpZ2lucyA9IFsKKyAgICAgICAgICI1MCUgNTAlIiwKKyAgICAgICAgICIwJSAwJSIsCisgICAg
ICAgICAiMCUgNTAlIiwKKyAgICAgICAgICIxMDAlIDAlIiwKKyAgICAgICAgICIwJSA1MCUiLAor
ICAgICAgICAgIjEwMCUgNTAlIiwKKyAgICAgICAgICIwJSAxMDAlIiwKKyAgICAgICAgICI1MCUg
MTAwJSIsCisgICAgICAgICAiMTAwJSAxMDAlIiwKKyAgICAgXTsKKworICAgICBmdW5jdGlvbiB0
ZXN0KCkKKyAgICAgeworICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmFuc2Zvcm1Pcmln
aW5zLmxlbmd0aDsgaSsrKSAgeworICAgICAgICAgICAgIHZhciB4ID0gNjAgKyAoaSAlICA0KSAq
IDYwOworICAgICAgICAgICAgIHZhciB5ID0gNjAgKyBNYXRoLmZsb29yKGkgLyA0KSAqIDYwOwor
ICAgICAgICAgICAgIGFkZFRyYW5zZm9ybU9yaWdpbkRpdih4LCB5LCB0cmFuc2Zvcm1PcmlnaW5z
W2ldKTsKKyAgICAgICAgIH0KKyAgICAgfQorCisgICAgIHRlc3QoKTsKKworICBdXT48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zv
cm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sIGIvTGF5b3V0VGVzdHMvc3Zn
L3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHkueGh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTk2MzBiY2EzZGQ0YjFmYjAxMzE4YmZiNWMyNWFjODcxNGUxMjExYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXBy
b3BlcnR5LnhodG1sCkBAIC0wLDAgKzEsNjEgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIj4KKzxzdHlsZT4KKyNzdmdSb290IHsKKyAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7Cit9CisKKyN0cmFuc2Zvcm1PcmlnaW5S
ZWN0IHsKKyAgICBmaWxsOiBncmVlbjsKKyAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkw
ZGVnKTsKK30KKzwvc3R5bGU+CisKKzwhLS0KKyAgVGVzdCBmb3IgYnVnIDc5MDY4IC0gU1ZHIHNo
b3VsZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmlnaW4gYW5kIHJlbGF0aXZlIHZhbHVlcy4KKworICBZ
b3Ugc2hvdWxkIHNlZSA5IGdyZWVuIDIweDIwIHJlY3RhbmdsZXMuICBFYWNoIGdyZWVuIHJlY3Rh
bmdsZSBpcyBhY3R1YWxseSBvbmUgb2YgYSBzZXQgb2YgYWJvdXQgNiwgZWFjaCBvbmUKKyAgd2l0
aCBhIGRpZmZlcmVudCBidXQgZXF1aXZhbGVudCB2YWx1ZSBmb3IgdGhlIENTUyB0cmFuc2Zvcm0t
b3JpZ2luIHByb3BlcnR5LgorLS0+CisKKzxib2R5PgorICA8c3ZnIGlkPSJzdmdSb290IiB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgorCisgIDxzY3JpcHQ+PCFbQ0RB
VEFbCisgICAgdmFyIHN2Z05TID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsKKworICAg
IGZ1bmN0aW9uIGFkZFRyYW5zZm9ybU9yaWdpblJlY3QoeCwgeSwgcykKKyAgICB7CisgICAgICAg
dmFyIHJlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsICJyZWN0Iik7CisgICAg
ICAgdmFyIHRyYW5zZm9ybU9yaWdpbiA9ICh0eXBlb2YocykgPT0gInN0cmluZyIpID8gcyA6ICAo
eCArIHNbMF0pICsgIiAiICsgKHkgKyBzWzFdKTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgi
aWQiLCAidHJhbnNmb3JtT3JpZ2luUmVjdCIpOworICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ4
IiwgeCk7CisgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoInkiLCB5KTsKKyAgICAgICByZWN0LnNl
dEF0dHJpYnV0ZSgid2lkdGgiLCAzMCk7CisgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdo
dCIsIDMwKTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiLXdlYmtpdC10cmFu
c2Zvcm0tb3JpZ2luOiAiICsgdHJhbnNmb3JtT3JpZ2luICsgIjsiKTsKKyAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3ZnUm9vdCIpLmFwcGVuZENoaWxkKHJlY3QpOworICAgIH0KKwor
ICAgIHZhciBlcXVpdmFsZW50VHJhbnNmb3JtT3JpZ2lucyA9IFsKKyAgICAgICAgIFsiNTAlIDUw
JSIsICJjZW50ZXIgNTAlIiwgIjUwJSBjZW50ZXIiLCAiY2VudGVyIiwgImNlbnRlciBjZW50ZXIi
LCBbMTUsIDE1XV0sCisgICAgICAgICBbIjAlIDAlIiwgImxlZnQgMCUiLCAiMCUgdG9wIiwgImxl
ZnQgdG9wIiwgInRvcCBsZWZ0IiwgWzAsIDBdXSwKKyAgICAgICAgIFsiMCUgNTAlIiwgImxlZnQg
NTAlIiwgIjAlIGNlbnRlciIsICJsZWZ0IiwgImxlZnQgY2VudGVyIiwgImNlbnRlciBsZWZ0Iiwg
WzAsIDE1XV0sCisgICAgICAgICBbIjEwMCUgMCUiLCAicmlnaHQgMCUiLCAiMTAwJSB0b3AiLCAi
cmlnaHQgdG9wIiwgInRvcCByaWdodCIsIFszMCwgMF1dLAorICAgICAgICAgWyIwJSA1MCUiLCAi
bGVmdCA1MCUiLCAiMCUgY2VudGVyIiwgImxlZnQgY2VudGVyIiwgImNlbnRlciBsZWZ0IiwgWzAs
IDE1XV0sCisgICAgICAgICBbIjEwMCUgNTAlIiwgInJpZ2h0IDUwJSIsICIxMDAlIGNlbnRlciIs
ICJyaWdodCBjZW50ZXIiLCAiY2VudGVyIHJpZ2h0IiwgWzMwLCAxNV1dLAorICAgICAgICAgWyIw
JSAxMDAlIiwgImxlZnQgMTAwJSIsICIwJSBib3R0b20iLCAibGVmdCBib3R0b20iLCAibGVmdCBi
b3R0b20iLCBbMCwgMzBdXSwKKyAgICAgICAgIFsiNTAlIDEwMCUiLCAiY2VudGVyIDEwMCUiLCAi
NTAlIGJvdHRvbSIsICJib3R0b20iLCAiY2VudGVyIGJvdHRvbSIsICJib3R0b20gY2VudGVyIiwg
WzE1LCAzMF1dLAorICAgICAgICAgWyIxMDAlIDEwMCUiLCAicmlnaHQgMTAwJSIsICIxMDAlIGJv
dHRvbSIsICJyaWdodCBib3R0b20iLCAiYm90dG9tIHJpZ2h0IiwgWzMwLCAzMF1dCisgICAgIF07
CisKKyAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlcXVpdmFsZW50VHJhbnNmb3JtT3JpZ2lucy5s
ZW5ndGg7IGkrKykgIHsKKyAgICAgICAgIHZhciB4ID0gNjAgKyAoaSAlICA0KSAqIDYwOworICAg
ICAgICAgdmFyIHkgPSA2MCArIE1hdGguZmxvb3IoaSAvIDQpICogNjA7CisgICAgICAgICBlcXVp
dmFsZW50VHJhbnNmb3JtT3JpZ2luc1tpXS5tYXAoIGZ1bmN0aW9uKHMpIHsgYWRkVHJhbnNmb3Jt
T3JpZ2luUmVjdCh4LCB5LCBzKTsgfSApOworICAgICB9CisKKyAgXV0+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131360</attachid>
            <date>2012-03-12 11:22:12 -0700</date>
            <delta_ts>2012-03-12 16:05:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79068-20120312112210.patch</filename>
            <type>text/plain</type>
            <size>28315</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMxYWM5ZDY1NTcwYmE4
YTc4YWM2N2I3ZTExZTA3MWJjMmY1Zjc0Zi4uZDQ1Yzk2OWI1ZDI0ZWUyNGNmNzkyYzg5NTcxZmQx
YTNjOTQ4NmZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAzLTA1ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQgc3VwcG9y
dCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgU1ZHIHN1cHBvcnQgZm9yIHRoZSBD
U1MgJ3RyYW5zZm9ybS1vcmlnaW4nIHByb3BlcnR5IGFuZCBmb3IgcGVyY2VudGFnZQorICAgICAg
ICB2YWx1ZXMgaW4gdGhlIHRyYW5zZm9ybSB0cmFuc2xhdGUgZnVuY3Rpb24uICBUaGUgY2hhbmdl
cyBjb25mb3JtIHRvCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdHJhbnNm
b3Jtcy8uCisKKyAgICAgICAgVGVzdHM6IHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3Jt
LXZhbHVlcy54aHRtbAorICAgICAgICAgICAgICAgc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9y
aWdpbi1jc3MtcHJvcGVydHkueGh0bWwKKworICAgICAgICAqIGNzcy9zdmcuY3NzOgorICAgICAg
ICAoKik6CisgICAgICAgIChodG1sfCogPiBzdmcpOgorICAgICAgICBEZWZhdWx0IHRyYW5zZm9y
bS1vcmlnaW4gZm9yIFNWRyBlbGVtZW50cyBpcyAwIDAuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9M
ZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY0Zsb2F0VmFsdWUpOgorICAg
ICAgICBBZGRlZCBhIGNhbGNGbG9hdFZhbHVlIG92ZXJsb2FkIHdob3NlIG1heCBwYXJhbWV0ZXIg
KGZvciBwZXJjZW50IGxlbmd0aHMpIGlzIGEgZmxvYXQuCisgICAgICAgIFRoZSBvcmlnaW5hbCB2
ZXJzaW9uIHdpbGwgYmUgb2Jzb2xldGUgd2hlbiB0aGUgc3ViLXBpeGVsIGxheW91dCBzdXBwb3J0
IGlzIGNvbXBsZXRlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4pOgorICAg
ICAgICBUcmFuc2Zvcm1zIHRoYXQgb25seSBpbmNsdWRlIHRyYW5zbGF0aW9ucyBkb24ndCBkZXBl
bmQgb24gdGhlIHRyYW5zZm9ybS1vcmlnaW4uCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjphcHBseVRyYW5zZm9ybSk6CisgICAgICAgIFNWRyBlbGVtZW50cyBpbnRlcnByZXQgbm9u
LXBlcmNlbnRhZ2Uva2V5d29yZCB0cmFuc2Zvcm0tb3JpZ2luIHZhbHVlcyByZWxhdGl2ZSB0byB0
aGVpciB2aWV3cG9ydCwKKyAgICAgICAgdW5saWtlIEhUTUwgd2hpY2ggaW50ZXJwcmV0cyBhbGwg
dHJhbnNmb3JtLW9yaWdpbiB2YWx1ZXMgcmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQncyBvcmlnaW4u
CisgICAgICAgIFRoZSBuZXcgRmxvYXRSZWN0IGFwcGx5VHJhbnNmb3JtKCkgZnVuY3Rpb24gaGFu
ZGxlcyBTVkcgc2VtYW50aWNzLiBTaW1pbGFybHksIFNWRyBlbGVtZW50cyBpbnRlcnByZXQKKyAg
ICAgICAgcGVyY2VudGFnZS9rZXl3b3JkIHRyYW5zZm9ybS1vcmlnaW4gdmFsdWVzIHJlbGF0aXZl
IHRvIHRoZSBvcmlnaW4gb2YgdGhlaXIgb2JqZWN0Qm91bmRpbmdCb3goKSwgSFRNTAorICAgICAg
ICB1c2VzIHRoZSBib3JkZXJCb3guICBBbGwgdGhpcyBwZXIgaHR0cDovL2Rldi53My5vcmcvY3Nz
d2cvY3NzMy10cmFuc2Zvcm1zLy4KKworICAgICAgICAqIHN2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSk6CisKIDIwMTItMDMtMTIgIEdlb3JnZSBT
dGFpa29zICA8c3RhaWtvc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgZ2xv
YmFsIHN0YXRpYyB2YXJpYWJsZSBmb3IgQmxhY2tCZXJyeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9zdmcuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKaW5kZXggYmMz
MTI2OWY4ODA2MDJlNTAwYTQyZjVlODViZTY1MjdlYWZmNTFlNi4uNmVjNGIyM2VhZWI2ZTljNDgz
ZTRiODk1ODg3MTJhN2RlZjU0MGRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3N2
Zy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKQEAgLTI2LDYgKzI2LDcgQEAK
ICAqLwogCiBAbmFtZXNwYWNlICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7CitAbmFtZXNw
YWNlIGh0bWwgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOwogCiAvKgogICAgIFdoZW4g
YW4gb3V0ZXJtb3N0IFNWRyAnc3ZnJyBlbGVtZW50IGlzIHN0YW5kLWFsb25lIG9yIGVtYmVkZGVk
IGlubGluZSB3aXRoaW4gYSBwYXJlbnQgWE1MIGdyYW1tYXIgCkBAIC02MywzICs2NCwxMyBAQCB0
ZXh0LCB0c3BhbiwgdHJlZiB7CiA6Zm9jdXMgewogICAgIG91dGxpbmU6IGF1dG8gNXB4IC13ZWJr
aXQtZm9jdXMtcmluZy1jb2xvcgogfQorCisvKiBDU1MgdHJhbnNmb3JtIHNwZWNpZmljYXRpb246
ICJ0cmFuc2Zvcm0tb3JpZ2luIDAgMCBmb3IgU1ZHIGVsZW1lbnRzIHdpdGhvdXQgYXNzb2NpYXRl
ZCBDU1MgbGF5b3V0IGJveCwgNTAlIDUwJSBmb3IgYWxsIG90aGVyIGVsZW1lbnRzIi4gKi8KKyAK
KyogeworICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOworfQorCitodG1sfCogPiBz
dmcgeworICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTGVuZ3RoLmgKaW5kZXggMmJjZjkzMjYyOGZjY2E5ZWEyZThiM2MxN2ZmYTFlMmZjNjBj
NDFkZi4uNmIxMWI1OTg5MDQ1MTIzYTE4YTUxYWU3MjI4NzFhY2Y4YmVmYjYyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTGVuZ3RoLmgKQEAgLTIwMyw2ICsyMDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiB3aGVuIHN1YnBpeGVsIGxheW91dCBpcyBz
dXBwb3J0ZWQgdGhpcyBjb3B5IG9mIGNhbGNGbG9hdFZhbHVlKCkgY2FuIGJlIHJlbW92ZWQuIFNl
ZSBidWcgNzExNDMuCiAgICAgZmxvYXQgY2FsY0Zsb2F0VmFsdWUoaW50IG1heFZhbHVlKSBjb25z
dAogICAgIHsKICAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsKQEAgLTIyNSw2ICsyMjYsMjggQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKKyAgICBmbG9hdCBjYWxjRmxvYXRW
YWx1ZShmbG9hdCBtYXhWYWx1ZSkgY29uc3QKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSgp
KSB7CisgICAgICAgIGNhc2UgRml4ZWQ6CisgICAgICAgICAgICByZXR1cm4gZ2V0RmxvYXRWYWx1
ZSgpOworICAgICAgICBjYXNlIFBlcmNlbnQ6CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjBmKTsKKyAgICAgICAgY2FzZSBB
dXRvOgorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtYXhWYWx1ZSk7Cisg
ICAgICAgIGNhc2UgQ2FsY3VsYXRlZDoKKyAgICAgICAgICAgIHJldHVybiBub25OYW5DYWxjdWxh
dGVkVmFsdWUobWF4VmFsdWUpOworICAgICAgICBjYXNlIFJlbGF0aXZlOgorICAgICAgICBjYXNl
IEludHJpbnNpYzoKKyAgICAgICAgY2FzZSBNaW5JbnRyaW5zaWM6CisgICAgICAgIGNhc2UgVW5k
ZWZpbmVkOgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorCiAgICAgYm9vbCBpc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0
dXJuIHR5cGUoKSA9PSBVbmRlZmluZWQ7IH0KIAogICAgIC8vIEZJWE1FIGNhbGM6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDM1Ny4gQSBjYWxjdWxhdGVkIExlbmd0
aCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmlu
ZGV4IDhmMzFlMGY3ZDVhYWI5MTA2ODBmOTIzYjMzYTA5ODJhOWU0YzE3NGUuLjg0YjVkMDZiYWE1
N2YwOWExMmNlNmRhMDgyMmJkNGRjOTllZGU3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEFkb2JlIFN5
c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC03NjksMzkgKzc3MCw2NyBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRDb250ZW50KFF1
b3RlVHlwZSBxdW90ZSwgYm9vbCBhZGQpCiAKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nl
c3MoKS0+bV9jb250ZW50ID0gQ29udGVudERhdGE6OmNyZWF0ZShxdW90ZSk7CiB9Ci0KLXZvaWQg
UmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zv
cm0sIGNvbnN0IExheW91dFNpemUmIGJvcmRlckJveFNpemUsIEFwcGx5VHJhbnNmb3JtT3JpZ2lu
IGFwcGx5T3JpZ2luKSBjb25zdAorICAgIAoraW5saW5lIGJvb2wgcmVxdWlyZVRyYW5zZm9ybU9y
aWdpbihjb25zdCBWZWN0b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gPiYgdHJhbnNmb3Jt
T3BlcmF0aW9ucywgUmVuZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2lu
KQogewogICAgIC8vIHRyYW5zZm9ybS1vcmlnaW4gYnJhY2tldHMgdGhlIHRyYW5zZm9ybSB3aXRo
IHRyYW5zbGF0ZSBvcGVyYXRpb25zLgogICAgIC8vIE9wdGltaXplIGZvciB0aGUgY2FzZSB3aGVy
ZSB0aGUgb25seSB0cmFuc2Zvcm0gaXMgYSB0cmFuc2xhdGlvbiwgc2luY2UgdGhlIHRyYW5zZm9y
bS1vcmlnaW4gaXMgaXJyZWxldmFudAogICAgIC8vIGluIHRoYXQgY2FzZS4KLSAgICBib29sIGFw
cGx5VHJhbnNmb3JtT3JpZ2luID0gZmFsc2U7Ci0gICAgdW5zaWduZWQgcyA9IHJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5zaXplKCk7
Ci0gICAgdW5zaWduZWQgaTsKLSAgICBpZiAoYXBwbHlPcmlnaW4gPT0gSW5jbHVkZVRyYW5zZm9y
bU9yaWdpbikgewotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgczsgaSsrKSB7Ci0gICAgICAgICAg
ICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKVtpXS0+Z2V0T3Bl
cmF0aW9uVHlwZSgpOwotICAgICAgICAgICAgaWYgKHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9u
OjpUUkFOU0xBVEVfWAotICAgICAgICAgICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9ybU9w
ZXJhdGlvbjo6VFJBTlNMQVRFX1kKLSAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFu
c2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURSAKLSAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAh
PSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9aCi0gICAgICAgICAgICAgICAgICAgICYm
IHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfM0QKLSAgICAgICAgICAgICAg
ICAgICAgKSB7Ci0gICAgICAgICAgICAgICAgYXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSB0cnVlOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgaWYg
KGFwcGx5T3JpZ2luICE9IFJlbmRlclN0eWxlOjpJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1bnNpZ25lZCBzaXplID0gdHJhbnNmb3JtT3BlcmF0
aW9ucy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewor
ICAgICAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IHRyYW5zZm9y
bU9wZXJhdGlvbnNbaV0tPmdldE9wZXJhdGlvblR5cGUoKTsKKyAgICAgICAgaWYgKHR5cGUgIT0g
VHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWAorICAgICAgICAgICAgJiYgdHlwZSAhPSBU
cmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9ZCisgICAgICAgICAgICAmJiB0eXBlICE9IFRy
YW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFIAorICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFu
c2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9aCisgICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5z
Zm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNEKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQorICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KIAotICAgIGlmIChhcHBseVRyYW5zZm9y
bU9yaWdpbikgewordm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94U2l6ZSwgQXBw
bHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNvbnN0Cit7CisgICAgY29uc3QgVmVjdG9y
PFJlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+ID4mIHRyYW5zZm9ybU9wZXJhdGlvbnMgPSByYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCk7
CisgICAgYm9vbCBhcHBseVRyYW5zZm9ybU9yaWdpbiA9IHJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4o
dHJhbnNmb3JtT3BlcmF0aW9ucywgYXBwbHlPcmlnaW4pOworCisgICAgaWYgKGFwcGx5VHJhbnNm
b3JtT3JpZ2luKQogICAgICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlM2QodHJhbnNmb3JtT3JpZ2lu
WCgpLmNhbGNGbG9hdFZhbHVlKGJvcmRlckJveFNpemUud2lkdGgoKSksIHRyYW5zZm9ybU9yaWdp
blkoKS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hTaXplLmhlaWdodCgpKSwgdHJhbnNmb3JtT3Jp
Z2luWigpKTsKLSAgICB9CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgczsgaSsrKQotICAgICAgICBy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25z
KClbaV0tPmFwcGx5KHRyYW5zZm9ybSwgYm9yZGVyQm94U2l6ZSk7CisgICAgdW5zaWduZWQgc2l6
ZSA9IHRyYW5zZm9ybU9wZXJhdGlvbnMuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzaXplOyArK2kpCisgICAgICAgIHRyYW5zZm9ybU9wZXJhdGlvbnNbaV0tPmFwcGx5KHRy
YW5zZm9ybSwgYm9yZGVyQm94U2l6ZSk7CiAKLSAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4p
IHsKKyAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pCiAgICAgICAgIHRyYW5zZm9ybS50cmFu
c2xhdGUzZCgtdHJhbnNmb3JtT3JpZ2luWCgpLmNhbGNGbG9hdFZhbHVlKGJvcmRlckJveFNpemUu
d2lkdGgoKSksIC10cmFuc2Zvcm1PcmlnaW5ZKCkuY2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94U2l6
ZS5oZWlnaHQoKSksIC10cmFuc2Zvcm1PcmlnaW5aKCkpOworfQorCit2b2lkIFJlbmRlclN0eWxl
OjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94LCBBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBseU9yaWdpbikg
Y29uc3QKK3sKKyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gPiYg
dHJhbnNmb3JtT3BlcmF0aW9ucyA9IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+
bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKTsKKyAgICBib29sIGFwcGx5VHJhbnNmb3JtT3JpZ2lu
ID0gcmVxdWlyZVRyYW5zZm9ybU9yaWdpbih0cmFuc2Zvcm1PcGVyYXRpb25zLCBhcHBseU9yaWdp
bik7CisgICAgCisgICAgZmxvYXQgb2Zmc2V0WCA9IHRyYW5zZm9ybU9yaWdpblgoKS50eXBlKCkg
PT0gUGVyY2VudCA/IGJvdW5kaW5nQm94LngoKSA6IDA7CisgICAgZmxvYXQgb2Zmc2V0WSA9IHRy
YW5zZm9ybU9yaWdpblkoKS50eXBlKCkgPT0gUGVyY2VudCA/IGJvdW5kaW5nQm94LnkoKSA6IDA7
CisgICAgCisgICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2luKSB7CisgICAgICAgIHRyYW5zZm9y
bS50cmFuc2xhdGUzZCh0cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zsb2F0VmFsdWUoYm91bmRpbmdC
b3gud2lkdGgoKSkgKyBvZmZzZXRYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJh
bnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvdW5kaW5nQm94LmhlaWdodCgpKSArIG9m
ZnNldFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW5aKCkp
OworICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBzaXplID0gdHJhbnNmb3JtT3BlcmF0aW9ucy5z
aXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAg
dHJhbnNmb3JtT3BlcmF0aW9uc1tpXS0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0JveC5zaXpl
KCkpOworICAgIAorICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikgeworICAgICAgICB0cmFu
c2Zvcm0udHJhbnNsYXRlM2QoLXRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3Vu
ZGluZ0JveC53aWR0aCgpKSAtIG9mZnNldFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtdHJhbnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvdW5kaW5nQm94LmhlaWdodCgp
KSAtIG9mZnNldFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtdHJhbnNmb3JtT3Jp
Z2luWigpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKaW5kZXggNTUxNTFkM2VjZTk3ZjdmOWRmMWQ0NGM3YzkwOTMxMzk2Yjg2NWZj
My4uMzRiNTdlZTMzMTkxYjYxYjJjYjA0NWI4MTg0MDk1Y2QwYzJiMWFjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTg5NCw2ICs4OTQsNyBA
QCBwdWJsaWM6CiAKICAgICBlbnVtIEFwcGx5VHJhbnNmb3JtT3JpZ2luIHsgSW5jbHVkZVRyYW5z
Zm9ybU9yaWdpbiwgRXhjbHVkZVRyYW5zZm9ybU9yaWdpbiB9OwogICAgIHZvaWQgYXBwbHlUcmFu
c2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBMYXlvdXRTaXplJiBib3JkZXJCb3hT
aXplLCBBcHBseVRyYW5zZm9ybU9yaWdpbiA9IEluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIGNvbnN0
OworICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94LCBBcHBseVRyYW5zZm9ybU9yaWdpbiA9IEluY2x1ZGVUcmFu
c2Zvcm1PcmlnaW4pIGNvbnN0OwogICAgIHZvaWQgc2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZsb2F0
KTsKIAogICAgIGJvb2wgaGFzTWFzaygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX21hc2suaGFzSW1hZ2UoKSB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrQm94
SW1hZ2UuaGFzSW1hZ2UoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKaW5kZXggOTljMTc4MTc1OGQwNWMxODE1ZTIzNjc0
YWFiNjgxYmVlMjIzNzI1NC4uODQ2Yzg1MTVmNzRlYWJjNWZkNDAyNTAxZDI3MmJhZWU2YjY0ZGM3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQuY3BwCkBAIC02NiwxNCArNjYsMTQgQEAgQWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50OjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3QKICAg
ICBBZmZpbmVUcmFuc2Zvcm0gbWF0cml4OwogICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHJlbmRl
cmVyKCkgPyByZW5kZXJlcigpLT5zdHlsZSgpIDogMDsKIAotICAgIC8vIGlmIENTUyBwcm9wZXJ0
eSB3YXMgc2V0LCB1c2UgdGhhdCwgb3RoZXJ3aXNlIGZhbGxiYWNrIHRvIGF0dHJpYnV0ZSAoaWYg
c2V0KQorICAgIC8vIElmIENTUyBwcm9wZXJ0eSB3YXMgc2V0LCB1c2UgdGhhdCwgb3RoZXJ3aXNl
IGZhbGxiYWNrIHRvIGF0dHJpYnV0ZSAoaWYgc2V0KS4KICAgICBpZiAoc3R5bGUgJiYgc3R5bGUt
Pmhhc1RyYW5zZm9ybSgpKSB7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7Ci0gICAg
ICAgIC8vIEZvciBub3csIHRoZSB0cmFuc2Zvcm0tb3JpZ2luIGlzIG5vdCB0YWtlbiBpbnRvIGFj
Y291bnQKLSAgICAgICAgLy8gQWxzbywgYW55IHBlcmNlbnRhZ2UgdmFsdWVzIHdpbGwgbm90IGJl
IHRha2VuIGludG8gYWNjb3VudAotICAgICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0odCwgSW50
U2l6ZSgwLCAwKSwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pOwotICAgICAg
ICAvLyBGbGF0dGVuIGFueSAzRCB0cmFuc2Zvcm0KLSAgICAgICAgbWF0cml4ID0gdC50b0FmZmlu
ZVRyYW5zZm9ybSgpOworICAgICAgICAvLyBOb3RlOiBvYmplY3RCb3VuZGluZ0JveCBpcyBhbiBl
bXB0eVJlY3QgZm9yIGVsZW1lbnRzIGxpa2UgcGF0dGVybiBvciBjbGlwUGF0aC4KKyAgICAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOworICAgICAgICBzdHlsZS0+YXBwbHlUcmFu
c2Zvcm0odHJhbnNmb3JtLCByZW5kZXJlcigpLT5vYmplY3RCb3VuZGluZ0JveCgpKTsKKworICAg
ICAgICAvLyBGbGF0dGVuIGFueSAzRCB0cmFuc2Zvcm0uCisgICAgICAgIG1hdHJpeCA9IHRyYW5z
Zm9ybS50b0FmZmluZVRyYW5zZm9ybSgpOwogICAgIH0gZWxzZQogICAgICAgICB0cmFuc2Zvcm0o
KS5jb25jYXRlbmF0ZShtYXRyaXgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmEzNTY3Y2U0ODJmYTFlMTU5OGE2NTc4
ZTQ0YmZlMDc5ZDk2ZDhhZS4uYjIyZTk3ZjFkMmY0YmNjYjQxNTBhNDFjMDY2YTE0Nzg4OTZhMWU1
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTA1ICBIYW5zIE11bGxlciAgPGhtdWxs
ZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQgc3VwcG9ydCB0cmFuc2Zvcm0tb3Jp
Z2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yIFNWRyBDU1MgdHJhbnNmb3JtLW9yaWdpbiBw
cm9wZXJ0eSBzdXBwb3J0IGFuZCBmb3IKKyAgICAgICAgQ1NTIHRyYW5zbGF0aW9ucyBzcGVjaWZp
ZWQgd2l0aCBwZXJjZW50YWdlcyBhbmQgYXBwbGllZCB0byBhbiBTVkcgZWxlbWVudC4KKworICAg
ICAgICAqIHN2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCisgICAgICAgICogc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmln
aW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9jaGFuZ2Ut
dHJhbnNmb3JtLWNzcy5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL2NoYW5n
ZS10cmFuc2Zvcm0tb3JpZ2luLXByZXNlbnRhdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1w
cmVzZW50YXRpb24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3Zn
L3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tcHJlc2VudGF0aW9uLWF0dHJpYnV0
ZS5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3Jt
LXZhbHVlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL3Bl
cmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL3RyYW5z
Zm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHktZXhwZWN0ZWQueGh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5
LnhodG1sOiBBZGRlZC4KKwogMjAxMi0wMy0xMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gUkVHUkVTU0lPTihyMTEwNDAxKTogZmFzdC90YWJs
ZS90YWJsZS1yb3ctY29tcG9zaXRpbmctcmVwYWludC1jcmFzaC5odG1sIGFzc2VydHMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApp
bmRleCAxM2E1OGY5YTE1YzhkMzZkYzVmZjMwMWUyOTNhNzc3MDUxZjFjODgxLi5jMGJiYjgwNzYz
YThmOWY4ZDM1MTVhZjQ2MTBkNjE5NDE5MTdlYTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC05MzAsNiArOTMwLDEz
IEBAIEJVR0NSNjI0MzMgV0lOIDogZmFzdC9pbWFnZXMvZ2lmLWxvb3AtY291bnQuaHRtbCA9IElN
QUdFCiAvLyBTVkcgVEVTVFMKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKKy8vIE5ldyB0ZXN0cyByZXF1aXJlIHJl
YmFzZWxpbmUKK0JVR1dLNzkwNjggOiBzdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9y
aWdpbi1jc3Muc3ZnID0gSU1BR0UrVEVYVCBJTUFHRSBURVhUIFBBU1MKK0JVR1dLNzkwNjggOiBz
dmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmli
dXRlLnN2ZyA9IElNQUdFK1RFWFQgSU1BR0UgVEVYVCBQQVNTCisKKy8vIENocm9taXVtIGZhaWx1
cmUgbmVlZHMgaW52ZXN0aWdhdGlvbgorQlVHV0s3OTA2OCA6IHN2Zy90cmFuc2Zvcm1zL3RyYW5z
Zm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sID0gRkFJTAorCiAvLyBOZXcgdGVzdCByZXF1
aXJlcyByZWJhc2VsaW5lCiBCVUdXSzc3NTM1IDogc3ZnL3JlcGFpbnQvaW5uZXItc3ZnLWNoYW5n
ZS12aWV3UG9ydC1yZWxhdGl2ZS5zdmcgPSBJTUFHRSBJTUFHRStURVhUCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLWNzcy1l
eHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3Jt
LW9yaWdpbi1jc3MtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxNGNkMDA3ZmI0YzBmOGFlZmU5
M2ZhZTcwODBkMzNiOTU1YTliNTIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEwNzQ3CnpjbWVI
Tlola1dONnU8QkJ4O3wqbzJnbik7JGAjUnklUWwjRj9GPUlxWlAhKD97TW9gdHZqbmdNTTtrTXlR
JGchYAp6T05AcE0yQ2Y/YWdkaD4zRVIqNGZsRE5kc3FFb2dIcnB2XmNaSGV1fmUrd2FsRXA5RGg+
eEhpRy1IKm5eUHV4JUsKenlZSmswUFM1JEItP2BgWGI9VE18bkhoTiowRHcmRVBFI0VLWCVHT3VM
MG1eeEs3Nl5Xb3FRQUBHQitHQD5+Qz9uCnpVVlEwIVU/Xj1od3c1fXx3bCVrdUkxRlZhRSY2OC1U
VSsofU57cjIwVE9HfiUpQlpebjAxI01CbUFnQipgQWJ2Wgp6eHoyVChZcD5MN0lyY35LblItKShX
bktCSFVGVnkkNGBpUXc+JFdUWl8qfnJBZHBxb2pGVU5sTCNRRmZvMyEoJU8KekNTTUFxPXRwPEUt
fFMwWEM2fEs8alZPNlVTdzt9dVJTM0kjRX5+UT9GXkhCaz8+dThnYUd7anJaaj9GO09lK3NmCno/
ITtpeHUmVSRFUT5PKnQ/RFhqQ1F0Q2J0PGo7ZzxAZkJsb0J2PiRmdENHQDgzYHdJZCpQYkVLRTRx
cW4xJlAxPAp6c0AqLUlzNmlFOXo4TU97SldKdEoxTz9JMCQ1a1ZMYGdiVTw1MUo5KStkaU8oTmMm
YTcmYmhXOyNvT01hN0BVcTYKenNmZUQ+NWNAQkZwR1NwOSVXKkdFOVZ9RldJRnV7RnV9fTMxZTF1
SXJ8NFl7XzY/TD0kQjczIXFpckhRZ2NoeiheCnpyTWV6cnxLTFQreC1VZXJVdm4mblFheSUyK3g5
V2F5N252eVlWJm9KWUNGZVdjLTgpKFZxSyZWcURAOHtyUHxOKQp6JXJPdSMkMFJ8KjVWTSotWWFe
OCsyaiZNUjRvSzB0QHhiSSZTS1EqQjRrWjQqcDIhTSt7YSZoeUVnISlpRjd+ZUIKeitBQiZXaX1J
dzlzV3pZNlF6UjQxIVVqVGVkd3Y9VFNJUF88KEdYSjhlcCVHYHdvR2ZtYVlBQl5veGEwcm5afkBF
CnpCPyZlejlDdz0pKzZvWW9Je2ZRMU9aTz0+SEhrPWRvcUdDNFpufHMrdT8jVDdsNXpVQzl0KHlt
N04xLXhrR2hLQQp6YlFRRFhmJXNCKV9eTChyc2JveCNZV3NhaG8+TSQ4bVhvU2QtTyF0ekxXQmd7
dm44bUA0Tj05WmdHNmxiXlNwOy0KekpmS0pzTTdCbzxzcF87fkxiJHdIfEM5XzY5SkNAbHUpQ1p0
UHUmPUZlJnV7ZU1oeCkhRnhZbVlnRCVgVDFidUooCnpAUTRme2pAT1lRVCh7VW0/YX5vQXJrfGA7
RmVUVz8lRS1fNlFvRWBOSzZDMWFzaD5KUFI7PUdWTShyOVRmWXA3cgp6THFRJCFrak5hUV8+NEot
QXQqJjNZZGdpZmlUS1VtTGpqd2JDUHJBSkEldHE1eHU0PmxUP2tqQHNWUzBpYSRNY2YKeiVNPVla
a3Y3OVJ0QkAmMTh6Rk1tek5WeXxTakJOJCtWVXcxOXdwdCZNa20je2RXI2A/eEhwWWJKYn1ScF5F
XmUjCnpCYFY/VSRVJWtKKGE/R2NQSzw3K1oySlUqNTZiU002d2k9O1ZmfT1LVikxKDw9PTtgN2sq
XikkblU4TiN3IVAydQp6YHp7eiRGZDtXO0ckTH5mYkJkUUMxcVdJQmg+VE5zZmV8Z01LQk98VGxG
YWUhb0M0VjRPX2JQKVIkI3xgI0Nqam4Kekg/ZkEwN2coM2ZAb2FTUFVxJU8mQHpgfCQoIURHMTA8
Y3NmMTBqfTVFUzE8NFpnbiFzTXc1VXw7U2lnYGsmIT19CmshbSVrRj17NWVofDl9JGVBIzMqSW14
Yz5OPFpWdTFIUVArNW9AbmEmMmZgeFV5WmBfSQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmln
aW4tY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10
cmFuc2Zvcm0tb3JpZ2luLWNzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVlNWQ2N2M0ZGFm
NjNiZDczYWExYWJlZTIwMzRjNzQ2YTA3NDJkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLWNzcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAor
ICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgyNSwyNSkgc2l6ZSAxMDB4MTAwCisgICAgUmVuZGVy
U1ZHUmVjdCB7cmVjdH0gYXQgKDI1LDI1KSBzaXplIDEwMHgxMDAgW3RyYW5zZm9ybT17bT0oKDIu
MDAsMC4wMCkoMC4wMCwyLjAwKSkgdD0oLTc1LjAwLC03NS4wMCl9XSBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTUwLjAwXSBbeT01MC4wMF0gW3dpZHRoPTUwLjAwXSBb
aGVpZ2h0PTUwLjAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hh
bmdlLXRyYW5zZm9ybS1vcmlnaW4tY3NzLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1z
L2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLWNzcy5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBiYjdkNTg1YTk3
YTllMjRhNDk4Y2NhZjA0MDdlOTE4N2IzMjZhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLWNzcy5zdmcKQEAgLTAs
MCArMSwxMCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5z
OnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBvbmxvYWQ9InJ1blJlcGFpbnRU
ZXN0KCkiPgorICAgIDxzY3JpcHQgeGxpbms6aHJlZj0iLi4vLi4vZmFzdC9yZXBhaW50L3Jlc291
cmNlcy9yZXBhaW50LmpzIj48L3NjcmlwdD4KKyAgICA8dGl0bGU+VGhlIGdyZWVuIDEwMHgxMDAg
cmVjdGFuZ2xlIHNob3VsZCBhcHBlYXIgYXQgMjUsMjUuPC90aXRsZT4KKzxyZWN0IGlkPSJyZWN0
IiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB4PSI1MCIgeT0iNTAiIGZpbGw9ImdyZWVuIiBz
dHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDIsIDIpOyIvPgorPHNjcmlwdD4KKyAgICBm
dW5jdGlvbiByZXBhaW50VGVzdCgpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3JlY3QnKS5zdHlsZS53ZWJraXRUcmFuc2Zvcm1PcmlnaW4gPSAiNTAlIDUwJSI7CisgICAgfQor
PC9zY3JpcHQ+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1z
L2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLXByZXNlbnRhdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4t
cHJlc2VudGF0aW9uLWF0dHJpYnV0ZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE0Y2QwMDdm
YjRjMGY4YWVmZTkzZmFlNzA4MGQzM2I5NTVhOWI1MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MTA3NDcKemNtZUhOWiVrV042dTxCQng7fCpvMmduKTskYCNSeSVRbCNGP0Y9SXFaUCEoP3tNb2B0
dmpuZ01NO2tNeVEkZyFgCnpPTkBwTTJDZj9hZ2RoPjNFUio0ZmxETmRzcUVvZ0hycHZeY1pIZXV+
ZSt3YWxFcDlEaD54SGlHLUgqbl5QdXglSwp6eVlKazBQUzUkQi0/YGBYYj1UTXxuSGhOKjBEdyZF
UEUjRUtYJUdPdUwwbV54Szc2XldvcVFBQEdCK0dAPn5DP24KelVWUTAhVT9ePWh3dzV9fHdsJWt1
STFGVmFFJjY4LVRVKyh9TntyMjBUT0d+JSlCWl5uMDEjTUJtQWdCKmBBYnZaCnp4ejJUKFlwPkw3
SXJjfktuUi0pKFduS0JIVUZWeSQ0YGlRdz4kV1RaXyp+ckFkcHFvakZVTmxMI1FGZm8zISglTwp6
Q1NNQXE9dHA8RS18UzBYQzZ8SzxqVk82VVN3O311UlMzSSNFfn5RP0ZeSEJrPz51OGdhR3tqclpq
P0Y7T2Urc2YKej8hO2l4dSZVJEVRPk8qdD9EWGpDUXRDYnQ8ajtnPEBmQmxvQnY+JGZ0Q0dAODNg
d0lkKlBiRUtFNHFxbjEmUDE8CnpzQCotSXM2aUU5ejhNT3tKV0p0SjFPP0kwJDVrVkxgZ2JVPDUx
SjkpK2RpTyhOYyZhNyZiaFc7I29PTWE3QFVxNgp6c2ZlRD41Y0BCRnBHU3A5JVcqR0U5Vn1GV0lG
dXtGdX19MzFlMXVJcnw0WXtfNj9MPSRCNzMhcWlySFFnY2h6KF4KenJNZXpyfEtMVCt4LVVlclV2
biZuUWF5JTIreDlXYXk3bnZ5WVYmb0pZQ0ZlV2MtOCkoVnFLJlZxREA4e3JQfE4pCnolck91IyQw
UnwqNVZNKi1ZYV44KzJqJk1SNG9LMHRAeGJJJlNLUSpCNGtaNCpwMiFNK3thJmh5RWchKWlGN35l
Qgp6K0FCJldpfUl3OXNXelk2UXpSNDEhVWpUZWR3dj1UU0lQXzwoR1hKOGVwJUdgd29HZm1hWUFC
Xm94YTByblp+QEUKekI/JmV6OUN3PSkrNm9Zb0l7ZlExT1pPPT5ISGs9ZG9xR0M0Wm58cyt1PyNU
N2w1elVDOXQoeW03TjEteGtHaEtBCnpiUVFEWGYlc0IpX15MKHJzYm94I1lXc2Fobz5NJDhtWG9T
ZC1PIXR6TFdCZ3t2bjhtQDROPTlaZ0c2bGJeU3A7LQp6SmZLSnNNN0JvPHNwXzt+TGIkd0h8Qzlf
NjlKQ0BsdSlDWnRQdSY9RmUmdXtlTWh4KSFGeFltWWdEJWBUMWJ1SigKekBRNGZ7akBPWVFUKHtV
bT9hfm9Bcmt8YDtGZVRXPyVFLV82UW9FYE5LNkMxYXNoPkpQUjs9R1ZNKHI5VGZZcDdyCnpMcVEk
IWtqTmFRXz40Si1BdComM1lkZ2lmaVRLVW1Mamp3YkNQckFKQSV0cTV4dTQ+bFQ/a2pAc1ZTMGlh
JE1jZgp6JU09WVprdjc5UnRCQCYxOHpGTW16TlZ5fFNqQk4kK1ZVdzE5d3B0Jk1rbSN7ZFcjYD94
SHBZYkpifVJwXkVeZSMKekJgVj9VJFUla0ooYT9HY1BLPDcrWjJKVSo1NmJTTTZ3aT07VmZ9PUtW
KTEoPD09O2A3aypeKSRuVThOI3chUDJ1Cnpgent6JEZkO1c7RyRMfmZiQmRRQzFxV0lCaD5UTnNm
ZXxnTUtCT3xUbEZhZSFvQzRWNE9fYlApUiQjfGAjQ2pqbgp6SD9mQTA3ZygzZkBvYVNQVXElTyZA
emB8JCghREcxMDxjc2YxMGp9NUVTMTw0WmduIXNNdzVVfDtTaWdgayYhPX0KayFtJWtGPXs1ZWh8
OX0kZUEjMypJbXhjPk48WlZ1MUhRUCs1b0BuYSYyZmB4VXlaYF9JCgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJh
bnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLXByZXNlbnRhdGlv
bi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlZTVkNjdjNGRhZjYzYmQ3M2Fh
MWFiZWUyMDM0Yzc0NmEwNzQyZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
dHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDI1LDI1KSBzaXplIDEwMHgxMDAK
KyAgICBSZW5kZXJTVkdSZWN0IHtyZWN0fSBhdCAoMjUsMjUpIHNpemUgMTAweDEwMCBbdHJhbnNm
b3JtPXttPSgoMi4wMCwwLjAwKSgwLjAwLDIuMDApKSB0PSgtNzUuMDAsLTc1LjAwKX1dIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9NTAuMDBdIFt5PTUwLjAwXSBbd2lk
dGg9NTAuMDBdIFtoZWlnaHQ9NTAuMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJh
bnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRlLnN2
ZyBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLXBy
ZXNlbnRhdGlvbi1hdHRyaWJ1dGUuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxNDk5NGI1OWQzODgwMjk5YWUz
OTZiZmNiYjdhMjE4NjJlMzM0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
dHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRl
LnN2ZwpAQCAtMCwwICsxLDEwIEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG9ubG9hZD0i
cnVuUmVwYWludFRlc3QoKSI+CisgICAgPHNjcmlwdCB4bGluazpocmVmPSIuLi8uLi9mYXN0L3Jl
cGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanMiPjwvc2NyaXB0PgorICAgIDx0aXRsZT5UaGUgZ3Jl
ZW4gMTAweDEwMCByZWN0YW5nbGUgc2hvdWxkIGFwcGVhciBhdCAyNSwyNS48L3RpdGxlPgorPHJl
Y3QgaWQ9InJlY3QiIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHg9IjUwIiB5PSI1MCIgZmls
bD0iZ3JlZW4iIHRyYW5zZm9ybS1vcmlnaW49IjAgMCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3Jt
OiBzY2FsZSgyLCAyKTsiLz4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWN0Jykuc2V0QXR0cmlidXRlKCJ0
cmFuc2Zvcm0tb3JpZ2luIiwgIjUwJSA1MCUiKQorICAgIH0KKzwvc2NyaXB0PgorPC9zdmc+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12
YWx1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10
cmFuc2Zvcm0tdmFsdWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjMyNzM0YWU0YzJiM2U2
N2E2YjAwOTk4OWE3OWY2ZWY2OTVkZDBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zvcm0tdmFsdWVzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDcgQEAKK1Rlc3QgZm9yIGJ1ZyA3OTA2OCAtIFNWRyBzaG91bGQgc3VwcG9ydCB0cmFu
c2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMgVmVyaWZ5IHRoYXQgQ1NTIHRyYW5zZm9y
bSB0cmFuc2xhdGUgdmFsdWVzIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCBwZXJjZW50YWdlcy4KKwor
WW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzIGFuZCBvbmUgODB4NjAg
Z3JlZW4gcmVjdGFuZ2xlLiBUaGUgZ3JlZW4gcmVjdGFuZ2xlIG9ic2N1cmVzIHR3byByZWQgcmVj
dGFuZ2xlcyBvZiB0aGUgc2FtZSBzaXplIHdoaWNoIGhhdmUgYmVlbiB0cmFuc2xhdGVkIHRvIHRo
ZSBzYW1lIGxvY2F0aW9uLgorUEFTUyAgcmVjdCAicjEiIFs1MCwyMDAgODB4NjBdIGV4cGVjdGVk
IFs1MCwyMDAgODB4NjBdCitQQVNTICByZWN0ICJyMiIgWzUwLDIwMCA4MHg2MF0gZXhwZWN0ZWQg
WzUwLDIwMCA4MHg2MF0KK1BBU1MgIHJlY3QgInIzIiBbNTAsMjAwIDgweDYwXSBleHBlY3RlZCBb
NTAsMjAwIDgweDYwXQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9w
ZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jt
cy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEyY2Y1MWNiYzlm
YjM3N2YxOGNhYzhhYTQxYzhjNWZiYmZlZDhhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54aHRtbApAQCAtMCww
ICsxLDM1IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8
Ym9keT4KKyAgPHA+VGVzdCBmb3IgYnVnIDxhIGhyZWY9IiI+NzkwNjg8L2E+IC0gU1ZHIHNob3Vs
ZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmlnaW4gYW5kIHJlbGF0aXZlIHZhbHVlcworICBWZXJpZnkg
dGhhdCBDU1MgdHJhbnNmb3JtIHRyYW5zbGF0ZSB2YWx1ZXMgY2FuIGJlIHNwZWNpZmllZCB3aXRo
IHBlcmNlbnRhZ2VzLgorICA8L3A+CisgIFlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcyBhbmQgb25lIDgweDYwIGdyZWVuIHJlY3RhbmdsZS4gICBUaGUgZ3JlZW4gcmVj
dGFuZ2xlIG9ic2N1cmVzIHR3bworICByZWQgcmVjdGFuZ2xlcyBvZiB0aGUgc2FtZSBzaXplIHdo
aWNoIGhhdmUgYmVlbiB0cmFuc2xhdGVkIHRvIHRoZSBzYW1lIGxvY2F0aW9uLgorICA8cD4KKyAg
PC9wPgorICA8c3ZnIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowcHg7IHRvcDowcHg7
IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxyZWN0IGlkPSJyMSIg
eD0iMTAiIHk9IjIwMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjYwIiBmaWxsPSJyZWQiIHN0eWxlPSIt
d2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSkiLz4KKyAgICA8cmVjdCBpZD0icjIiIHg9
IjkwIiB5PSIyNjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgZmlsbD0icmVkIiBzdHlsZT0iLXdl
YmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtMTAwJSkiLz4KKyAgICA8cmVjdCBpZD0i
cjMiIHg9IjEwIiB5PSIyMDAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgZmlsbD0iZ3JlZW4iIHN0
eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgMCUpIi8+CisgIDwvc3ZnPgor
ICA8cHJlIGlkPSJsb2ciPjwvcHJlPgorPC9ib2R5PgorPHNjcmlwdD48IVtDREFUQVsKKworICAg
IHZhciByZXN1bHRTdHJpbmcgPSAiIjsKKworICAgIGZ1bmN0aW9uIGNoZWNrQ2xpZW50UmVjdChy
ZWN0SUQpIHsKKyAgICAgICAgdmFyIGNyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVjdElE
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgdmFyIGNyU3RyaW5nID0gIlsiICsg
Y3IubGVmdCArICIsIiArIGNyLnRvcCArICIgIiArIGNyLndpZHRoICsgIngiICsgY3IuaGVpZ2h0
ICsgIl0iOworICAgICAgICB2YXIgZXhwZWN0ZWQgPSAiWzUwLDIwMCA4MHg2MF0iOworICAgICAg
ICByZXN1bHRTdHJpbmcgKz0gKChjclN0cmluZyA9PSBleHBlY3RlZCkgPyAiUEFTUyAiIDogIkZB
SUwgIikgKyAiIHJlY3QgXCIiICsgcmVjdElEICsgIlwiICIgKyBjclN0cmluZyArICIgZXhwZWN0
ZWQgIiArIGV4cGVjdGVkICsgIlxuIjsKKyAgICB9CisKKyAgICBbInIxIiwgInIyIiwgInIzIl0u
bWFwKGNoZWNrQ2xpZW50UmVjdCk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIp
LmlubmVySFRNTCA9IHJlc3VsdFN0cmluZzsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
IF1dPjwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5z
Zm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHktZXhwZWN0ZWQueGh0bWwgYi9MYXlv
dXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS1leHBl
Y3RlZC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjUwMTExZmIxNzRlZGU1Yjg0YTBlMDU1YzdiOTBhOTc0
ZGQzM2RiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJh
bnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHktZXhwZWN0ZWQueGh0bWwKQEAgLTAsMCArMSw1MCBA
QAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPHN0eWxlPgor
I3RyYW5zZm9ybU9yaWdpbkRpdiB7CisgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICB3aWR0aDog
MzBweDsKKyAgIGhlaWdodDogMzBweDsKKyAgIGJhY2tncm91bmQ6IGdyZWVuOworICAgLXdlYmtp
dC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7Cit9Cis8L3N0eWxlPgorCis8Ym9keT4KKyAgPGRp
diBpZD0iZGl2Um9vdCI+PC9kaXY+CisKKyAgPHNjcmlwdD48IVtDREFUQVsKKworICAgIGZ1bmN0
aW9uIGFkZFRyYW5zZm9ybU9yaWdpbkRpdih4LCB5LCB0cmFuc2Zvcm1PcmlnaW4pCisgICAgewor
ICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICBk
aXYuc2V0QXR0cmlidXRlKCJpZCIsICJ0cmFuc2Zvcm1PcmlnaW5EaXYiKTsKKyAgICAgICBkaXYu
c2V0QXR0cmlidXRlKCJzdHlsZSIsICJ0b3A6ICIgKyB5ICsgInB4OyBsZWZ0OiAiKyB4ICsgInB4
OyAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46ICIgKyB0cmFuc2Zvcm1PcmlnaW4gKyAiOyIpOwor
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXZSb290IikuYXBwZW5kQ2hpbGQoZGl2
KTsKKyAgICB9CisKKyAgICB2YXIgdHJhbnNmb3JtT3JpZ2lucyA9IFsKKyAgICAgICAgICI1MCUg
NTAlIiwKKyAgICAgICAgICIwJSAwJSIsCisgICAgICAgICAiMCUgNTAlIiwKKyAgICAgICAgICIx
MDAlIDAlIiwKKyAgICAgICAgICIwJSA1MCUiLAorICAgICAgICAgIjEwMCUgNTAlIiwKKyAgICAg
ICAgICIwJSAxMDAlIiwKKyAgICAgICAgICI1MCUgMTAwJSIsCisgICAgICAgICAiMTAwJSAxMDAl
IiwKKyAgICAgXTsKKworICAgICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgeworICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0cmFuc2Zvcm1PcmlnaW5zLmxlbmd0aDsgaSsrKSAgeworICAgICAg
ICAgICAgIHZhciB4ID0gNjAgKyAoaSAlICA0KSAqIDYwOworICAgICAgICAgICAgIHZhciB5ID0g
NjAgKyBNYXRoLmZsb29yKGkgLyA0KSAqIDYwOworICAgICAgICAgICAgIGFkZFRyYW5zZm9ybU9y
aWdpbkRpdih4LCB5LCB0cmFuc2Zvcm1PcmlnaW5zW2ldKTsKKyAgICAgICAgIH0KKyAgICAgfQor
CisgICAgIHRlc3QoKTsKKworICBdXT48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXBy
b3BlcnR5LnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdp
bi1jc3MtcHJvcGVydHkueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTk2MzBiY2EzZGQ0YjFmYjAxMzE4YmZi
NWMyNWFjODcxNGUxMjExYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90cmFu
c2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sCkBAIC0wLDAgKzEsNjEg
QEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzdHlsZT4K
KyNzdmdSb290IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxl
ZnQ6IDA7Cit9CisKKyN0cmFuc2Zvcm1PcmlnaW5SZWN0IHsKKyAgICBmaWxsOiBncmVlbjsKKyAg
ICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsKK30KKzwvc3R5bGU+CisKKzwhLS0K
KyAgVGVzdCBmb3IgYnVnIDc5MDY4IC0gU1ZHIHNob3VsZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmln
aW4gYW5kIHJlbGF0aXZlIHZhbHVlcy4KKworICBZb3Ugc2hvdWxkIHNlZSA5IGdyZWVuIDIweDIw
IHJlY3RhbmdsZXMuICBFYWNoIGdyZWVuIHJlY3RhbmdsZSBpcyBhY3R1YWxseSBvbmUgb2YgYSBz
ZXQgb2YgYWJvdXQgNiwgZWFjaCBvbmUKKyAgd2l0aCBhIGRpZmZlcmVudCBidXQgZXF1aXZhbGVu
dCB2YWx1ZSBmb3IgdGhlIENTUyB0cmFuc2Zvcm0tb3JpZ2luIHByb3BlcnR5LgorLS0+CisKKzxi
b2R5PgorICA8c3ZnIGlkPSJzdmdSb290IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciPjwvc3ZnPgorCisgIDxzY3JpcHQ+PCFbQ0RBVEFbCisgICAgdmFyIHN2Z05TID0gImh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsKKworICAgIGZ1bmN0aW9uIGFkZFRyYW5zZm9ybU9yaWdp
blJlY3QoeCwgeSwgcykKKyAgICB7CisgICAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50TlMoc3ZnTlMsICJyZWN0Iik7CisgICAgICAgdmFyIHRyYW5zZm9ybU9yaWdpbiA9ICh0
eXBlb2YocykgPT0gInN0cmluZyIpID8gcyA6ICAoeCArIHNbMF0pICsgIiAiICsgKHkgKyBzWzFd
KTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHJhbnNmb3JtT3JpZ2luUmVjdCIp
OworICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ4IiwgeCk7CisgICAgICAgcmVjdC5zZXRBdHRy
aWJ1dGUoInkiLCB5KTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgid2lkdGgiLCAzMCk7Cisg
ICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIDMwKTsKKyAgICAgICByZWN0LnNldEF0
dHJpYnV0ZSgic3R5bGUiLCAiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAiICsgdHJhbnNmb3Jt
T3JpZ2luICsgIjsiKTsKKyAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnUm9vdCIp
LmFwcGVuZENoaWxkKHJlY3QpOworICAgIH0KKworICAgIHZhciBlcXVpdmFsZW50VHJhbnNmb3Jt
T3JpZ2lucyA9IFsKKyAgICAgICAgIFsiNTAlIDUwJSIsICJjZW50ZXIgNTAlIiwgIjUwJSBjZW50
ZXIiLCAiY2VudGVyIiwgImNlbnRlciBjZW50ZXIiLCBbMTUsIDE1XV0sCisgICAgICAgICBbIjAl
IDAlIiwgImxlZnQgMCUiLCAiMCUgdG9wIiwgImxlZnQgdG9wIiwgInRvcCBsZWZ0IiwgWzAsIDBd
XSwKKyAgICAgICAgIFsiMCUgNTAlIiwgImxlZnQgNTAlIiwgIjAlIGNlbnRlciIsICJsZWZ0Iiwg
ImxlZnQgY2VudGVyIiwgImNlbnRlciBsZWZ0IiwgWzAsIDE1XV0sCisgICAgICAgICBbIjEwMCUg
MCUiLCAicmlnaHQgMCUiLCAiMTAwJSB0b3AiLCAicmlnaHQgdG9wIiwgInRvcCByaWdodCIsIFsz
MCwgMF1dLAorICAgICAgICAgWyIwJSA1MCUiLCAibGVmdCA1MCUiLCAiMCUgY2VudGVyIiwgImxl
ZnQgY2VudGVyIiwgImNlbnRlciBsZWZ0IiwgWzAsIDE1XV0sCisgICAgICAgICBbIjEwMCUgNTAl
IiwgInJpZ2h0IDUwJSIsICIxMDAlIGNlbnRlciIsICJyaWdodCBjZW50ZXIiLCAiY2VudGVyIHJp
Z2h0IiwgWzMwLCAxNV1dLAorICAgICAgICAgWyIwJSAxMDAlIiwgImxlZnQgMTAwJSIsICIwJSBi
b3R0b20iLCAibGVmdCBib3R0b20iLCAibGVmdCBib3R0b20iLCBbMCwgMzBdXSwKKyAgICAgICAg
IFsiNTAlIDEwMCUiLCAiY2VudGVyIDEwMCUiLCAiNTAlIGJvdHRvbSIsICJib3R0b20iLCAiY2Vu
dGVyIGJvdHRvbSIsICJib3R0b20gY2VudGVyIiwgWzE1LCAzMF1dLAorICAgICAgICAgWyIxMDAl
IDEwMCUiLCAicmlnaHQgMTAwJSIsICIxMDAlIGJvdHRvbSIsICJyaWdodCBib3R0b20iLCAiYm90
dG9tIHJpZ2h0IiwgWzMwLCAzMF1dCisgICAgIF07CisKKyAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBlcXVpdmFsZW50VHJhbnNmb3JtT3JpZ2lucy5sZW5ndGg7IGkrKykgIHsKKyAgICAgICAgIHZh
ciB4ID0gNjAgKyAoaSAlICA0KSAqIDYwOworICAgICAgICAgdmFyIHkgPSA2MCArIE1hdGguZmxv
b3IoaSAvIDQpICogNjA7CisgICAgICAgICBlcXVpdmFsZW50VHJhbnNmb3JtT3JpZ2luc1tpXS5t
YXAoIGZ1bmN0aW9uKHMpIHsgYWRkVHJhbnNmb3JtT3JpZ2luUmVjdCh4LCB5LCBzKTsgfSApOwor
ICAgICB9CisKKyAgXV0+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131435</attachid>
            <date>2012-03-12 16:05:47 -0700</date>
            <delta_ts>2012-03-12 16:44:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79068-20120312160546.patch</filename>
            <type>text/plain</type>
            <size>24508</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMxYWM5ZDY1NTcwYmE4
YTc4YWM2N2I3ZTExZTA3MWJjMmY1Zjc0Zi4uZDQ1Yzk2OWI1ZDI0ZWUyNGNmNzkyYzg5NTcxZmQx
YTNjOTQ4NmZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAzLTA1ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQgc3VwcG9y
dCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgU1ZHIHN1cHBvcnQgZm9yIHRoZSBD
U1MgJ3RyYW5zZm9ybS1vcmlnaW4nIHByb3BlcnR5IGFuZCBmb3IgcGVyY2VudGFnZQorICAgICAg
ICB2YWx1ZXMgaW4gdGhlIHRyYW5zZm9ybSB0cmFuc2xhdGUgZnVuY3Rpb24uICBUaGUgY2hhbmdl
cyBjb25mb3JtIHRvCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdHJhbnNm
b3Jtcy8uCisKKyAgICAgICAgVGVzdHM6IHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3Jt
LXZhbHVlcy54aHRtbAorICAgICAgICAgICAgICAgc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9y
aWdpbi1jc3MtcHJvcGVydHkueGh0bWwKKworICAgICAgICAqIGNzcy9zdmcuY3NzOgorICAgICAg
ICAoKik6CisgICAgICAgIChodG1sfCogPiBzdmcpOgorICAgICAgICBEZWZhdWx0IHRyYW5zZm9y
bS1vcmlnaW4gZm9yIFNWRyBlbGVtZW50cyBpcyAwIDAuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9M
ZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY0Zsb2F0VmFsdWUpOgorICAg
ICAgICBBZGRlZCBhIGNhbGNGbG9hdFZhbHVlIG92ZXJsb2FkIHdob3NlIG1heCBwYXJhbWV0ZXIg
KGZvciBwZXJjZW50IGxlbmd0aHMpIGlzIGEgZmxvYXQuCisgICAgICAgIFRoZSBvcmlnaW5hbCB2
ZXJzaW9uIHdpbGwgYmUgb2Jzb2xldGUgd2hlbiB0aGUgc3ViLXBpeGVsIGxheW91dCBzdXBwb3J0
IGlzIGNvbXBsZXRlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4pOgorICAg
ICAgICBUcmFuc2Zvcm1zIHRoYXQgb25seSBpbmNsdWRlIHRyYW5zbGF0aW9ucyBkb24ndCBkZXBl
bmQgb24gdGhlIHRyYW5zZm9ybS1vcmlnaW4uCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjphcHBseVRyYW5zZm9ybSk6CisgICAgICAgIFNWRyBlbGVtZW50cyBpbnRlcnByZXQgbm9u
LXBlcmNlbnRhZ2Uva2V5d29yZCB0cmFuc2Zvcm0tb3JpZ2luIHZhbHVlcyByZWxhdGl2ZSB0byB0
aGVpciB2aWV3cG9ydCwKKyAgICAgICAgdW5saWtlIEhUTUwgd2hpY2ggaW50ZXJwcmV0cyBhbGwg
dHJhbnNmb3JtLW9yaWdpbiB2YWx1ZXMgcmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQncyBvcmlnaW4u
CisgICAgICAgIFRoZSBuZXcgRmxvYXRSZWN0IGFwcGx5VHJhbnNmb3JtKCkgZnVuY3Rpb24gaGFu
ZGxlcyBTVkcgc2VtYW50aWNzLiBTaW1pbGFybHksIFNWRyBlbGVtZW50cyBpbnRlcnByZXQKKyAg
ICAgICAgcGVyY2VudGFnZS9rZXl3b3JkIHRyYW5zZm9ybS1vcmlnaW4gdmFsdWVzIHJlbGF0aXZl
IHRvIHRoZSBvcmlnaW4gb2YgdGhlaXIgb2JqZWN0Qm91bmRpbmdCb3goKSwgSFRNTAorICAgICAg
ICB1c2VzIHRoZSBib3JkZXJCb3guICBBbGwgdGhpcyBwZXIgaHR0cDovL2Rldi53My5vcmcvY3Nz
d2cvY3NzMy10cmFuc2Zvcm1zLy4KKworICAgICAgICAqIHN2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSk6CisKIDIwMTItMDMtMTIgIEdlb3JnZSBT
dGFpa29zICA8c3RhaWtvc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgZ2xv
YmFsIHN0YXRpYyB2YXJpYWJsZSBmb3IgQmxhY2tCZXJyeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9zdmcuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKaW5kZXggYmMz
MTI2OWY4ODA2MDJlNTAwYTQyZjVlODViZTY1MjdlYWZmNTFlNi4uNmVjNGIyM2VhZWI2ZTljNDgz
ZTRiODk1ODg3MTJhN2RlZjU0MGRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3N2
Zy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKQEAgLTI2LDYgKzI2LDcgQEAK
ICAqLwogCiBAbmFtZXNwYWNlICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7CitAbmFtZXNw
YWNlIGh0bWwgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOwogCiAvKgogICAgIFdoZW4g
YW4gb3V0ZXJtb3N0IFNWRyAnc3ZnJyBlbGVtZW50IGlzIHN0YW5kLWFsb25lIG9yIGVtYmVkZGVk
IGlubGluZSB3aXRoaW4gYSBwYXJlbnQgWE1MIGdyYW1tYXIgCkBAIC02MywzICs2NCwxMyBAQCB0
ZXh0LCB0c3BhbiwgdHJlZiB7CiA6Zm9jdXMgewogICAgIG91dGxpbmU6IGF1dG8gNXB4IC13ZWJr
aXQtZm9jdXMtcmluZy1jb2xvcgogfQorCisvKiBDU1MgdHJhbnNmb3JtIHNwZWNpZmljYXRpb246
ICJ0cmFuc2Zvcm0tb3JpZ2luIDAgMCBmb3IgU1ZHIGVsZW1lbnRzIHdpdGhvdXQgYXNzb2NpYXRl
ZCBDU1MgbGF5b3V0IGJveCwgNTAlIDUwJSBmb3IgYWxsIG90aGVyIGVsZW1lbnRzIi4gKi8KKyAK
KyogeworICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOworfQorCitodG1sfCogPiBz
dmcgeworICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTGVuZ3RoLmgKaW5kZXggMmJjZjkzMjYyOGZjY2E5ZWEyZThiM2MxN2ZmYTFlMmZjNjBj
NDFkZi4uNmIxMWI1OTg5MDQ1MTIzYTE4YTUxYWU3MjI4NzFhY2Y4YmVmYjYyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTGVuZ3RoLmgKQEAgLTIwMyw2ICsyMDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiB3aGVuIHN1YnBpeGVsIGxheW91dCBpcyBz
dXBwb3J0ZWQgdGhpcyBjb3B5IG9mIGNhbGNGbG9hdFZhbHVlKCkgY2FuIGJlIHJlbW92ZWQuIFNl
ZSBidWcgNzExNDMuCiAgICAgZmxvYXQgY2FsY0Zsb2F0VmFsdWUoaW50IG1heFZhbHVlKSBjb25z
dAogICAgIHsKICAgICAgICAgc3dpdGNoICh0eXBlKCkpIHsKQEAgLTIyNSw2ICsyMjYsMjggQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKKyAgICBmbG9hdCBjYWxjRmxvYXRW
YWx1ZShmbG9hdCBtYXhWYWx1ZSkgY29uc3QKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSgp
KSB7CisgICAgICAgIGNhc2UgRml4ZWQ6CisgICAgICAgICAgICByZXR1cm4gZ2V0RmxvYXRWYWx1
ZSgpOworICAgICAgICBjYXNlIFBlcmNlbnQ6CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG1heFZhbHVlICogcGVyY2VudCgpIC8gMTAwLjBmKTsKKyAgICAgICAgY2FzZSBB
dXRvOgorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtYXhWYWx1ZSk7Cisg
ICAgICAgIGNhc2UgQ2FsY3VsYXRlZDoKKyAgICAgICAgICAgIHJldHVybiBub25OYW5DYWxjdWxh
dGVkVmFsdWUobWF4VmFsdWUpOworICAgICAgICBjYXNlIFJlbGF0aXZlOgorICAgICAgICBjYXNl
IEludHJpbnNpYzoKKyAgICAgICAgY2FzZSBNaW5JbnRyaW5zaWM6CisgICAgICAgIGNhc2UgVW5k
ZWZpbmVkOgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorCiAgICAgYm9vbCBpc1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0
dXJuIHR5cGUoKSA9PSBVbmRlZmluZWQ7IH0KIAogICAgIC8vIEZJWE1FIGNhbGM6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDM1Ny4gQSBjYWxjdWxhdGVkIExlbmd0
aCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmlu
ZGV4IDhmMzFlMGY3ZDVhYWI5MTA2ODBmOTIzYjMzYTA5ODJhOWU0YzE3NGUuLjE4OTM2NDVlOTVk
OTNiNzE2ZjdjNmY1MjA1NmJjZjVhMDhhNTU1YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEFkb2JlIFN5
c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC03NjksMzkgKzc3MCw3MCBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRDb250ZW50KFF1
b3RlVHlwZSBxdW90ZSwgYm9vbCBhZGQpCiAKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nl
c3MoKS0+bV9jb250ZW50ID0gQ29udGVudERhdGE6OmNyZWF0ZShxdW90ZSk7CiB9Ci0KLXZvaWQg
UmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zv
cm0sIGNvbnN0IExheW91dFNpemUmIGJvcmRlckJveFNpemUsIEFwcGx5VHJhbnNmb3JtT3JpZ2lu
IGFwcGx5T3JpZ2luKSBjb25zdAorICAgIAoraW5saW5lIGJvb2wgcmVxdWlyZVRyYW5zZm9ybU9y
aWdpbihjb25zdCBWZWN0b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gPiYgdHJhbnNmb3Jt
T3BlcmF0aW9ucywgUmVuZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2lu
KQogewogICAgIC8vIHRyYW5zZm9ybS1vcmlnaW4gYnJhY2tldHMgdGhlIHRyYW5zZm9ybSB3aXRo
IHRyYW5zbGF0ZSBvcGVyYXRpb25zLgogICAgIC8vIE9wdGltaXplIGZvciB0aGUgY2FzZSB3aGVy
ZSB0aGUgb25seSB0cmFuc2Zvcm0gaXMgYSB0cmFuc2xhdGlvbiwgc2luY2UgdGhlIHRyYW5zZm9y
bS1vcmlnaW4gaXMgaXJyZWxldmFudAogICAgIC8vIGluIHRoYXQgY2FzZS4KLSAgICBib29sIGFw
cGx5VHJhbnNmb3JtT3JpZ2luID0gZmFsc2U7Ci0gICAgdW5zaWduZWQgcyA9IHJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5zaXplKCk7
Ci0gICAgdW5zaWduZWQgaTsKLSAgICBpZiAoYXBwbHlPcmlnaW4gPT0gSW5jbHVkZVRyYW5zZm9y
bU9yaWdpbikgewotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgczsgaSsrKSB7Ci0gICAgICAgICAg
ICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKVtpXS0+Z2V0T3Bl
cmF0aW9uVHlwZSgpOwotICAgICAgICAgICAgaWYgKHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9u
OjpUUkFOU0xBVEVfWAotICAgICAgICAgICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9ybU9w
ZXJhdGlvbjo6VFJBTlNMQVRFX1kKLSAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFu
c2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURSAKLSAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAh
PSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9aCi0gICAgICAgICAgICAgICAgICAgICYm
IHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfM0QKLSAgICAgICAgICAgICAg
ICAgICAgKSB7Ci0gICAgICAgICAgICAgICAgYXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSB0cnVlOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgaWYg
KGFwcGx5T3JpZ2luICE9IFJlbmRlclN0eWxlOjpJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1bnNpZ25lZCBzaXplID0gdHJhbnNmb3JtT3BlcmF0
aW9ucy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewor
ICAgICAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IHRyYW5zZm9y
bU9wZXJhdGlvbnNbaV0tPmdldE9wZXJhdGlvblR5cGUoKTsKKyAgICAgICAgaWYgKHR5cGUgIT0g
VHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWAorICAgICAgICAgICAgJiYgdHlwZSAhPSBU
cmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9ZCisgICAgICAgICAgICAmJiB0eXBlICE9IFRy
YW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFIAorICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFu
c2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9aCisgICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5z
Zm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNEKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQorICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KIAotICAgIGlmIChhcHBseVRyYW5zZm9y
bU9yaWdpbikgewordm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94U2l6ZSwgQXBw
bHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IHdo
ZW4gc3VicGl4ZWwgbGF5b3V0IGlzIHN1cHBvcnRlZCAoYnVnIDcxMTQzKSB0aGUgYm9keSBvZiB0
aGlzIGZ1bmN0aW9uIGNvdWxkIGJlIHJlcGxhY2VkIGJ5CisgICAgLy8gYXBwbHlUcmFuc2Zvcm0o
dHJhbnNmb3JtLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBib3JkZXJCb3hTaXplKSwgYXBwbHlP
cmlnaW4pOworICAgIAorICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9u
PiA+JiB0cmFuc2Zvcm1PcGVyYXRpb25zID0gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNm
b3JtLT5tX29wZXJhdGlvbnMub3BlcmF0aW9ucygpOworICAgIGJvb2wgYXBwbHlUcmFuc2Zvcm1P
cmlnaW4gPSByZXF1aXJlVHJhbnNmb3JtT3JpZ2luKHRyYW5zZm9ybU9wZXJhdGlvbnMsIGFwcGx5
T3JpZ2luKTsKKworICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikKICAgICAgICAgdHJhbnNm
b3JtLnRyYW5zbGF0ZTNkKHRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3JkZXJC
b3hTaXplLndpZHRoKCkpLCB0cmFuc2Zvcm1PcmlnaW5ZKCkuY2FsY0Zsb2F0VmFsdWUoYm9yZGVy
Qm94U2l6ZS5oZWlnaHQoKSksIHRyYW5zZm9ybU9yaWdpblooKSk7Ci0gICAgfQogCi0gICAgZm9y
IChpID0gMDsgaSA8IHM7IGkrKykKLSAgICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJh
bnNmb3JtLT5tX29wZXJhdGlvbnMub3BlcmF0aW9ucygpW2ldLT5hcHBseSh0cmFuc2Zvcm0sIGJv
cmRlckJveFNpemUpOworICAgIHVuc2lnbmVkIHNpemUgPSB0cmFuc2Zvcm1PcGVyYXRpb25zLnNp
emUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICB0
cmFuc2Zvcm1PcGVyYXRpb25zW2ldLT5hcHBseSh0cmFuc2Zvcm0sIGJvcmRlckJveFNpemUpOwog
CisgICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2luKQorICAgICAgICB0cmFuc2Zvcm0udHJhbnNs
YXRlM2QoLXRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hTaXplLndp
ZHRoKCkpLCAtdHJhbnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvcmRlckJveFNpemUu
aGVpZ2h0KCkpLCAtdHJhbnNmb3JtT3JpZ2luWigpKTsgCit9CisKK3ZvaWQgUmVuZGVyU3R5bGU6
OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEZs
b2F0UmVjdCYgYm91bmRpbmdCb3gsIEFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2luKSBj
b25zdAoreworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiA+JiB0
cmFuc2Zvcm1PcGVyYXRpb25zID0gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtLT5t
X29wZXJhdGlvbnMub3BlcmF0aW9ucygpOworICAgIGJvb2wgYXBwbHlUcmFuc2Zvcm1PcmlnaW4g
PSByZXF1aXJlVHJhbnNmb3JtT3JpZ2luKHRyYW5zZm9ybU9wZXJhdGlvbnMsIGFwcGx5T3JpZ2lu
KTsKKyAgICAKKyAgICBmbG9hdCBvZmZzZXRYID0gdHJhbnNmb3JtT3JpZ2luWCgpLnR5cGUoKSA9
PSBQZXJjZW50ID8gYm91bmRpbmdCb3gueCgpIDogMDsKKyAgICBmbG9hdCBvZmZzZXRZID0gdHJh
bnNmb3JtT3JpZ2luWSgpLnR5cGUoKSA9PSBQZXJjZW50ID8gYm91bmRpbmdCb3gueSgpIDogMDsK
KyAgICAKKyAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pIHsKKyAgICAgICAgdHJhbnNmb3Jt
LnRyYW5zbGF0ZTNkKHRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3VuZGluZ0Jv
eC53aWR0aCgpKSArIG9mZnNldFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFu
c2Zvcm1PcmlnaW5ZKCkuY2FsY0Zsb2F0VmFsdWUoYm91bmRpbmdCb3guaGVpZ2h0KCkpICsgb2Zm
c2V0WSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpblooKSk7
CisgICAgfQorICAgIAorICAgIHVuc2lnbmVkIHNpemUgPSB0cmFuc2Zvcm1PcGVyYXRpb25zLnNp
emUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICB0
cmFuc2Zvcm1PcGVyYXRpb25zW2ldLT5hcHBseSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUo
KSk7CisgICAgCiAgICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2luKSB7Ci0gICAgICAgIHRyYW5z
Zm9ybS50cmFuc2xhdGUzZCgtdHJhbnNmb3JtT3JpZ2luWCgpLmNhbGNGbG9hdFZhbHVlKGJvcmRl
ckJveFNpemUud2lkdGgoKSksIC10cmFuc2Zvcm1PcmlnaW5ZKCkuY2FsY0Zsb2F0VmFsdWUoYm9y
ZGVyQm94U2l6ZS5oZWlnaHQoKSksIC10cmFuc2Zvcm1PcmlnaW5aKCkpOworICAgICAgICB0cmFu
c2Zvcm0udHJhbnNsYXRlM2QoLXRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3Vu
ZGluZ0JveC53aWR0aCgpKSAtIG9mZnNldFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtdHJhbnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvdW5kaW5nQm94LmhlaWdodCgp
KSAtIG9mZnNldFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtdHJhbnNmb3JtT3Jp
Z2luWigpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKaW5kZXggNTUxNTFkM2VjZTk3ZjdmOWRmMWQ0NGM3YzkwOTMxMzk2Yjg2NWZj
My4uMzRiNTdlZTMzMTkxYjYxYjJjYjA0NWI4MTg0MDk1Y2QwYzJiMWFjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTg5NCw2ICs4OTQsNyBA
QCBwdWJsaWM6CiAKICAgICBlbnVtIEFwcGx5VHJhbnNmb3JtT3JpZ2luIHsgSW5jbHVkZVRyYW5z
Zm9ybU9yaWdpbiwgRXhjbHVkZVRyYW5zZm9ybU9yaWdpbiB9OwogICAgIHZvaWQgYXBwbHlUcmFu
c2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBMYXlvdXRTaXplJiBib3JkZXJCb3hT
aXplLCBBcHBseVRyYW5zZm9ybU9yaWdpbiA9IEluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIGNvbnN0
OworICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBG
bG9hdFJlY3QmIGJvdW5kaW5nQm94LCBBcHBseVRyYW5zZm9ybU9yaWdpbiA9IEluY2x1ZGVUcmFu
c2Zvcm1PcmlnaW4pIGNvbnN0OwogICAgIHZvaWQgc2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZsb2F0
KTsKIAogICAgIGJvb2wgaGFzTWFzaygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX21hc2suaGFzSW1hZ2UoKSB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrQm94
SW1hZ2UuaGFzSW1hZ2UoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKaW5kZXggOTljMTc4MTc1OGQwNWMxODE1ZTIzNjc0
YWFiNjgxYmVlMjIzNzI1NC4uODQ2Yzg1MTVmNzRlYWJjNWZkNDAyNTAxZDI3MmJhZWU2YjY0ZGM3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQuY3BwCkBAIC02NiwxNCArNjYsMTQgQEAgQWZmaW5lVHJhbnNmb3JtIFNWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50OjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3QKICAg
ICBBZmZpbmVUcmFuc2Zvcm0gbWF0cml4OwogICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IHJlbmRl
cmVyKCkgPyByZW5kZXJlcigpLT5zdHlsZSgpIDogMDsKIAotICAgIC8vIGlmIENTUyBwcm9wZXJ0
eSB3YXMgc2V0LCB1c2UgdGhhdCwgb3RoZXJ3aXNlIGZhbGxiYWNrIHRvIGF0dHJpYnV0ZSAoaWYg
c2V0KQorICAgIC8vIElmIENTUyBwcm9wZXJ0eSB3YXMgc2V0LCB1c2UgdGhhdCwgb3RoZXJ3aXNl
IGZhbGxiYWNrIHRvIGF0dHJpYnV0ZSAoaWYgc2V0KS4KICAgICBpZiAoc3R5bGUgJiYgc3R5bGUt
Pmhhc1RyYW5zZm9ybSgpKSB7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7Ci0gICAg
ICAgIC8vIEZvciBub3csIHRoZSB0cmFuc2Zvcm0tb3JpZ2luIGlzIG5vdCB0YWtlbiBpbnRvIGFj
Y291bnQKLSAgICAgICAgLy8gQWxzbywgYW55IHBlcmNlbnRhZ2UgdmFsdWVzIHdpbGwgbm90IGJl
IHRha2VuIGludG8gYWNjb3VudAotICAgICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0odCwgSW50
U2l6ZSgwLCAwKSwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pOwotICAgICAg
ICAvLyBGbGF0dGVuIGFueSAzRCB0cmFuc2Zvcm0KLSAgICAgICAgbWF0cml4ID0gdC50b0FmZmlu
ZVRyYW5zZm9ybSgpOworICAgICAgICAvLyBOb3RlOiBvYmplY3RCb3VuZGluZ0JveCBpcyBhbiBl
bXB0eVJlY3QgZm9yIGVsZW1lbnRzIGxpa2UgcGF0dGVybiBvciBjbGlwUGF0aC4KKyAgICAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOworICAgICAgICBzdHlsZS0+YXBwbHlUcmFu
c2Zvcm0odHJhbnNmb3JtLCByZW5kZXJlcigpLT5vYmplY3RCb3VuZGluZ0JveCgpKTsKKworICAg
ICAgICAvLyBGbGF0dGVuIGFueSAzRCB0cmFuc2Zvcm0uCisgICAgICAgIG1hdHJpeCA9IHRyYW5z
Zm9ybS50b0FmZmluZVRyYW5zZm9ybSgpOwogICAgIH0gZWxzZQogICAgICAgICB0cmFuc2Zvcm0o
KS5jb25jYXRlbmF0ZShtYXRyaXgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmEzNTY3Y2U0ODJmYTFlMTU5OGE2NTc4
ZTQ0YmZlMDc5ZDk2ZDhhZS4uYmZiOTRjOTY1NDdkNjkzYzBhMjcwYjNkNzJlYTIwMTk3MTFjNjk1
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTA1ICBIYW5zIE11bGxlciAgPGhtdWxs
ZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQgc3VwcG9ydCB0cmFuc2Zvcm0tb3Jp
Z2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yIFNWRyBDU1MgdHJhbnNmb3JtLW9yaWdpbiBw
cm9wZXJ0eSBzdXBwb3J0IGFuZCBmb3IKKyAgICAgICAgQ1NTIHRyYW5zbGF0aW9ucyBzcGVjaWZp
ZWQgd2l0aCBwZXJjZW50YWdlcyBhbmQgYXBwbGllZCB0byBhbiBTVkcgZWxlbWVudC4KKworICAg
ICAgICAqIHN2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLWNzcy1leHBlY3Rl
ZC54aHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9y
bS1vcmlnaW4tY3NzLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9jaGFu
Z2UtdHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRlLWV4cGVjdGVkLnhodG1s
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdp
bi1wcmVzZW50YXRpb24tYXR0cmlidXRlLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJh
bnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3Bl
cnR5LWV4cGVjdGVkLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvdHJhbnNmb3Jtcy90cmFu
c2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS54aHRtbDogQWRkZWQuCisKIDIwMTItMDMtMTIgIENz
YWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFJFR1JF
U1NJT04ocjExMDQwMSk6IGZhc3QvdGFibGUvdGFibGUtcm93LWNvbXBvc2l0aW5nLXJlcGFpbnQt
Y3Jhc2guaHRtbCBhc3NlcnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggMTNhNThmOWExNWM4ZDM2ZGM1ZmYzMDFlMjkz
YTc3NzA1MWYxYzg4MS4uZjk1NTQxNjg5OGI5OTkzMDM5ZDBiNWUyMDczMjgzZGNiMWUyN2NlMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dApAQCAtOTMwLDYgKzkzMCw5IEBAIEJVR0NSNjI0MzMgV0lOIDogZmFzdC9pbWFnZXMv
Z2lmLWxvb3AtY291bnQuaHRtbCA9IElNQUdFCiAvLyBTVkcgVEVTVFMKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
Ky8vIENocm9taXVtIGZhaWx1cmUgbmVlZHMgaW52ZXN0aWdhdGlvbgorQlVHV0s3OTA2OCA6IHN2
Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sID0gRkFJTAor
CiAvLyBOZXcgdGVzdCByZXF1aXJlcyByZWJhc2VsaW5lCiBCVUdXSzc3NTM1IDogc3ZnL3JlcGFp
bnQvaW5uZXItc3ZnLWNoYW5nZS12aWV3UG9ydC1yZWxhdGl2ZS5zdmcgPSBJTUFHRSBJTUFHRStU
RVhUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFu
c2Zvcm0tb3JpZ2luLWNzcy1leHBlY3RlZC54aHRtbCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zv
cm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLWNzcy1leHBlY3RlZC54aHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMmZkZjM4MjQzYzVkZWNkOGViODFlNjEzYjJmNzUxZTM3MzE1YzA1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4t
Y3NzLWV4cGVjdGVkLnhodG1sCkBAIC0wLDAgKzEsNSBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyBsZWZ0OiAyNXB4OyB0b3A6IDI1cHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAx
MDBweDsgYmFja2dyb3VuZDogZ3JlZW47Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2lu
LWNzcy54aHRtbCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0t
b3JpZ2luLWNzcy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGY5NGNlZGM0ODU2ZGFjOGY4MDY0OTY0MzFm
OWFmNWJmNDdhYjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9y
bXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tY3NzLnhodG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKworPCEtLQorVmVyaWZ5
IHRoYXQgY2hhbmdpbmcgdGhlIFNWRyB0cmFuc2Zvcm0tb3JpZ2luIENTUyBwcm9wZXJ0eSBhdHRy
aWJ1dGUgd29ya3MgY29ycmVjdGx5LiAgTm90ZSB0aGF0Cit0aGUgZGVmYXVsdCB0cmFuc2Zvcm0t
b3JpZ2luIGZvciBhbiBTVkcgZWxlbWVudCBpcyAwIDAuCisKK1RoZSBncmVlbiAxMDB4MTAwIHJl
Y3RhbmdsZSBzaG91bGQgYXBwZWFyIGF0IDI1LDI1LgorLS0+CisKKzxib2R5PgorICA8c3ZnIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0
ZTsgdG9wOiAwcHg7IGxlZnQ6IDBweDsiPgorICAgICAgPHJlY3QgaWQ9InJlY3QiIHdpZHRoPSI1
MHB4IiBoZWlnaHQ9IjUwcHgiIHg9IjUwIiB5PSI1MCIgZmlsbD0iZ3JlZW4iIHN0eWxlPSItd2Vi
a2l0LXRyYW5zZm9ybTogc2NhbGUoMiwgMik7Ii8+CisgIDwvc3ZnPgorCisgIDxzY3JpcHQ+PCFb
Q0RBVEFbCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjdCcpLnN0eWxlLndlYmtp
dFRyYW5zZm9ybU9yaWdpbiA9ICI1MCUgNTAlIjsKKyAgXV0+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJh
bnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRlLWV4cGVjdGVkLnhodG1sIGIvTGF5
b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tcHJlc2VudGF0
aW9uLWF0dHJpYnV0ZS1leHBlY3RlZC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMmZkZjM4MjQzYzVkZWNk
OGViODFlNjEzYjJmNzUxZTM3MzE1YzA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tcHJlc2VudGF0aW9uLWF0dHJp
YnV0ZS1leHBlY3RlZC54aHRtbApAQCAtMCwwICsxLDUgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZTsgbGVmdDogMjVweDsgdG9wOiAyNXB4OyB3aWR0aDogMTAwcHg7IGhlaWdodDog
MTAwcHg7IGJhY2tncm91bmQ6IGdyZWVuOyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdp
bi1wcmVzZW50YXRpb24tYXR0cmlidXRlLnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9y
bXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tcHJlc2VudGF0aW9uLWF0dHJpYnV0ZS54aHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMDNlZTJiNWJiMWY2YTcwNTRlYmU2YWM4MmM0MzdlNjgzYWE5NWUxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9y
bS1vcmlnaW4tcHJlc2VudGF0aW9uLWF0dHJpYnV0ZS54aHRtbApAQCAtMCwwICsxLDIwIEBACis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisKKzwhLS0KK1Zlcmlm
eSB0aGF0IGNoYW5naW5nIHRoZSBTVkcgdHJhbnNmb3JtLW9yaWdpbiBwcmVzZW50YXRpb24gYXR0
cmlidXRlIHdvcmtzIGNvcnJlY3RseS4KKworVGhlIGdyZWVuIDEwMHgxMDAgcmVjdGFuZ2xlIHNo
b3VsZCBhcHBlYXIgYXQgMjUsMjUuCistLT4KKworPGJvZHk+CisgIDxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBw
eDsgbGVmdDogMHB4OyI+CisgICAgICA8cmVjdCBpZD0icmVjdCIgd2lkdGg9IjUwcHgiIGhlaWdo
dD0iNTBweCIgeD0iNTAiIHk9IjUwIiBmaWxsPSJncmVlbiIgdHJhbnNmb3JtLW9yaWdpbj0iMCAw
IiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDIsIDIpOyIvPgorICA8L3N2Zz4KKwor
ICA8c2NyaXB0PjwhW0NEQVRBWworCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVj
dCcpLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtLW9yaWdpbiIsICI1MCUgNTAlIikKKworICBdXT48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90
cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJmMzI3MzRhZTRjMmIzZTY3YTZiMDA5OTg5YTc5ZjZlZjY5NWRkMGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5z
Zm9ybS12YWx1ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorVGVzdCBmb3IgYnVnIDc5
MDY4IC0gU1ZHIHNob3VsZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmlnaW4gYW5kIHJlbGF0aXZlIHZh
bHVlcyBWZXJpZnkgdGhhdCBDU1MgdHJhbnNmb3JtIHRyYW5zbGF0ZSB2YWx1ZXMgY2FuIGJlIHNw
ZWNpZmllZCB3aXRoIHBlcmNlbnRhZ2VzLgorCitZb3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMgYW5kIG9uZSA4MHg2MCBncmVlbiByZWN0YW5nbGUuIFRoZSBncmVlbiBy
ZWN0YW5nbGUgb2JzY3VyZXMgdHdvIHJlZCByZWN0YW5nbGVzIG9mIHRoZSBzYW1lIHNpemUgd2hp
Y2ggaGF2ZSBiZWVuIHRyYW5zbGF0ZWQgdG8gdGhlIHNhbWUgbG9jYXRpb24uCitQQVNTICByZWN0
ICJyMSIgWzUwLDIwMCA4MHg2MF0gZXhwZWN0ZWQgWzUwLDIwMCA4MHg2MF0KK1BBU1MgIHJlY3Qg
InIyIiBbNTAsMjAwIDgweDYwXSBleHBlY3RlZCBbNTAsMjAwIDgweDYwXQorUEFTUyAgcmVjdCAi
cjMiIFs1MCwyMDAgODB4NjBdIGV4cGVjdGVkIFs1MCwyMDAgODB4NjBdCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54aHRt
bCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYTJjZjUxY2JjOWZiMzc3ZjE4Y2FjOGFhNDFjOGM1ZmJiZmVkOGFi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10
cmFuc2Zvcm0tdmFsdWVzLnhodG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxib2R5PgorICA8cD5UZXN0IGZvciBidWcgPGEg
aHJlZj0iIj43OTA2ODwvYT4gLSBTVkcgc2hvdWxkIHN1cHBvcnQgdHJhbnNmb3JtLW9yaWdpbiBh
bmQgcmVsYXRpdmUgdmFsdWVzCisgIFZlcmlmeSB0aGF0IENTUyB0cmFuc2Zvcm0gdHJhbnNsYXRl
IHZhbHVlcyBjYW4gYmUgc3BlY2lmaWVkIHdpdGggcGVyY2VudGFnZXMuCisgIDwvcD4KKyAgWW91
IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzIGFuZCBvbmUgODB4NjAgZ3Jl
ZW4gcmVjdGFuZ2xlLiAgIFRoZSBncmVlbiByZWN0YW5nbGUgb2JzY3VyZXMgdHdvCisgIHJlZCBy
ZWN0YW5nbGVzIG9mIHRoZSBzYW1lIHNpemUgd2hpY2ggaGF2ZSBiZWVuIHRyYW5zbGF0ZWQgdG8g
dGhlIHNhbWUgbG9jYXRpb24uCisgIDxwPgorICA8L3A+CisgIDxzdmcgc3R5bGU9InBvc2l0aW9u
OmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjBweDsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAwL3N2ZyI+CisgICAgPHJlY3QgaWQ9InIxIiB4PSIxMCIgeT0iMjAwIiB3aWR0aD0iODAiIGhl
aWdodD0iNjAiIGZpbGw9InJlZCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUo
NTAlKSIvPgorICAgIDxyZWN0IGlkPSJyMiIgeD0iOTAiIHk9IjI2MCIgd2lkdGg9IjgwIiBoZWln
aHQ9IjYwIiBmaWxsPSJyZWQiIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01
MCUsIC0xMDAlKSIvPgorICAgIDxyZWN0IGlkPSJyMyIgeD0iMTAiIHk9IjIwMCIgd2lkdGg9Ijgw
IiBoZWlnaHQ9IjYwIiBmaWxsPSJncmVlbiIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFu
c2xhdGUoNTAlLCAwJSkiLz4KKyAgPC9zdmc+CisgIDxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8L2Jv
ZHk+Cis8c2NyaXB0PjwhW0NEQVRBWworCisgICAgdmFyIHJlc3VsdFN0cmluZyA9ICIiOworCisg
ICAgZnVuY3Rpb24gY2hlY2tDbGllbnRSZWN0KHJlY3RJRCkgeworICAgICAgICB2YXIgY3IgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChyZWN0SUQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
ICAgICAgICB2YXIgY3JTdHJpbmcgPSAiWyIgKyBjci5sZWZ0ICsgIiwiICsgY3IudG9wICsgIiAi
ICsgY3Iud2lkdGggKyAieCIgKyBjci5oZWlnaHQgKyAiXSI7CisgICAgICAgIHZhciBleHBlY3Rl
ZCA9ICJbNTAsMjAwIDgweDYwXSI7CisgICAgICAgIHJlc3VsdFN0cmluZyArPSAoKGNyU3RyaW5n
ID09IGV4cGVjdGVkKSA/ICJQQVNTICIgOiAiRkFJTCAiKSArICIgcmVjdCBcIiIgKyByZWN0SUQg
KyAiXCIgIiArIGNyU3RyaW5nICsgIiBleHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiXG4iOworICAg
IH0KKworICAgIFsicjEiLCAicjIiLCAicjMiXS5tYXAoY2hlY2tDbGllbnRSZWN0KTsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuaW5uZXJIVE1MID0gcmVzdWx0U3RyaW5nOwor
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgXV0+PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1w
cm9wZXJ0eS1leHBlY3RlZC54aHRtbCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3RyYW5z
Zm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LWV4cGVjdGVkLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZjQw
NjhkMzFmMmFiNjMzNDgwYmExNDQ4MDFlNWYyNjk2OTM3ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1wcm9wZXJ0eS1l
eHBlY3RlZC54aHRtbApAQCAtMCwwICsxLDQ1IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+Cis8c3R5bGU+CisjdHJhbnNmb3JtT3JpZ2luRGl2IHsKKyAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgIHdpZHRoOiAzMHB4OworICAgaGVpZ2h0OiAzMHB4OworICAg
YmFja2dyb3VuZDogZ3JlZW47CisgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsK
K30KKzwvc3R5bGU+CisKKzxib2R5PgorICA8ZGl2IGlkPSJkaXZSb290Ij48L2Rpdj4KKworICA8
c2NyaXB0PjwhW0NEQVRBWworCisgICAgZnVuY3Rpb24gYWRkVHJhbnNmb3JtT3JpZ2luRGl2KHgs
IHksIHRyYW5zZm9ybU9yaWdpbikKKyAgICB7CisgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInRyYW5z
Zm9ybU9yaWdpbkRpdiIpOworICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgInRvcDog
IiArIHkgKyAicHg7IGxlZnQ6ICIrIHggKyAicHg7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjog
IiArIHRyYW5zZm9ybU9yaWdpbiArICI7Iik7CisgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRpdlJvb3QiKS5hcHBlbmRDaGlsZChkaXYpOworICAgIH0KKworICAgIHZhciB0cmFuc2Zv
cm1PcmlnaW5zID0gWworICAgICAgICAgIjUwJSA1MCUiLAorICAgICAgICAgIjAlIDAlIiwKKyAg
ICAgICAgICIwJSA1MCUiLAorICAgICAgICAgIjEwMCUgMCUiLAorICAgICAgICAgIjAlIDUwJSIs
CisgICAgICAgICAiMTAwJSA1MCUiLAorICAgICAgICAgIjAlIDEwMCUiLAorICAgICAgICAgIjUw
JSAxMDAlIiwKKyAgICAgICAgICIxMDAlIDEwMCUiLAorICAgICBdOworCisgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdHJhbnNmb3JtT3JpZ2lucy5sZW5ndGg7IGkrKykgIHsKKyAgICAgICAgIHZh
ciB4ID0gNjAgKyAoaSAlICA0KSAqIDYwOworICAgICAgICAgdmFyIHkgPSA2MCArIE1hdGguZmxv
b3IoaSAvIDQpICogNjA7CisgICAgICAgICBhZGRUcmFuc2Zvcm1PcmlnaW5EaXYoeCwgeSwgdHJh
bnNmb3JtT3JpZ2luc1tpXSk7CisgICAgIH0KKworICBdXT48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1v
cmlnaW4tY3NzLXByb3BlcnR5LnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJh
bnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHkueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTk2MzBiY2EzZGQ0
YjFmYjAxMzE4YmZiNWMyNWFjODcxNGUxMjExYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LnhodG1sCkBA
IC0wLDAgKzEsNjEgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Ij4KKzxzdHlsZT4KKyNzdmdSb290IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9w
OiAwOworICAgIGxlZnQ6IDA7Cit9CisKKyN0cmFuc2Zvcm1PcmlnaW5SZWN0IHsKKyAgICBmaWxs
OiBncmVlbjsKKyAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsKK30KKzwvc3R5
bGU+CisKKzwhLS0KKyAgVGVzdCBmb3IgYnVnIDc5MDY4IC0gU1ZHIHNob3VsZCBzdXBwb3J0IHRy
YW5zZm9ybS1vcmlnaW4gYW5kIHJlbGF0aXZlIHZhbHVlcy4KKworICBZb3Ugc2hvdWxkIHNlZSA5
IGdyZWVuIDIweDIwIHJlY3RhbmdsZXMuICBFYWNoIGdyZWVuIHJlY3RhbmdsZSBpcyBhY3R1YWxs
eSBvbmUgb2YgYSBzZXQgb2YgYWJvdXQgNiwgZWFjaCBvbmUKKyAgd2l0aCBhIGRpZmZlcmVudCBi
dXQgZXF1aXZhbGVudCB2YWx1ZSBmb3IgdGhlIENTUyB0cmFuc2Zvcm0tb3JpZ2luIHByb3BlcnR5
LgorLS0+CisKKzxib2R5PgorICA8c3ZnIGlkPSJzdmdSb290IiB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciPjwvc3ZnPgorCisgIDxzY3JpcHQ+PCFbQ0RBVEFbCisgICAgdmFyIHN2
Z05TID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsKKworICAgIGZ1bmN0aW9uIGFkZFRy
YW5zZm9ybU9yaWdpblJlY3QoeCwgeSwgcykKKyAgICB7CisgICAgICAgdmFyIHJlY3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsICJyZWN0Iik7CisgICAgICAgdmFyIHRyYW5zZm9y
bU9yaWdpbiA9ICh0eXBlb2YocykgPT0gInN0cmluZyIpID8gcyA6ICAoeCArIHNbMF0pICsgIiAi
ICsgKHkgKyBzWzFdKTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHJhbnNmb3Jt
T3JpZ2luUmVjdCIpOworICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ4IiwgeCk7CisgICAgICAg
cmVjdC5zZXRBdHRyaWJ1dGUoInkiLCB5KTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgid2lk
dGgiLCAzMCk7CisgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIDMwKTsKKyAgICAg
ICByZWN0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAi
ICsgdHJhbnNmb3JtT3JpZ2luICsgIjsiKTsKKyAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic3ZnUm9vdCIpLmFwcGVuZENoaWxkKHJlY3QpOworICAgIH0KKworICAgIHZhciBlcXVpdmFs
ZW50VHJhbnNmb3JtT3JpZ2lucyA9IFsKKyAgICAgICAgIFsiNTAlIDUwJSIsICJjZW50ZXIgNTAl
IiwgIjUwJSBjZW50ZXIiLCAiY2VudGVyIiwgImNlbnRlciBjZW50ZXIiLCBbMTUsIDE1XV0sCisg
ICAgICAgICBbIjAlIDAlIiwgImxlZnQgMCUiLCAiMCUgdG9wIiwgImxlZnQgdG9wIiwgInRvcCBs
ZWZ0IiwgWzAsIDBdXSwKKyAgICAgICAgIFsiMCUgNTAlIiwgImxlZnQgNTAlIiwgIjAlIGNlbnRl
ciIsICJsZWZ0IiwgImxlZnQgY2VudGVyIiwgImNlbnRlciBsZWZ0IiwgWzAsIDE1XV0sCisgICAg
ICAgICBbIjEwMCUgMCUiLCAicmlnaHQgMCUiLCAiMTAwJSB0b3AiLCAicmlnaHQgdG9wIiwgInRv
cCByaWdodCIsIFszMCwgMF1dLAorICAgICAgICAgWyIwJSA1MCUiLCAibGVmdCA1MCUiLCAiMCUg
Y2VudGVyIiwgImxlZnQgY2VudGVyIiwgImNlbnRlciBsZWZ0IiwgWzAsIDE1XV0sCisgICAgICAg
ICBbIjEwMCUgNTAlIiwgInJpZ2h0IDUwJSIsICIxMDAlIGNlbnRlciIsICJyaWdodCBjZW50ZXIi
LCAiY2VudGVyIHJpZ2h0IiwgWzMwLCAxNV1dLAorICAgICAgICAgWyIwJSAxMDAlIiwgImxlZnQg
MTAwJSIsICIwJSBib3R0b20iLCAibGVmdCBib3R0b20iLCAibGVmdCBib3R0b20iLCBbMCwgMzBd
XSwKKyAgICAgICAgIFsiNTAlIDEwMCUiLCAiY2VudGVyIDEwMCUiLCAiNTAlIGJvdHRvbSIsICJi
b3R0b20iLCAiY2VudGVyIGJvdHRvbSIsICJib3R0b20gY2VudGVyIiwgWzE1LCAzMF1dLAorICAg
ICAgICAgWyIxMDAlIDEwMCUiLCAicmlnaHQgMTAwJSIsICIxMDAlIGJvdHRvbSIsICJyaWdodCBi
b3R0b20iLCAiYm90dG9tIHJpZ2h0IiwgWzMwLCAzMF1dCisgICAgIF07CisKKyAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBlcXVpdmFsZW50VHJhbnNmb3JtT3JpZ2lucy5sZW5ndGg7IGkrKykgIHsK
KyAgICAgICAgIHZhciB4ID0gNjAgKyAoaSAlICA0KSAqIDYwOworICAgICAgICAgdmFyIHkgPSA2
MCArIE1hdGguZmxvb3IoaSAvIDQpICogNjA7CisgICAgICAgICBlcXVpdmFsZW50VHJhbnNmb3Jt
T3JpZ2luc1tpXS5tYXAoIGZ1bmN0aW9uKHMpIHsgYWRkVHJhbnNmb3JtT3JpZ2luUmVjdCh4LCB5
LCBzKTsgfSApOworICAgICB9CisKKyAgXV0+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131451</attachid>
            <date>2012-03-12 16:44:35 -0700</date>
            <delta_ts>2012-03-12 19:45:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79068-20120312164434.patch</filename>
            <type>text/plain</type>
            <size>25002</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMxYWM5ZDY1NTcwYmE4
YTc4YWM2N2I3ZTExZTA3MWJjMmY1Zjc0Zi4uZDQ1Yzk2OWI1ZDI0ZWUyNGNmNzkyYzg5NTcxZmQx
YTNjOTQ4NmZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAzLTA1ICBIYW5z
IE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFNWRyBzaG91bGQgc3VwcG9y
dCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MDY4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgU1ZHIHN1cHBvcnQgZm9yIHRoZSBD
U1MgJ3RyYW5zZm9ybS1vcmlnaW4nIHByb3BlcnR5IGFuZCBmb3IgcGVyY2VudGFnZQorICAgICAg
ICB2YWx1ZXMgaW4gdGhlIHRyYW5zZm9ybSB0cmFuc2xhdGUgZnVuY3Rpb24uICBUaGUgY2hhbmdl
cyBjb25mb3JtIHRvCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdHJhbnNm
b3Jtcy8uCisKKyAgICAgICAgVGVzdHM6IHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3Jt
LXZhbHVlcy54aHRtbAorICAgICAgICAgICAgICAgc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9y
aWdpbi1jc3MtcHJvcGVydHkueGh0bWwKKworICAgICAgICAqIGNzcy9zdmcuY3NzOgorICAgICAg
ICAoKik6CisgICAgICAgIChodG1sfCogPiBzdmcpOgorICAgICAgICBEZWZhdWx0IHRyYW5zZm9y
bS1vcmlnaW4gZm9yIFNWRyBlbGVtZW50cyBpcyAwIDAuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9M
ZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6Y2FsY0Zsb2F0VmFsdWUpOgorICAg
ICAgICBBZGRlZCBhIGNhbGNGbG9hdFZhbHVlIG92ZXJsb2FkIHdob3NlIG1heCBwYXJhbWV0ZXIg
KGZvciBwZXJjZW50IGxlbmd0aHMpIGlzIGEgZmxvYXQuCisgICAgICAgIFRoZSBvcmlnaW5hbCB2
ZXJzaW9uIHdpbGwgYmUgb2Jzb2xldGUgd2hlbiB0aGUgc3ViLXBpeGVsIGxheW91dCBzdXBwb3J0
IGlzIGNvbXBsZXRlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4pOgorICAg
ICAgICBUcmFuc2Zvcm1zIHRoYXQgb25seSBpbmNsdWRlIHRyYW5zbGF0aW9ucyBkb24ndCBkZXBl
bmQgb24gdGhlIHRyYW5zZm9ybS1vcmlnaW4uCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjphcHBseVRyYW5zZm9ybSk6CisgICAgICAgIFNWRyBlbGVtZW50cyBpbnRlcnByZXQgbm9u
LXBlcmNlbnRhZ2Uva2V5d29yZCB0cmFuc2Zvcm0tb3JpZ2luIHZhbHVlcyByZWxhdGl2ZSB0byB0
aGVpciB2aWV3cG9ydCwKKyAgICAgICAgdW5saWtlIEhUTUwgd2hpY2ggaW50ZXJwcmV0cyBhbGwg
dHJhbnNmb3JtLW9yaWdpbiB2YWx1ZXMgcmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQncyBvcmlnaW4u
CisgICAgICAgIFRoZSBuZXcgRmxvYXRSZWN0IGFwcGx5VHJhbnNmb3JtKCkgZnVuY3Rpb24gaGFu
ZGxlcyBTVkcgc2VtYW50aWNzLiBTaW1pbGFybHksIFNWRyBlbGVtZW50cyBpbnRlcnByZXQKKyAg
ICAgICAgcGVyY2VudGFnZS9rZXl3b3JkIHRyYW5zZm9ybS1vcmlnaW4gdmFsdWVzIHJlbGF0aXZl
IHRvIHRoZSBvcmlnaW4gb2YgdGhlaXIgb2JqZWN0Qm91bmRpbmdCb3goKSwgSFRNTAorICAgICAg
ICB1c2VzIHRoZSBib3JkZXJCb3guICBBbGwgdGhpcyBwZXIgaHR0cDovL2Rldi53My5vcmcvY3Nz
d2cvY3NzMy10cmFuc2Zvcm1zLy4KKworICAgICAgICAqIHN2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSk6CisKIDIwMTItMDMtMTIgIEdlb3JnZSBT
dGFpa29zICA8c3RhaWtvc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgZ2xv
YmFsIHN0YXRpYyB2YXJpYWJsZSBmb3IgQmxhY2tCZXJyeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9zdmcuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKaW5kZXggYmMz
MTI2OWY4ODA2MDJlNTAwYTQyZjVlODViZTY1MjdlYWZmNTFlNi4uNmVjNGIyM2VhZWI2ZTljNDgz
ZTRiODk1ODg3MTJhN2RlZjU0MGRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3N2
Zy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3N2Zy5jc3MKQEAgLTI2LDYgKzI2LDcgQEAK
ICAqLwogCiBAbmFtZXNwYWNlICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7CitAbmFtZXNw
YWNlIGh0bWwgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOwogCiAvKgogICAgIFdoZW4g
YW4gb3V0ZXJtb3N0IFNWRyAnc3ZnJyBlbGVtZW50IGlzIHN0YW5kLWFsb25lIG9yIGVtYmVkZGVk
IGlubGluZSB3aXRoaW4gYSBwYXJlbnQgWE1MIGdyYW1tYXIgCkBAIC02MywzICs2NCwxMyBAQCB0
ZXh0LCB0c3BhbiwgdHJlZiB7CiA6Zm9jdXMgewogICAgIG91dGxpbmU6IGF1dG8gNXB4IC13ZWJr
aXQtZm9jdXMtcmluZy1jb2xvcgogfQorCisvKiBDU1MgdHJhbnNmb3JtIHNwZWNpZmljYXRpb246
ICJ0cmFuc2Zvcm0tb3JpZ2luIDAgMCBmb3IgU1ZHIGVsZW1lbnRzIHdpdGhvdXQgYXNzb2NpYXRl
ZCBDU1MgbGF5b3V0IGJveCwgNTAlIDUwJSBmb3IgYWxsIG90aGVyIGVsZW1lbnRzIi4gKi8KKyAK
KyogeworICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOworfQorCitodG1sfCogPiBz
dmcgeworICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTGVuZ3RoLmgKaW5kZXggMmJjZjkzMjYyOGZjY2E5ZWEyZThiM2MxN2ZmYTFlMmZjNjBj
NDFkZi4uNWU3NDc0MmYyNTlkMzQ1ZWJiOWYzNTE0ZmFmZDJjNTRhZDkxNzFiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTGVuZ3RoLmgKQEAgLTIsNiArMiw3IEBACiAgICAgQ29weXJpZ2h0IChDKSAxOTk5
IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICBDb3B5cmlnaHQgKEMpIDIwMTEg
UmlrIENhYmFuaWVyIChjYWJhbmllckBhZG9iZS5jb20pCisgICAgQ29weXJpZ2h0IChDKSAyMDEx
IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAgICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0yMDMsNiArMjA0LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAKKyAgICAvLyBGSVhNRTogd2hlbiBzdWJwaXhlbCBsYXlvdXQgaXMgc3VwcG9y
dGVkIHRoaXMgY29weSBvZiBjYWxjRmxvYXRWYWx1ZSgpIGNhbiBiZSByZW1vdmVkLiBTZWUgYnVn
IDcxMTQzLgogICAgIGZsb2F0IGNhbGNGbG9hdFZhbHVlKGludCBtYXhWYWx1ZSkgY29uc3QKICAg
ICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSgpKSB7CkBAIC0yMjUsNiArMjI3LDI4IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisgICAgZmxvYXQgY2FsY0Zsb2F0VmFsdWUo
ZmxvYXQgbWF4VmFsdWUpIGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUoKSkgewor
ICAgICAgICBjYXNlIEZpeGVkOgorICAgICAgICAgICAgcmV0dXJuIGdldEZsb2F0VmFsdWUoKTsK
KyAgICAgICAgY2FzZSBQZXJjZW50OgorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZs
b2F0PihtYXhWYWx1ZSAqIHBlcmNlbnQoKSAvIDEwMC4wZik7CisgICAgICAgIGNhc2UgQXV0bzoK
KyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4obWF4VmFsdWUpOworICAgICAg
ICBjYXNlIENhbGN1bGF0ZWQ6CisgICAgICAgICAgICByZXR1cm4gbm9uTmFuQ2FsY3VsYXRlZFZh
bHVlKG1heFZhbHVlKTsKKyAgICAgICAgY2FzZSBSZWxhdGl2ZToKKyAgICAgICAgY2FzZSBJbnRy
aW5zaWM6CisgICAgICAgIGNhc2UgTWluSW50cmluc2ljOgorICAgICAgICBjYXNlIFVuZGVmaW5l
ZDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiAwOworICAgIH0KKwogICAgIGJvb2wgaXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiB0
eXBlKCkgPT0gVW5kZWZpbmVkOyB9CiAKICAgICAvLyBGSVhNRSBjYWxjOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzNTcuIEEgY2FsY3VsYXRlZCBMZW5ndGggCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA4
ZjMxZTBmN2Q1YWFiOTEwNjgwZjkyM2IzM2EwOTgyYTllNGMxNzRlLi44YzFhM2FkMTRiYWQwZjBk
ZGUyNTdlNTY4NmQ1YzU0MWZiOTM5MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBBZG9iZSBTeXN0ZW1z
IEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtNzY5LDM5ICs3NzAsNzAgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29udGVudChRdW90ZVR5
cGUgcXVvdGUsIGJvb2wgYWRkKQogCiAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fY29udGVudCA9IENvbnRlbnREYXRhOjpjcmVhdGUocXVvdGUpOwogfQotCi12b2lkIFJlbmRl
clN0eWxlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBj
b25zdCBMYXlvdXRTaXplJiBib3JkZXJCb3hTaXplLCBBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBs
eU9yaWdpbikgY29uc3QKKyAgICAKK2lubGluZSBib29sIHJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4o
Y29uc3QgVmVjdG9yPFJlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+ID4mIHRyYW5zZm9ybU9wZXJh
dGlvbnMsIFJlbmRlclN0eWxlOjpBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBseU9yaWdpbikKIHsK
ICAgICAvLyB0cmFuc2Zvcm0tb3JpZ2luIGJyYWNrZXRzIHRoZSB0cmFuc2Zvcm0gd2l0aCB0cmFu
c2xhdGUgb3BlcmF0aW9ucy4KICAgICAvLyBPcHRpbWl6ZSBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhl
IG9ubHkgdHJhbnNmb3JtIGlzIGEgdHJhbnNsYXRpb24sIHNpbmNlIHRoZSB0cmFuc2Zvcm0tb3Jp
Z2luIGlzIGlycmVsZXZhbnQKICAgICAvLyBpbiB0aGF0IGNhc2UuCi0gICAgYm9vbCBhcHBseVRy
YW5zZm9ybU9yaWdpbiA9IGZhbHNlOwotICAgIHVuc2lnbmVkIHMgPSByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuc2l6ZSgpOwotICAg
IHVuc2lnbmVkIGk7Ci0gICAgaWYgKGFwcGx5T3JpZ2luID09IEluY2x1ZGVUcmFuc2Zvcm1Pcmln
aW4pIHsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IHM7IGkrKykgewotICAgICAgICAgICAgVHJh
bnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSByYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV90cmFuc2Zvcm0tPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKClbaV0tPmdldE9wZXJhdGlv
blR5cGUoKTsKLSAgICAgICAgICAgIGlmICh0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJB
TlNMQVRFX1gKLSAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRp
b246OlRSQU5TTEFURV9ZCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3Jt
T3BlcmF0aW9uOjpUUkFOU0xBVEUgCi0gICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT0gVHJh
bnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWgotICAgICAgICAgICAgICAgICAgICAmJiB0eXBl
ICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNECi0gICAgICAgICAgICAgICAgICAg
ICkgewotICAgICAgICAgICAgICAgIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIGlmIChhcHBs
eU9yaWdpbiAhPSBSZW5kZXJTdHlsZTo6SW5jbHVkZVRyYW5zZm9ybU9yaWdpbikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgdW5zaWduZWQgc2l6ZSA9IHRyYW5zZm9ybU9wZXJhdGlvbnMu
c2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAg
ICAgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSB0cmFuc2Zvcm1PcGVy
YXRpb25zW2ldLT5nZXRPcGVyYXRpb25UeXBlKCk7CisgICAgICAgIGlmICh0eXBlICE9IFRyYW5z
Zm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1gKKyAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNm
b3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWQorICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zv
cm1PcGVyYXRpb246OlRSQU5TTEFURSAKKyAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3Jt
T3BlcmF0aW9uOjpUUkFOU0xBVEVfWgorICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1P
cGVyYXRpb246OlRSQU5TTEFURV8zRCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
KyAgICAKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKLSAgICBpZiAoYXBwbHlUcmFuc2Zvcm1Pcmln
aW4pIHsKK3ZvaWQgUmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB0cmFuc2Zvcm0sIGNvbnN0IExheW91dFNpemUmIGJvcmRlckJveFNpemUsIEFwcGx5VHJh
bnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2luKSBjb25zdAoreworICAgIC8vIEZJWE1FOiB3aGVuIHN1
YnBpeGVsIGxheW91dCBpcyBzdXBwb3J0ZWQgKGJ1ZyA3MTE0MykgdGhlIGJvZHkgb2YgdGhpcyBm
dW5jdGlvbiBjb3VsZCBiZSByZXBsYWNlZCBieQorICAgIC8vIGFwcGx5VHJhbnNmb3JtKHRyYW5z
Zm9ybSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgYm9yZGVyQm94U2l6ZSksIGFwcGx5T3JpZ2lu
KTsKKyAgICAKKyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gPiYg
dHJhbnNmb3JtT3BlcmF0aW9ucyA9IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+
bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKTsKKyAgICBib29sIGFwcGx5VHJhbnNmb3JtT3JpZ2lu
ID0gcmVxdWlyZVRyYW5zZm9ybU9yaWdpbih0cmFuc2Zvcm1PcGVyYXRpb25zLCBhcHBseU9yaWdp
bik7CisKKyAgICBpZiAoYXBwbHlUcmFuc2Zvcm1PcmlnaW4pCiAgICAgICAgIHRyYW5zZm9ybS50
cmFuc2xhdGUzZCh0cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94U2l6
ZS53aWR0aCgpKSwgdHJhbnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvcmRlckJveFNp
emUuaGVpZ2h0KCkpLCB0cmFuc2Zvcm1PcmlnaW5aKCkpOwotICAgIH0KIAotICAgIGZvciAoaSA9
IDA7IGkgPCBzOyBpKyspCi0gICAgICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9y
bS0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKVtpXS0+YXBwbHkodHJhbnNmb3JtLCBib3JkZXJC
b3hTaXplKTsKKyAgICB1bnNpZ25lZCBzaXplID0gdHJhbnNmb3JtT3BlcmF0aW9ucy5zaXplKCk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgdHJhbnNm
b3JtT3BlcmF0aW9uc1tpXS0+YXBwbHkodHJhbnNmb3JtLCBib3JkZXJCb3hTaXplKTsKIAorICAg
IGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikKKyAgICAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZTNk
KC10cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zsb2F0VmFsdWUoYm9yZGVyQm94U2l6ZS53aWR0aCgp
KSwgLXRyYW5zZm9ybU9yaWdpblkoKS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hTaXplLmhlaWdo
dCgpKSwgLXRyYW5zZm9ybU9yaWdpblooKSk7IAorfQorCit2b2lkIFJlbmRlclN0eWxlOjphcHBs
eVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94LCBBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBseU9yaWdpbikgY29uc3QK
K3sKKyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gPiYgdHJhbnNm
b3JtT3BlcmF0aW9ucyA9IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS0+bV9vcGVy
YXRpb25zLm9wZXJhdGlvbnMoKTsKKyAgICBib29sIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gcmVx
dWlyZVRyYW5zZm9ybU9yaWdpbih0cmFuc2Zvcm1PcGVyYXRpb25zLCBhcHBseU9yaWdpbik7Cisg
ICAgCisgICAgZmxvYXQgb2Zmc2V0WCA9IHRyYW5zZm9ybU9yaWdpblgoKS50eXBlKCkgPT0gUGVy
Y2VudCA/IGJvdW5kaW5nQm94LngoKSA6IDA7CisgICAgZmxvYXQgb2Zmc2V0WSA9IHRyYW5zZm9y
bU9yaWdpblkoKS50eXBlKCkgPT0gUGVyY2VudCA/IGJvdW5kaW5nQm94LnkoKSA6IDA7CisgICAg
CisgICAgaWYgKGFwcGx5VHJhbnNmb3JtT3JpZ2luKSB7CisgICAgICAgIHRyYW5zZm9ybS50cmFu
c2xhdGUzZCh0cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zsb2F0VmFsdWUoYm91bmRpbmdCb3gud2lk
dGgoKSkgKyBvZmZzZXRYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3Jt
T3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvdW5kaW5nQm94LmhlaWdodCgpKSArIG9mZnNldFks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW5aKCkpOworICAg
IH0KKyAgICAKKyAgICB1bnNpZ25lZCBzaXplID0gdHJhbnNmb3JtT3BlcmF0aW9ucy5zaXplKCk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgdHJhbnNm
b3JtT3BlcmF0aW9uc1tpXS0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0JveC5zaXplKCkpOwor
ICAgIAogICAgIGlmIChhcHBseVRyYW5zZm9ybU9yaWdpbikgewotICAgICAgICB0cmFuc2Zvcm0u
dHJhbnNsYXRlM2QoLXRyYW5zZm9ybU9yaWdpblgoKS5jYWxjRmxvYXRWYWx1ZShib3JkZXJCb3hT
aXplLndpZHRoKCkpLCAtdHJhbnNmb3JtT3JpZ2luWSgpLmNhbGNGbG9hdFZhbHVlKGJvcmRlckJv
eFNpemUuaGVpZ2h0KCkpLCAtdHJhbnNmb3JtT3JpZ2luWigpKTsKKyAgICAgICAgdHJhbnNmb3Jt
LnRyYW5zbGF0ZTNkKC10cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY0Zsb2F0VmFsdWUoYm91bmRpbmdC
b3gud2lkdGgoKSkgLSBvZmZzZXRYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXRy
YW5zZm9ybU9yaWdpblkoKS5jYWxjRmxvYXRWYWx1ZShib3VuZGluZ0JveC5oZWlnaHQoKSkgLSBv
ZmZzZXRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXRyYW5zZm9ybU9yaWdpbloo
KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCmluZGV4IDU1MTUxZDNlY2U5N2Y3ZjlkZjFkNDRjN2M5MDkzMTM5NmI4NjVmYzMuLjM0
YjU3ZWUzMzE5MWI2MWIyY2IwNDViODE4NDA5NWNkMGMyYjFhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC04OTQsNiArODk0LDcgQEAgcHVi
bGljOgogCiAgICAgZW51bSBBcHBseVRyYW5zZm9ybU9yaWdpbiB7IEluY2x1ZGVUcmFuc2Zvcm1P
cmlnaW4sIEV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4gfTsKICAgICB2b2lkIGFwcGx5VHJhbnNmb3Jt
KFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgTGF5b3V0U2l6ZSYgYm9yZGVyQm94U2l6ZSwg
QXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKSBjb25zdDsKKyAg
ICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRS
ZWN0JiBib3VuZGluZ0JveCwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBJbmNsdWRlVHJhbnNmb3Jt
T3JpZ2luKSBjb25zdDsKICAgICB2b2lkIHNldFBhZ2VTY2FsZVRyYW5zZm9ybShmbG9hdCk7CiAK
ICAgICBib29sIGhhc01hc2soKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV9tYXNrLmhhc0ltYWdlKCkgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFza0JveEltYWdl
Lmhhc0ltYWdlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQuY3BwCmluZGV4IDk5YzE3ODE3NThkMDVjMTgxNWUyMzY3NGFhYjY4
MWJlZTIyMzcyNTQuLjAyZjM1ZDNlMzhmYzk3YWRmMzdkZjI3ZTM3Njk2Y2U5ODQxY2M1MTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50LmNwcApAQCAtNjYsMTQgKzY2LDE1IEBAIEFmZmluZVRyYW5zZm9ybSBTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0CiAgICAgQWZm
aW5lVHJhbnNmb3JtIG1hdHJpeDsKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5kZXJlcigp
ID8gcmVuZGVyZXIoKS0+c3R5bGUoKSA6IDA7CiAKLSAgICAvLyBpZiBDU1MgcHJvcGVydHkgd2Fz
IHNldCwgdXNlIHRoYXQsIG90aGVyd2lzZSBmYWxsYmFjayB0byBhdHRyaWJ1dGUgKGlmIHNldCkK
KyAgICAvLyBJZiBDU1MgcHJvcGVydHkgd2FzIHNldCwgdXNlIHRoYXQsIG90aGVyd2lzZSBmYWxs
YmFjayB0byBhdHRyaWJ1dGUgKGlmIHNldCkuCiAgICAgaWYgKHN0eWxlICYmIHN0eWxlLT5oYXNU
cmFuc2Zvcm0oKSkgewotICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwotICAgICAgICAv
LyBGb3Igbm93LCB0aGUgdHJhbnNmb3JtLW9yaWdpbiBpcyBub3QgdGFrZW4gaW50byBhY2NvdW50
Ci0gICAgICAgIC8vIEFsc28sIGFueSBwZXJjZW50YWdlIHZhbHVlcyB3aWxsIG5vdCBiZSB0YWtl
biBpbnRvIGFjY291bnQKLSAgICAgICAgc3R5bGUtPmFwcGx5VHJhbnNmb3JtKHQsIEludFNpemUo
MCwgMCksIFJlbmRlclN0eWxlOjpFeGNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKLSAgICAgICAgLy8g
RmxhdHRlbiBhbnkgM0QgdHJhbnNmb3JtCi0gICAgICAgIG1hdHJpeCA9IHQudG9BZmZpbmVUcmFu
c2Zvcm0oKTsKKyAgICAgICAgLy8gTm90ZTogb2JqZWN0Qm91bmRpbmdCb3ggaXMgYW4gZW1wdHlS
ZWN0IGZvciBlbGVtZW50cyBsaWtlIHBhdHRlcm4gb3IgY2xpcFBhdGguCisgICAgICAgIC8vIFNl
ZSB0aGUgIk9iamVjdCBib3VuZGluZyBib3ggdW5pdHMiIHNlY3Rpb24gb2YgaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3NzMy10cmFuc2Zvcm1zLworICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCB0cmFuc2Zvcm07CisgICAgICAgIHN0eWxlLT5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIHJl
bmRlcmVyKCktPm9iamVjdEJvdW5kaW5nQm94KCkpOworCisgICAgICAgIC8vIEZsYXR0ZW4gYW55
IDNEIHRyYW5zZm9ybS4KKyAgICAgICAgbWF0cml4ID0gdHJhbnNmb3JtLnRvQWZmaW5lVHJhbnNm
b3JtKCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHRyYW5zZm9ybSgpLmNvbmNhdGVuYXRlKG1hdHJp
eCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBiYTM1NjdjZTQ4MmZhMWUxNTk4YTY1NzhlNDRiZmUwNzlkOTZkOGFlLi5i
ZmI5NGM5NjU0N2Q2OTNjMGEyNzBiM2Q3MmVhMjAxOTcxMWM2OTVkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMTItMDMtMDUgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAg
ICAgICAgU1ZHIHNob3VsZCBzdXBwb3J0IHRyYW5zZm9ybS1vcmlnaW4gYW5kIHJlbGF0aXZlIHZh
bHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzkw
NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCB0ZXN0cyBmb3IgU1ZHIENTUyB0cmFuc2Zvcm0tb3JpZ2luIHByb3BlcnR5IHN1cHBvcnQgYW5k
IGZvcgorICAgICAgICBDU1MgdHJhbnNsYXRpb25zIHNwZWNpZmllZCB3aXRoIHBlcmNlbnRhZ2Vz
IGFuZCBhcHBsaWVkIHRvIGFuIFNWRyBlbGVtZW50LgorCisgICAgICAgICogc3ZnL3RyYW5zZm9y
bXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tY3NzLWV4cGVjdGVkLnhodG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1jc3MueGh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2lu
LXByZXNlbnRhdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQueGh0bWw6IEFkZGVkLgorICAgICAgICAq
IHN2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLXByZXNlbnRhdGlvbi1hdHRy
aWJ1dGUueGh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJh
bnNmb3JtLXZhbHVlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zv
cm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy54aHRtbDogQWRkZWQuCisgICAgICAgICogc3Zn
L3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHktZXhwZWN0ZWQueGh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXBy
b3BlcnR5LnhodG1sOiBBZGRlZC4KKwogMjAxMi0wMy0xMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8
b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gUkVHUkVTU0lPTihyMTEwNDAxKTogZmFz
dC90YWJsZS90YWJsZS1yb3ctY29tcG9zaXRpbmctcmVwYWludC1jcmFzaC5odG1sIGFzc2VydHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dAppbmRleCAxM2E1OGY5YTE1YzhkMzZkYzVmZjMwMWUyOTNhNzc3MDUxZjFjODgxLi5mOTU1
NDE2ODk4Yjk5OTMwMzlkMGI1ZTIwNzMyODNkY2IxZTI3Y2UzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC05MzAsNiAr
OTMwLDkgQEAgQlVHQ1I2MjQzMyBXSU4gOiBmYXN0L2ltYWdlcy9naWYtbG9vcC1jb3VudC5odG1s
ID0gSU1BR0UKIC8vIFNWRyBURVNUUwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorLy8gQ2hyb21pdW0gZmFpbHVy
ZSBuZWVkcyBpbnZlc3RpZ2F0aW9uCitCVUdXSzc5MDY4IDogc3ZnL3RyYW5zZm9ybXMvdHJhbnNm
b3JtLW9yaWdpbi1jc3MtcHJvcGVydHkueGh0bWwgPSBGQUlMCisKIC8vIE5ldyB0ZXN0IHJlcXVp
cmVzIHJlYmFzZWxpbmUKIEJVR1dLNzc1MzUgOiBzdmcvcmVwYWludC9pbm5lci1zdmctY2hhbmdl
LXZpZXdQb3J0LXJlbGF0aXZlLnN2ZyA9IElNQUdFIElNQUdFK1RFWFQKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tY3NzLWV4
cGVjdGVkLnhodG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9y
bS1vcmlnaW4tY3NzLWV4cGVjdGVkLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyZmRmMzgyNDNjNWRlY2Q4
ZWI4MWU2MTNiMmY3NTFlMzczMTVjMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1jc3MtZXhwZWN0ZWQueGh0bWwK
QEAgLTAsMCArMSw1IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCI+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDI1
cHg7IHRvcDogMjVweDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kOiBn
cmVlbjsiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tY3NzLnhodG1sIGIvTGF5b3V0
VGVzdHMvc3ZnL3RyYW5zZm9ybXMvY2hhbmdlLXRyYW5zZm9ybS1vcmlnaW4tY3NzLnhodG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM4Zjk0Y2VkYzQ4NTZkYWM4ZjgwNjQ5NjQzMWY5YWY1YmY0N2FiOTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3Jt
LW9yaWdpbi1jc3MueGh0bWwKQEAgLTAsMCArMSwxOSBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorCis8IS0tCitWZXJpZnkgdGhhdCBjaGFuZ2luZyB0aGUg
U1ZHIHRyYW5zZm9ybS1vcmlnaW4gQ1NTIHByb3BlcnR5IGF0dHJpYnV0ZSB3b3JrcyBjb3JyZWN0
bHkuICBOb3RlIHRoYXQKK3RoZSBkZWZhdWx0IHRyYW5zZm9ybS1vcmlnaW4gZm9yIGFuIFNWRyBl
bGVtZW50IGlzIDAgMC4KKworVGhlIGdyZWVuIDEwMHgxMDAgcmVjdGFuZ2xlIHNob3VsZCBhcHBl
YXIgYXQgMjUsMjUuCistLT4KKworPGJvZHk+CisgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVmdDog
MHB4OyI+CisgICAgICA8cmVjdCBpZD0icmVjdCIgd2lkdGg9IjUwcHgiIGhlaWdodD0iNTBweCIg
eD0iNTAiIHk9IjUwIiBmaWxsPSJncmVlbiIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiBzY2Fs
ZSgyLCAyKTsiLz4KKyAgPC9zdmc+CisKKyAgPHNjcmlwdD48IVtDREFUQVsKKyAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdyZWN0Jykuc3R5bGUud2Via2l0VHJhbnNmb3JtT3JpZ2luID0g
IjUwJSA1MCUiOworICBdXT48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLXByZXNl
bnRhdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNm
b3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRlLWV4cGVj
dGVkLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyZmRmMzgyNDNjNWRlY2Q4ZWI4MWU2MTNiMmY3NTFlMzcz
MTVjMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFu
Z2UtdHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRlLWV4cGVjdGVkLnhodG1s
CkBAIC0wLDAgKzEsNSBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAy
NXB4OyB0b3A6IDI1cHg7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZDog
Z3JlZW47Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N2Zy90cmFuc2Zvcm1zL2NoYW5nZS10cmFuc2Zvcm0tb3JpZ2luLXByZXNlbnRhdGlvbi1hdHRy
aWJ1dGUueGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3Jt
LW9yaWdpbi1wcmVzZW50YXRpb24tYXR0cmlidXRlLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwM2VlMmI1
YmIxZjZhNzA1NGViZTZhYzgyYzQzN2U2ODNhYTk1ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9jaGFuZ2UtdHJhbnNmb3JtLW9yaWdpbi1wcmVzZW50YXRp
b24tYXR0cmlidXRlLnhodG1sCkBAIC0wLDAgKzEsMjAgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKworPCEtLQorVmVyaWZ5IHRoYXQgY2hhbmdpbmcgdGhl
IFNWRyB0cmFuc2Zvcm0tb3JpZ2luIHByZXNlbnRhdGlvbiBhdHRyaWJ1dGUgd29ya3MgY29ycmVj
dGx5LgorCitUaGUgZ3JlZW4gMTAweDEwMCByZWN0YW5nbGUgc2hvdWxkIGFwcGVhciBhdCAyNSwy
NS4KKy0tPgorCis8Ym9keT4KKyAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7Ij4KKyAg
ICAgIDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB4PSI1MCIgeT0i
NTAiIGZpbGw9ImdyZWVuIiB0cmFuc2Zvcm0tb3JpZ2luPSIwIDAiIHN0eWxlPSItd2Via2l0LXRy
YW5zZm9ybTogc2NhbGUoMiwgMik7Ii8+CisgIDwvc3ZnPgorCisgIDxzY3JpcHQ+PCFbQ0RBVEFb
CisKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWN0Jykuc2V0QXR0cmlidXRlKCJ0
cmFuc2Zvcm0tb3JpZ2luIiwgIjUwJSA1MCUiKQorCisgIF1dPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvcGVyY2VudC10
cmFuc2Zvcm0tdmFsdWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1z
L3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYzMjcz
NGFlNGMyYjNlNjdhNmIwMDk5ODlhNzlmNmVmNjk1ZGQwYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N2Zy90cmFuc2Zvcm1zL3BlcmNlbnQtdHJhbnNmb3JtLXZhbHVlcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0IGZvciBidWcgNzkwNjggLSBTVkcgc2hvdWxkIHN1
cHBvcnQgdHJhbnNmb3JtLW9yaWdpbiBhbmQgcmVsYXRpdmUgdmFsdWVzIFZlcmlmeSB0aGF0IENT
UyB0cmFuc2Zvcm0gdHJhbnNsYXRlIHZhbHVlcyBjYW4gYmUgc3BlY2lmaWVkIHdpdGggcGVyY2Vu
dGFnZXMuCisKK1lvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcyBhbmQg
b25lIDgweDYwIGdyZWVuIHJlY3RhbmdsZS4gVGhlIGdyZWVuIHJlY3RhbmdsZSBvYnNjdXJlcyB0
d28gcmVkIHJlY3RhbmdsZXMgb2YgdGhlIHNhbWUgc2l6ZSB3aGljaCBoYXZlIGJlZW4gdHJhbnNs
YXRlZCB0byB0aGUgc2FtZSBsb2NhdGlvbi4KK1BBU1MgIHJlY3QgInIxIiBbNTAsMjAwIDgweDYw
XSBleHBlY3RlZCBbNTAsMjAwIDgweDYwXQorUEFTUyAgcmVjdCAicjIiIFs1MCwyMDAgODB4NjBd
IGV4cGVjdGVkIFs1MCwyMDAgODB4NjBdCitQQVNTICByZWN0ICJyMyIgWzUwLDIwMCA4MHg2MF0g
ZXhwZWN0ZWQgWzUwLDIwMCA4MHg2MF0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3Ry
YW5zZm9ybXMvcGVyY2VudC10cmFuc2Zvcm0tdmFsdWVzLnhodG1sIGIvTGF5b3V0VGVzdHMvc3Zn
L3RyYW5zZm9ybXMvcGVyY2VudC10cmFuc2Zvcm0tdmFsdWVzLnhodG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFh
MmNmNTFjYmM5ZmIzNzdmMThjYWM4YWE0MWM4YzVmYmJmZWQ4YWIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy9wZXJjZW50LXRyYW5zZm9ybS12YWx1ZXMueGh0
bWwKQEAgLTAsMCArMSwzNSBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorPGJvZHk+CisgIDxwPlRlc3QgZm9yIGJ1ZyA8YSBocmVmPSIiPjc5MDY4PC9hPiAt
IFNWRyBzaG91bGQgc3VwcG9ydCB0cmFuc2Zvcm0tb3JpZ2luIGFuZCByZWxhdGl2ZSB2YWx1ZXMK
KyAgVmVyaWZ5IHRoYXQgQ1NTIHRyYW5zZm9ybSB0cmFuc2xhdGUgdmFsdWVzIGNhbiBiZSBzcGVj
aWZpZWQgd2l0aCBwZXJjZW50YWdlcy4KKyAgPC9wPgorICBZb3Ugc2hvdWxkIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMgYW5kIG9uZSA4MHg2MCBncmVlbiByZWN0YW5nbGUuICAgVGhl
IGdyZWVuIHJlY3RhbmdsZSBvYnNjdXJlcyB0d28KKyAgcmVkIHJlY3RhbmdsZXMgb2YgdGhlIHNh
bWUgc2l6ZSB3aGljaCBoYXZlIGJlZW4gdHJhbnNsYXRlZCB0byB0aGUgc2FtZSBsb2NhdGlvbi4K
KyAgPHA+CisgIDwvcD4KKyAgPHN2ZyBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MHB4
OyB0b3A6MHB4OyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8cmVj
dCBpZD0icjEiIHg9IjEwIiB5PSIyMDAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgZmlsbD0icmVk
IiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUpIi8+CisgICAgPHJlY3Qg
aWQ9InIyIiB4PSI5MCIgeT0iMjYwIiB3aWR0aD0iODAiIGhlaWdodD0iNjAiIGZpbGw9InJlZCIg
c3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTEwMCUpIi8+CisgICAg
PHJlY3QgaWQ9InIzIiB4PSIxMCIgeT0iMjAwIiB3aWR0aD0iODAiIGhlaWdodD0iNjAiIGZpbGw9
ImdyZWVuIiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDAlKSIvPgor
ICA8L3N2Zz4KKyAgPHByZSBpZD0ibG9nIj48L3ByZT4KKzwvYm9keT4KKzxzY3JpcHQ+PCFbQ0RB
VEFbCisKKyAgICB2YXIgcmVzdWx0U3RyaW5nID0gIiI7CisKKyAgICBmdW5jdGlvbiBjaGVja0Ns
aWVudFJlY3QocmVjdElEKSB7CisgICAgICAgIHZhciBjciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKHJlY3RJRCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIHZhciBjclN0cmlu
ZyA9ICJbIiArIGNyLmxlZnQgKyAiLCIgKyBjci50b3AgKyAiICIgKyBjci53aWR0aCArICJ4IiAr
IGNyLmhlaWdodCArICJdIjsKKyAgICAgICAgdmFyIGV4cGVjdGVkID0gIls1MCwyMDAgODB4NjBd
IjsKKyAgICAgICAgcmVzdWx0U3RyaW5nICs9ICgoY3JTdHJpbmcgPT0gZXhwZWN0ZWQpID8gIlBB
U1MgIiA6ICJGQUlMICIpICsgIiByZWN0IFwiIiArIHJlY3RJRCArICJcIiAiICsgY3JTdHJpbmcg
KyAiIGV4cGVjdGVkICIgKyBleHBlY3RlZCArICJcbiI7CisgICAgfQorCisgICAgWyJyMSIsICJy
MiIsICJyMyJdLm1hcChjaGVja0NsaWVudFJlY3QpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJsb2ciKS5pbm5lckhUTUwgPSByZXN1bHRTdHJpbmc7CisKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisKKyBdXT48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N2Zy90cmFuc2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LWV4cGVjdGVkLnho
dG1sIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJv
cGVydHktZXhwZWN0ZWQueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFmNDA2OGQzMWYyYWI2MzM0ODBiYTE0
NDgwMWU1ZjI2OTY5MzdkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy90cmFu
c2Zvcm1zL3RyYW5zZm9ybS1vcmlnaW4tY3NzLXByb3BlcnR5LWV4cGVjdGVkLnhodG1sCkBAIC0w
LDAgKzEsNDUgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KzxzdHlsZT4KKyN0cmFuc2Zvcm1PcmlnaW5EaXYgeworICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgd2lkdGg6IDMwcHg7CisgICBoZWlnaHQ6IDMwcHg7CisgICBiYWNrZ3JvdW5kOiBncmVlbjsK
KyAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOworfQorPC9zdHlsZT4KKworPGJv
ZHk+CisgIDxkaXYgaWQ9ImRpdlJvb3QiPjwvZGl2PgorCisgIDxzY3JpcHQ+PCFbQ0RBVEFbCisK
KyAgICBmdW5jdGlvbiBhZGRUcmFuc2Zvcm1PcmlnaW5EaXYoeCwgeSwgdHJhbnNmb3JtT3JpZ2lu
KQorICAgIHsKKyAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAidHJhbnNmb3JtT3JpZ2luRGl2Iik7Cisg
ICAgICAgZGl2LnNldEF0dHJpYnV0ZSgic3R5bGUiLCAidG9wOiAiICsgeSArICJweDsgbGVmdDog
IisgeCArICJweDsgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAiICsgdHJhbnNmb3JtT3JpZ2lu
ICsgIjsiKTsKKyAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Um9vdCIpLmFwcGVu
ZENoaWxkKGRpdik7CisgICAgfQorCisgICAgdmFyIHRyYW5zZm9ybU9yaWdpbnMgPSBbCisgICAg
ICAgICAiNTAlIDUwJSIsCisgICAgICAgICAiMCUgMCUiLAorICAgICAgICAgIjAlIDUwJSIsCisg
ICAgICAgICAiMTAwJSAwJSIsCisgICAgICAgICAiMCUgNTAlIiwKKyAgICAgICAgICIxMDAlIDUw
JSIsCisgICAgICAgICAiMCUgMTAwJSIsCisgICAgICAgICAiNTAlIDEwMCUiLAorICAgICAgICAg
IjEwMCUgMTAwJSIsCisgICAgIF07CisKKyAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmFuc2Zv
cm1PcmlnaW5zLmxlbmd0aDsgaSsrKSAgeworICAgICAgICAgdmFyIHggPSA2MCArIChpICUgIDQp
ICogNjA7CisgICAgICAgICB2YXIgeSA9IDYwICsgTWF0aC5mbG9vcihpIC8gNCkgKiA2MDsKKyAg
ICAgICAgIGFkZFRyYW5zZm9ybU9yaWdpbkRpdih4LCB5LCB0cmFuc2Zvcm1PcmlnaW5zW2ldKTsK
KyAgICAgfQorCisgIF1dPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMvdHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHku
eGh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdHJhbnNmb3Jtcy90cmFuc2Zvcm0tb3JpZ2luLWNzcy1w
cm9wZXJ0eS54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTYzMGJjYTNkZDRiMWZiMDEzMThiZmI1YzI1YWM4
NzE0ZTEyMTFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3RyYW5zZm9ybXMv
dHJhbnNmb3JtLW9yaWdpbi1jc3MtcHJvcGVydHkueGh0bWwKQEAgLTAsMCArMSw2MSBAQAorPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPHN0eWxlPgorI3N2Z1Jv
b3QgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsK
K30KKworI3RyYW5zZm9ybU9yaWdpblJlY3QgeworICAgIGZpbGw6IGdyZWVuOworICAgIC13ZWJr
aXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOworfQorPC9zdHlsZT4KKworPCEtLQorICBUZXN0
IGZvciBidWcgNzkwNjggLSBTVkcgc2hvdWxkIHN1cHBvcnQgdHJhbnNmb3JtLW9yaWdpbiBhbmQg
cmVsYXRpdmUgdmFsdWVzLgorCisgIFlvdSBzaG91bGQgc2VlIDkgZ3JlZW4gMjB4MjAgcmVjdGFu
Z2xlcy4gIEVhY2ggZ3JlZW4gcmVjdGFuZ2xlIGlzIGFjdHVhbGx5IG9uZSBvZiBhIHNldCBvZiBh
Ym91dCA2LCBlYWNoIG9uZQorICB3aXRoIGEgZGlmZmVyZW50IGJ1dCBlcXVpdmFsZW50IHZhbHVl
IGZvciB0aGUgQ1NTIHRyYW5zZm9ybS1vcmlnaW4gcHJvcGVydHkuCistLT4KKworPGJvZHk+Cisg
IDxzdmcgaWQ9InN2Z1Jvb3QiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9z
dmc+CisKKyAgPHNjcmlwdD48IVtDREFUQVsKKyAgICB2YXIgc3ZnTlMgPSAiaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciOworCisgICAgZnVuY3Rpb24gYWRkVHJhbnNmb3JtT3JpZ2luUmVjdCh4
LCB5LCBzKQorICAgIHsKKyAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnRO
UyhzdmdOUywgInJlY3QiKTsKKyAgICAgICB2YXIgdHJhbnNmb3JtT3JpZ2luID0gKHR5cGVvZihz
KSA9PSAic3RyaW5nIikgPyBzIDogICh4ICsgc1swXSkgKyAiICIgKyAoeSArIHNbMV0pOworICAg
ICAgIHJlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0cmFuc2Zvcm1PcmlnaW5SZWN0Iik7CisgICAg
ICAgcmVjdC5zZXRBdHRyaWJ1dGUoIngiLCB4KTsKKyAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgi
eSIsIHkpOworICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ3aWR0aCIsIDMwKTsKKyAgICAgICBy
ZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgMzApOworICAgICAgIHJlY3Quc2V0QXR0cmlidXRl
KCJzdHlsZSIsICItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46ICIgKyB0cmFuc2Zvcm1PcmlnaW4g
KyAiOyIpOworICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdmdSb290IikuYXBwZW5k
Q2hpbGQocmVjdCk7CisgICAgfQorCisgICAgdmFyIGVxdWl2YWxlbnRUcmFuc2Zvcm1PcmlnaW5z
ID0gWworICAgICAgICAgWyI1MCUgNTAlIiwgImNlbnRlciA1MCUiLCAiNTAlIGNlbnRlciIsICJj
ZW50ZXIiLCAiY2VudGVyIGNlbnRlciIsIFsxNSwgMTVdXSwKKyAgICAgICAgIFsiMCUgMCUiLCAi
bGVmdCAwJSIsICIwJSB0b3AiLCAibGVmdCB0b3AiLCAidG9wIGxlZnQiLCBbMCwgMF1dLAorICAg
ICAgICAgWyIwJSA1MCUiLCAibGVmdCA1MCUiLCAiMCUgY2VudGVyIiwgImxlZnQiLCAibGVmdCBj
ZW50ZXIiLCAiY2VudGVyIGxlZnQiLCBbMCwgMTVdXSwKKyAgICAgICAgIFsiMTAwJSAwJSIsICJy
aWdodCAwJSIsICIxMDAlIHRvcCIsICJyaWdodCB0b3AiLCAidG9wIHJpZ2h0IiwgWzMwLCAwXV0s
CisgICAgICAgICBbIjAlIDUwJSIsICJsZWZ0IDUwJSIsICIwJSBjZW50ZXIiLCAibGVmdCBjZW50
ZXIiLCAiY2VudGVyIGxlZnQiLCBbMCwgMTVdXSwKKyAgICAgICAgIFsiMTAwJSA1MCUiLCAicmln
aHQgNTAlIiwgIjEwMCUgY2VudGVyIiwgInJpZ2h0IGNlbnRlciIsICJjZW50ZXIgcmlnaHQiLCBb
MzAsIDE1XV0sCisgICAgICAgICBbIjAlIDEwMCUiLCAibGVmdCAxMDAlIiwgIjAlIGJvdHRvbSIs
ICJsZWZ0IGJvdHRvbSIsICJsZWZ0IGJvdHRvbSIsIFswLCAzMF1dLAorICAgICAgICAgWyI1MCUg
MTAwJSIsICJjZW50ZXIgMTAwJSIsICI1MCUgYm90dG9tIiwgImJvdHRvbSIsICJjZW50ZXIgYm90
dG9tIiwgImJvdHRvbSBjZW50ZXIiLCBbMTUsIDMwXV0sCisgICAgICAgICBbIjEwMCUgMTAwJSIs
ICJyaWdodCAxMDAlIiwgIjEwMCUgYm90dG9tIiwgInJpZ2h0IGJvdHRvbSIsICJib3R0b20gcmln
aHQiLCBbMzAsIDMwXV0KKyAgICAgXTsKKworICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVxdWl2
YWxlbnRUcmFuc2Zvcm1PcmlnaW5zLmxlbmd0aDsgaSsrKSAgeworICAgICAgICAgdmFyIHggPSA2
MCArIChpICUgIDQpICogNjA7CisgICAgICAgICB2YXIgeSA9IDYwICsgTWF0aC5mbG9vcihpIC8g
NCkgKiA2MDsKKyAgICAgICAgIGVxdWl2YWxlbnRUcmFuc2Zvcm1PcmlnaW5zW2ldLm1hcCggZnVu
Y3Rpb24ocykgeyBhZGRUcmFuc2Zvcm1PcmlnaW5SZWN0KHgsIHksIHMpOyB9ICk7CisgICAgIH0K
KworICBdXT48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>