<?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>111587</bug_id>
          
          <creation_ts>2013-03-06 08:59:08 -0800</creation_ts>
          <short_desc>SVG Pattern pixelated on inline SVG with CSS transforms</short_desc>
          <delta_ts>2013-04-23 17:55:02 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Florin Malita">fmalita</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pdr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>848906</commentid>
    <comment_count>0</comment_count>
      <attachid>191761</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-03-06 08:59:08 -0800</bug_when>
    <thetext>Created attachment 191761
Pixelated pattern caused by scaling HTML elements

If an SVG document is embedded inline into an HTML element, SVG patterns of this SVG document do not respect the transform of ancestor HTML elements. This causes pixelation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849071</commentid>
    <comment_count>1</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-06 10:58:07 -0800</bug_when>
    <thetext>This is most likely affecting clips &amp; masks also, as they all use SVGRenderingContext::calculateTransformationToOutermostSVGCoordinateSystem() when calculating the image buffer size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850772</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-03-07 19:25:39 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; This is most likely affecting clips &amp; masks also, as they all use SVGRenderingContext::calculateTransformationToOutermostSVGCoordinateSystem() when calculating the image buffer size.

Could you find a way to get the transformation matrix from SVG root to page transform? I think you said need to go to the tree and calculate the transform manually, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851130</commentid>
    <comment_count>3</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-08 06:23:53 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; This is most likely affecting clips &amp; masks also, as they all use SVGRenderingContext::calculateTransformationToOutermostSVGCoordinateSystem() when calculating the image buffer size.
&gt; 
&gt; Could you find a way to get the transformation matrix from SVG root to page transform? I think you said need to go to the tree and calculate the transform manually, right?

Yes, I do have a patch that continues walking up the layer tree from SVGRoot and picks up the affine portion of CSS transforms.

Seems to work and fixes the problem at hand, but I was just trying to figure whether there&apos;s a more straightforward approach or if there are some strange interactions with more complex CSS transforms.

It may be good enough though, so I&apos;ll add a test and put it up for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851408</commentid>
    <comment_count>4</comment_count>
      <attachid>192265</attachid>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-08 12:10:34 -0800</bug_when>
    <thetext>Created attachment 192265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851410</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-08 12:12:40 -0800</bug_when>
    <thetext>Attachment 192265 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/platform/chromium-linux/svg/custom/resources-css-scaled-expected.png&apos;, u&apos;LayoutTests/platform/chromium-linux/svg/custom/resources-css-scaled-expected.txt&apos;, u&apos;LayoutTests/platform/chromium/TestExpectations&apos;, u&apos;LayoutTests/platform/efl/TestExpectations&apos;, u&apos;LayoutTests/platform/gtk/TestExpectations&apos;, u&apos;LayoutTests/platform/mac/TestExpectations&apos;, u&apos;LayoutTests/platform/qt/TestExpectations&apos;, u&apos;LayoutTests/svg/custom/resources-css-scaled.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp&apos;, u&apos;Source/WebCore/rendering/svg/SVGRenderingContext.cpp&apos;, u&apos;Source/WebCore/rendering/svg/SVGRenderingContext.h&apos;]&quot; exit_code: 1
LayoutTests/platform/chromium-linux/svg/custom/resources-css-scaled-expected.png:0:  Have to enable auto props in the subversion config file (/home/alancutter/.subversion/config &quot;enable-auto-props = yes&quot;). Have to set the svn:mime-type in the subversion config file (/home/alancutter/.subversion/config &quot;*.png = svn:mime-type=image/png&quot;).  [image/png] [5]
Total errors found: 1 in 16 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>851413</commentid>
    <comment_count>6</comment_count>
      <attachid>192266</attachid>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-08 12:15:14 -0800</bug_when>
    <thetext>Created attachment 192266
Same problem with clips, masks &amp; filters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851450</commentid>
    <comment_count>7</comment_count>
      <attachid>192265</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-03-08 13:02:08 -0800</bug_when>
    <thetext>Comment on attachment 192265
Patch

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

&gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:215
&gt; +    for (RenderLayer* layer = renderer-&gt;enclosingLayer(); layer; layer = layer-&gt;parent()) {
&gt; +        TransformationMatrix* layerTransform = layer-&gt;transform();
&gt; +        if (layerTransform)
&gt; +            absoluteTransform = layerTransform-&gt;toAffineTransform() * absoluteTransform;

I think this should probably stop at a composited layer. Then the resolution will match that of the composited layer contents (but we might have an extra scale to take into account when we fix bug 27684).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851473</commentid>
    <comment_count>8</comment_count>
      <attachid>192279</attachid>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-08 13:30:42 -0800</bug_when>
    <thetext>Created attachment 192279
Patch

Thanks Simon, updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851474</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-08 13:33:11 -0800</bug_when>
    <thetext>Attachment 192279 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/platform/chromium-linux/svg/custom/resources-css-scaled-expected.png&apos;, u&apos;LayoutTests/platform/chromium-linux/svg/custom/resources-css-scaled-expected.txt&apos;, u&apos;LayoutTests/platform/chromium/TestExpectations&apos;, u&apos;LayoutTests/platform/efl/TestExpectations&apos;, u&apos;LayoutTests/platform/gtk/TestExpectations&apos;, u&apos;LayoutTests/platform/mac/TestExpectations&apos;, u&apos;LayoutTests/platform/qt/TestExpectations&apos;, u&apos;LayoutTests/svg/custom/resources-css-scaled.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp&apos;, u&apos;Source/WebCore/rendering/svg/SVGRenderingContext.cpp&apos;, u&apos;Source/WebCore/rendering/svg/SVGRenderingContext.h&apos;]&quot; exit_code: 1
LayoutTests/platform/chromium-linux/svg/custom/resources-css-scaled-expected.png:0:  Have to enable auto props in the subversion config file (/home/alancutter/.subversion/config &quot;enable-auto-props = yes&quot;). Have to set the svn:mime-type in the subversion config file (/home/alancutter/.subversion/config &quot;*.png = svn:mime-type=image/png&quot;).  [image/png] [5]
Total errors found: 1 in 16 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>851476</commentid>
    <comment_count>10</comment_count>
      <attachid>192279</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-03-08 13:44:53 -0800</bug_when>
    <thetext>Comment on attachment 192279
Patch

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

&gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:202
&gt; +    for (; renderer; renderer = renderer-&gt;parent()) {

For these kind of loops I like while more and it is used in a lot of other places as well. But I guess it is a matter of taste :)

&gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:212
&gt; +    // Continue walking up the layer tree, accumulating CSS transforms.
&gt; +    for (RenderLayer* layer = renderer-&gt;enclosingLayer(); layer; layer = layer-&gt;parent()) {

What if the SVG root is in a foreignObject? Maybe the check above should be updated to look if there is a parent SVG renderer?

&gt; LayoutTests/ChangeLog:8
&gt; +        * platform/chromium-linux/svg/custom/resources-css-scaled-expected.png: Added.

You should be able to create a ref test instead of the image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851482</commentid>
    <comment_count>11</comment_count>
      <attachid>192279</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-03-08 13:48:29 -0800</bug_when>
    <thetext>Comment on attachment 192279
Patch

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

&gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:196
&gt; +void SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem(const RenderObject* renderer, AffineTransform&amp; absoluteTransform)

I don&apos;t think we are doing the right thing here.

What is returned from this function (now that you&apos;re going with smfr&apos;s suggestion) should be the exact same as context-&gt;getCTM(). In most of the callers of this function, the context is readily available, and in the others it&apos;s easily plumbed through.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851491</commentid>
    <comment_count>12</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-08 13:57:22 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 192279 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192279&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:196
&gt; &gt; +void SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem(const RenderObject* renderer, AffineTransform&amp; absoluteTransform)
&gt; 
&gt; I don&apos;t think we are doing the right thing here.
&gt; 
&gt; What is returned from this function (now that you&apos;re going with smfr&apos;s suggestion) should be the exact same as context-&gt;getCTM(). In most of the callers of this function, the context is readily available, and in the others it&apos;s easily plumbed through.

The reason I&apos;m hesitant about using getCTM() is the very existance of this method: why did we not rely on getCTM() from the beginning? From chatting with Dirk on IRC, it seems there might have been valid reasons (Qt platform differences) which forced us in this direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851498</commentid>
    <comment_count>13</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-03-08 14:11:02 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 192279 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192279&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:196
&gt; &gt; &gt; +void SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem(const RenderObject* renderer, AffineTransform&amp; absoluteTransform)
&gt; &gt; 
&gt; &gt; I don&apos;t think we are doing the right thing here.
&gt; &gt; 
&gt; &gt; What is returned from this function (now that you&apos;re going with smfr&apos;s suggestion) should be the exact same as context-&gt;getCTM(). In most of the callers of this function, the context is readily available, and in the others it&apos;s easily plumbed through.
&gt; 
&gt; The reason I&apos;m hesitant about using getCTM() is the very existance of this method: why did we not rely on getCTM() from the beginning? From chatting with Dirk on IRC, it seems there might have been valid reasons (Qt platform differences) which forced us in this direction.

On every paint you&apos;re going to crawl up the entire tree doing matrix multiplies at each step so the QT port doesn&apos;t break? Lets just fix QT&apos;s getCTM() if necessary :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851505</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-03-08 14:25:05 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; (From update of attachment 192279 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192279&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:196
&gt; &gt; &gt; &gt; +void SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem(const RenderObject* renderer, AffineTransform&amp; absoluteTransform)
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t think we are doing the right thing here.
&gt; &gt; &gt; 
&gt; &gt; &gt; What is returned from this function (now that you&apos;re going with smfr&apos;s suggestion) should be the exact same as context-&gt;getCTM(). In most of the callers of this function, the context is readily available, and in the others it&apos;s easily plumbed through.
&gt; &gt; 
&gt; &gt; The reason I&apos;m hesitant about using getCTM() is the very existance of this method: why did we not rely on getCTM() from the beginning? From chatting with Dirk on IRC, it seems there might have been valid reasons (Qt platform differences) which forced us in this direction.
&gt; 
&gt; On every paint you&apos;re going to crawl up the entire tree doing matrix multiplies at each step so the QT port doesn&apos;t break? Lets just fix QT&apos;s getCTM() if necessary :)

Nothing guarantees that CTM of 1,0,0,1,0,0 is in real screen coordinates. I don&apos;t think that helps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851543</commentid>
    <comment_count>15</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-03-08 15:09:57 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; &gt; (From update of attachment 192279 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192279&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:196
&gt; &gt; &gt; &gt; &gt; +void SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem(const RenderObject* renderer, AffineTransform&amp; absoluteTransform)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I don&apos;t think we are doing the right thing here.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; What is returned from this function (now that you&apos;re going with smfr&apos;s suggestion) should be the exact same as context-&gt;getCTM(). In most of the callers of this function, the context is readily available, and in the others it&apos;s easily plumbed through.
&gt; &gt; &gt; 
&gt; &gt; &gt; The reason I&apos;m hesitant about using getCTM() is the very existance of this method: why did we not rely on getCTM() from the beginning? From chatting with Dirk on IRC, it seems there might have been valid reasons (Qt platform differences) which forced us in this direction.
&gt; &gt; 
&gt; &gt; On every paint you&apos;re going to crawl up the entire tree doing matrix multiplies at each step so the QT port doesn&apos;t break? Lets just fix QT&apos;s getCTM() if necessary :)
&gt; 
&gt; Nothing guarantees that CTM of 1,0,0,1,0,0 is in real screen coordinates. I don&apos;t think that helps.

My thinking is that we should be rasterizing in layer coordinates, not screen coordinates.

Maybe that is not best for users? Is this specified?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851582</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-03-08 15:52:53 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; (In reply to comment #13)
&gt; &gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; &gt; &gt; (From update of attachment 192279 [details] [details] [details] [details] [details])
&gt; &gt; &gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192279&amp;action=review
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:196
&gt; &gt; &gt; &gt; &gt; &gt; +void SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem(const RenderObject* renderer, AffineTransform&amp; absoluteTransform)
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; I don&apos;t think we are doing the right thing here.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; What is returned from this function (now that you&apos;re going with smfr&apos;s suggestion) should be the exact same as context-&gt;getCTM(). In most of the callers of this function, the context is readily available, and in the others it&apos;s easily plumbed through.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; The reason I&apos;m hesitant about using getCTM() is the very existance of this method: why did we not rely on getCTM() from the beginning? From chatting with Dirk on IRC, it seems there might have been valid reasons (Qt platform differences) which forced us in this direction.
&gt; &gt; &gt; 
&gt; &gt; &gt; On every paint you&apos;re going to crawl up the entire tree doing matrix multiplies at each step so the QT port doesn&apos;t break? Lets just fix QT&apos;s getCTM() if necessary :)
&gt; &gt; 
&gt; &gt; Nothing guarantees that CTM of 1,0,0,1,0,0 is in real screen coordinates. I don&apos;t think that helps.
&gt; 
&gt; My thinking is that we should be rasterizing in layer coordinates, not screen coordinates.
&gt; 
&gt; Maybe that is not best for users? Is this specified?

This is an implementation detail. It is not specified :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851708</commentid>
    <comment_count>17</comment_count>
      <attachid>192279</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-08 21:44:20 -0800</bug_when>
    <thetext>Comment on attachment 192279
Patch

Attachment 192279 did not pass win-ews (win):
Output: http://webkit-commit-queue.appspot.com/results/17077614</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851710</commentid>
    <comment_count>18</comment_count>
      <attachid>192279</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-08 21:56:55 -0800</bug_when>
    <thetext>Comment on attachment 192279
Patch

Attachment 192279 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17047580</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851744</commentid>
    <comment_count>19</comment_count>
      <attachid>192279</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-09 00:45:35 -0800</bug_when>
    <thetext>Comment on attachment 192279
Patch

Attachment 192279 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17109407</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852282</commentid>
    <comment_count>20</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-11 07:22:36 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; (From update of attachment 192279 [details] [details] [details])
&gt; &gt; &gt; In most of the callers of this function, the context is readily available, and in the others it&apos;s easily plumbed through.

This is not 100% correct: one of its users is SVGRenderingContext::calculateScreenFontSizeScalingFactor() which is also called on layout()/styleDidChange() - where a GC is simply not available. So it seems we would have to keep the old approach for this path alone.


&gt; &gt; The reason I&apos;m hesitant about using getCTM() is the very existance of this method: why did we not rely on getCTM() from the beginning? From chatting with Dirk on IRC, it seems there might have been valid reasons (Qt platform differences) which forced us in this direction.
&gt; 
&gt; On every paint you&apos;re going to crawl up the entire tree doing matrix multiplies at each step so the QT port doesn&apos;t break? Lets just fix QT&apos;s getCTM() if necessary :)

We would be crawling the layer tree which is quite sparse - so the overhead is minimal. That said, using CTM directly does sound appealing (if correct) on the paint path. I can whip up an experimental patch just to see what breaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852291</commentid>
    <comment_count>21</comment_count>
      <attachid>192467</attachid>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-11 07:31:42 -0700</bug_when>
    <thetext>Created attachment 192467
Switch paint() paths to getCTM.

Experimental patch to observe bots fallout - not for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852321</commentid>
    <comment_count>22</comment_count>
      <attachid>192467</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-11 08:13:33 -0700</bug_when>
    <thetext>Comment on attachment 192467
Switch paint() paths to getCTM.

Attachment 192467 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17113594

New failing tests:
svg/custom/absolute-sized-content-with-resources.xhtml
svg/custom/non-scaling-stroke.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852441</commentid>
    <comment_count>23</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-11 10:25:59 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 192279 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192279&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:202
&gt; &gt; +    for (; renderer; renderer = renderer-&gt;parent()) {
&gt; 
&gt; For these kind of loops I like while more and it is used in a lot of other places as well. But I guess it is a matter of taste :)

Sounds good, I&apos;ll update :)


&gt; &gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:212
&gt; &gt; +    // Continue walking up the layer tree, accumulating CSS transforms.
&gt; &gt; +    for (RenderLayer* layer = renderer-&gt;enclosingLayer(); layer; layer = layer-&gt;parent()) {
&gt; 
&gt; What if the SVG root is in a foreignObject? Maybe the check above should be updated to look if there is a parent SVG renderer?

I&apos;ve seen that type of test in other places, but I don&apos;t think it&apos;s buying us much: it only catches a narrow case where the SVG root is a direct descendant of fO - but if it&apos;s further down the tree (say there&apos;s a &lt;div&gt; between fO and the embedded SVG) then we&apos;re not noticing. It seems we would have to walk the whole render tree to detect this, which is probably not acceptable. Besides, transformed fO content is quite busted at the moment anyway - if we land the SVG/fO layer fixes then I believe this should just work as-is.


&gt; &gt; LayoutTests/ChangeLog:8
&gt; &gt; +        * platform/chromium-linux/svg/custom/resources-css-scaled-expected.png: Added.
&gt; 
&gt; You should be able to create a ref test instead of the image.

Yes, sounds doable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852548</commentid>
    <comment_count>24</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-11 12:02:58 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Created an attachment (id=192467) [details]
&gt; Switch paint() paths to getCTM.
&gt; 
&gt; Experimental patch to observe bots fallout - not for review.

The results look encouraging: two CR failures which appear to be edge/rounding artifacts, with no visually noticeable effect.

I think we should move ahead with the current approach and pursue a getCTM switch in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852551</commentid>
    <comment_count>25</comment_count>
      <attachid>192525</attachid>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-11 12:04:08 -0700</bug_when>
    <thetext>Created attachment 192525
Patch

Updated per review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852612</commentid>
    <comment_count>26</comment_count>
      <attachid>192525</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-03-11 12:55:18 -0700</bug_when>
    <thetext>Comment on attachment 192525
Patch

I am very much in favor for having a working version now, that may can be improved later. I expect a lot more work on getCTM in the short term. And, as fmailita says, would always require a context, which is maybe not the case in some situations. r+ from me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853337</commentid>
    <comment_count>27</comment_count>
      <attachid>192525</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-12 04:32:50 -0700</bug_when>
    <thetext>Comment on attachment 192525
Patch

Attachment 192525 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17173107

New failing tests:
editing/selection/selection-modify-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853439</commentid>
    <comment_count>28</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-03-12 07:26:21 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 192525 [details])
&gt; Attachment 192525 [details] did not pass mac-ews (mac):
&gt; Output: http://webkit-commit-queue.appspot.com/results/17173107
&gt; 
&gt; New failing tests:
&gt; editing/selection/selection-modify-crash.html

I don&apos;t think this is related, hopefully a flake. Let&apos;s see if the CQ bots agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853445</commentid>
    <comment_count>29</comment_count>
      <attachid>192525</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-12 07:41:01 -0700</bug_when>
    <thetext>Comment on attachment 192525
Patch

Clearing flags on attachment: 192525

Committed r145541: &lt;http://trac.webkit.org/changeset/145541&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853446</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-12 07:41:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880156</commentid>
    <comment_count>31</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-23 15:22:01 -0700</bug_when>
    <thetext>Did you intend to accumulate CSS transforms translation components too? This is breaking painting of a few test cases I have (I&apos;ll try to reduce them to a postable state).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880163</commentid>
    <comment_count>32</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-04-23 15:47:34 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; Did you intend to accumulate CSS transforms translation components too? This is breaking painting of a few test cases I have (I&apos;ll try to reduce them to a postable state).

Are CSS translations not reflected in the layer transform? If they&apos;re stored as layer offsets only, then yes, this patch misses that.

But I don&apos;t think the patch itself introduced this breakage - the previous tree crawl was stopping even earlier, at the SVG root boundary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880165</commentid>
    <comment_count>33</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-23 15:53:01 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; Did you intend to accumulate CSS transforms translation components too? This is breaking painting of a few test cases I have (I&apos;ll try to reduce them to a postable state).
&gt; 
&gt; Are CSS translations not reflected in the layer transform? If they&apos;re stored as layer offsets only, then yes, this patch misses that.
&gt; 
&gt; But I don&apos;t think the patch itself introduced this breakage - the previous tree crawl was stopping even earlier, at the SVG root boundary.

They *are* in the transform, and I don&apos;t think we want to include them! Stopping at the SVG root boundary would cause them to not be included. Including them means that the GraphicsContexts returned by SVG image buffer creation code will be translated by an additional offset that SVG doesn&apos;t know about (and doesn&apos;t include when painting!).

Definitely caused by this patch.

I&apos;m going to remove the translation component when crawling the tree, that fixes my bug without reintroducing yours.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880171</commentid>
    <comment_count>34</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2013-04-23 16:17:42 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #32)
&gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; Did you intend to accumulate CSS transforms translation components too? This is breaking painting of a few test cases I have (I&apos;ll try to reduce them to a postable state).
&gt; &gt; 
&gt; &gt; Are CSS translations not reflected in the layer transform? If they&apos;re stored as layer offsets only, then yes, this patch misses that.
&gt; &gt; 
&gt; &gt; But I don&apos;t think the patch itself introduced this breakage - the previous tree crawl was stopping even earlier, at the SVG root boundary.
&gt; 
&gt; They *are* in the transform, and I don&apos;t think we want to include them! Stopping at the SVG root boundary would cause them to not be included. Including them means that the GraphicsContexts returned by SVG image buffer creation code will be translated by an additional offset that SVG doesn&apos;t know about (and doesn&apos;t include when painting!).

Ah, I see - I misread your comment as asking for translation to be included. I&apos;m away from my workstation now, but at the time I remember convincing myself that all users only cared about the scale component anyway. Seems that I was wrong.

&gt; Definitely caused by this patch.
&gt; 
&gt; I&apos;m going to remove the translation component when crawling the tree, that fixes my bug without reintroducing yours.

Sure, that&apos;s the obvious middle ground but then I&apos;d also suggest renaming the method to something more appropriate.

I&apos;m kind of curious how cumulative SVG translations are not causing the same problem if present in the ImageBuffer GC. I assume we compensate for them somehow, but not for CSS. Will find out tomorrow...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880212</commentid>
    <comment_count>35</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-23 17:55:02 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; (In reply to comment #33)
&gt; &gt; (In reply to comment #32)
&gt; &gt; &gt; (In reply to comment #31)
&gt; &gt; &gt; &gt; Did you intend to accumulate CSS transforms translation components too? This is breaking painting of a few test cases I have (I&apos;ll try to reduce them to a postable state).
&gt; &gt; &gt; 
&gt; &gt; &gt; Are CSS translations not reflected in the layer transform? If they&apos;re stored as layer offsets only, then yes, this patch misses that.
&gt; &gt; &gt; 
&gt; &gt; &gt; But I don&apos;t think the patch itself introduced this breakage - the previous tree crawl was stopping even earlier, at the SVG root boundary.
&gt; &gt; 
&gt; &gt; They *are* in the transform, and I don&apos;t think we want to include them! Stopping at the SVG root boundary would cause them to not be included. Including them means that the GraphicsContexts returned by SVG image buffer creation code will be translated by an additional offset that SVG doesn&apos;t know about (and doesn&apos;t include when painting!).
&gt; 
&gt; Ah, I see - I misread your comment as asking for translation to be included. I&apos;m away from my workstation now, but at the time I remember convincing myself that all users only cared about the scale component anyway. Seems that I was wrong.

I was wrong, slightly. It&apos;s the call from RenderSVGResourceMasker::applyResource to SVGRenderingContext::clipToImageBuffer that goes wrong. I&apos;m going to file another bug so we can stop talking on this resolved one :)

&gt; &gt; Definitely caused by this patch.
&gt; &gt; 
&gt; &gt; I&apos;m going to remove the translation component when crawling the tree, that fixes my bug without reintroducing yours.
&gt; 
&gt; Sure, that&apos;s the obvious middle ground but then I&apos;d also suggest renaming the method to something more appropriate.
&gt; 
&gt; I&apos;m kind of curious how cumulative SVG translations are not causing the same problem if present in the ImageBuffer GC. I assume we compensate for them somehow, but not for CSS. Will find out tomorrow...</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>191761</attachid>
            <date>2013-03-06 08:59:08 -0800</date>
            <delta_ts>2013-03-06 08:59:08 -0800</delta_ts>
            <desc>Pixelated pattern caused by scaling HTML elements</desc>
            <filename>pattern-scale.html</filename>
            <type>text/html</type>
            <size>388</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGJvZHk+CjxkaXYgc3R5bGU9Ii13ZWJr
aXQtdHJhbnNmb3JtOiBzY2FsZSgxMCk7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOyI+
Cjxzdmc+CjxwYXR0ZXJuIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBwYXR0ZXJuVW5pdHM9InVz
ZXJTcGFjZU9uVXNlIiBpZD0icGF0dGVybiIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgoJPGxpbmUg
eDE9IjAiIHkxPSIwIiB4Mj0iMTAwIiB5Mj0iMTAwIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lk
dGg9IjUiLz4KPC9wYXR0ZXJuPgo8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0i
dXJsKCNwYXR0ZXJuKSIvPgo8L3N2Zz4KPC9kaXY+CjwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192265</attachid>
            <date>2013-03-08 12:10:34 -0800</date>
            <delta_ts>2013-03-08 13:30:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111587-20130308150636.patch</filename>
            <type>text/plain</type>
            <size>29730</size>
            <attacher name="Florin Malita">fmalita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFhYzgwNGMyNjliNzJi
MzUxY2E1YzZmOGRlZGZkOWE4ZjkyZGI2OC4uYmI4YmE1MjVkYTVmODA5N2RiYmJlNWVmYzVjMWNh
OTUxZmEwNjE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAzLTA4ICBGbG9y
aW4gTWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU1ZHIFBhdHRlcm4g
cGl4ZWxhdGVkIG9uIGlubGluZSBTVkcgd2l0aCBDU1MgdHJhbnNmb3JtcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNTg3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjYWxjdWxhdGluZyB0aGUg
cmVzb2x1dGlvbiBmb3IgcmVzb3VyY2UgaW1hZ2UgYnVmZmVycywgd2UgbmVlZCB0byBhbHNvIGNv
bnNpZGVyIENTUworICAgICAgICB0cmFuc2Zvcm1zLiBUaGlzIHBhdGNoIHVwZGF0ZXMgY2FsY3Vs
YXRlVHJhbnNmb3JtYXRpb25Ub091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0oKQorICAgICAg
ICAocmVuYW1lZCB0byBjYWxjdWxhdGVUcmFuc2Zvcm1hdGlvblRvT3V0ZXJtb3N0Q29vcmRpbmF0
ZVN5c3RlbSkgdG8gaW5jbHVkZSB0aGUgYWZmaW5lCisgICAgICAgIGNvbXBvbmVudCBmcm9tIENT
UyB0cmFuc2Zvcm1zIGJ5IHdhbGtpbmcgdGhlIHBhcmVudCBsYXllciB0cmVlLgorCisgICAgICAg
IFRlc3Q6IHN2Zy9jdXN0b20vcmVzb3VyY2VzLWNzcy1zY2FsZWQuaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBwaW5nVG9Db250ZXh0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlTWFza2VyOjphcHBseVJlc291cmNlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmJ1aWxkUGF0dGVybik6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVNjcmVlbkZvbnRTaXpl
U2NhbGluZ0ZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJpbmdDb250ZXh0Ojpj
YWxjdWxhdGVUcmFuc2Zvcm1hdGlvblRvT3V0ZXJtb3N0Q29vcmRpbmF0ZVN5c3RlbSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIChTVkdS
ZW5kZXJpbmdDb250ZXh0KToKKwogMjAxMy0wMy0wOCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8
YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdIERvZXNuJ3QgYnVpbGQgd2l0
aCBRdE11bHRpbWVkaWEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAppbmRleCA3MzM5ZTI4NTliYjdlNzVlZWE4
YmRlNzAwM2VlMmFlMGZjZDAzZmY1Li4yNDQxNTA1NjkwMTE5OGQyOTk2MWYxZWI3NWZhODI3ZDZl
YzgwZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlQ2xpcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAgYm9vbCBSZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcHBpbmdUb0NvbnRleHQoUmVuZGVyT2JqZWN0
KiBvYmplY3QsIGNvbnMKICAgICB9CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gYWJzb2x1dGVUcmFu
c2Zvcm07Ci0gICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNmb3JtYXRpb25U
b091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0ob2JqZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSk7
CisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNmb3JtYXRpb25Ub091dGVy
bW9zdENvb3JkaW5hdGVTeXN0ZW0ob2JqZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSk7CiAKICAgICBp
ZiAoc2hvdWxkQ3JlYXRlQ2xpcERhdGEgJiYgIXJlcGFpbnRSZWN0LmlzRW1wdHkoKSkgewogICAg
ICAgICBpZiAoIVNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKHJlcGFpbnRS
ZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSwgY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2UsIENvbG9y
U3BhY2VEZXZpY2VSR0IsIFVuYWNjZWxlcmF0ZWQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAppbmRleCA4NDMw
MjdlYjcxMDg3YmFlOWZiODhkNzEzZGYyYTJkMjY4YjMxMTVjLi5iYTA3M2JlZmM2MDBmNzk4Yzdl
NmU0ZDk0ZmM0MzAwYTMwYzBlMTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcApAQCAtMTY2LDcgKzE2Niw3
IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3VyY2UoUmVuZGVyT2Jq
ZWN0KiBvYmplY3QsIFJlbmRlclN0eWxlKiwKIAogICAgIC8vIERldGVybWluZSBhYnNvbHV0ZSB0
cmFuc2Zvcm1hdGlvbiBtYXRyaXggZm9yIGZpbHRlci4gCiAgICAgQWZmaW5lVHJhbnNmb3JtIGFi
c29sdXRlVHJhbnNmb3JtOwotICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5z
Zm9ybWF0aW9uVG9PdXRlcm1vc3RTVkdDb29yZGluYXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVU
cmFuc2Zvcm0pOworICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0
aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0p
OwogICAgIGlmICghYWJzb2x1dGVUcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAppbmRleCAxZjUwMWE4OGJkOGNjMWUxZjk5MDk3
YTIzZDRiNDQ1ZTAzYjZmNTc4Li43ZTA3YmRiNTUyMGNkOGU4ZTRhYjM5NmFjNzYwNjZlNDYxOWZh
YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlTWFza2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlTWFza2VyLmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIFJlbmRlclNWR1Jl
c291cmNlTWFza2VyOjphcHBseVJlc291cmNlKFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJT
dHlsZSosCiAgICAgTWFza2VyRGF0YSogbWFza2VyRGF0YSA9IG1fbWFza2VyLmdldChvYmplY3Qp
OwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIGFic29sdXRlVHJhbnNmb3JtOwotICAgIFNWR1JlbmRl
cmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RTVkdDb29yZGlu
YXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0pOworICAgIFNWR1JlbmRlcmluZ0Nv
bnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVt
KG9iamVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0pOwogCiAgICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0
ID0gb2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVy
bi5jcHAKaW5kZXggYjNmNmM5ZGI0MjVlMDYwNThiNjIwY2NkNzZjNTM2NTRjMTY3OTlkNS4uYTdh
YjgyZmE2MmEwNmRmMTM0ZGZkZjJkNDk2MDhhYjgwZTgwNmVkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNw
cApAQCAtODQsNyArODQsNyBAQCBQYXR0ZXJuRGF0YSogUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJu
OjpidWlsZFBhdHRlcm4oUmVuZGVyT2JqZWN0KiBvYmplY3QsIHVuc2lnbgogICAgICAgICByZXR1
cm4gMDsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBhYnNvbHV0ZVRyYW5zZm9ybUlnbm9yaW5nUm90
YXRpb247Ci0gICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNmb3JtYXRpb25U
b091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0ob2JqZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybUln
bm9yaW5nUm90YXRpb24pOworICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5z
Zm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVUcmFu
c2Zvcm1JZ25vcmluZ1JvdGF0aW9uKTsKIAogICAgIC8vIElnbm9yZSAyRCByb3RhdGlvbiwgYXMg
aXQgZG9lc24ndCBhZmZlY3QgdGhlIHNpemUgb2YgdGhlIHRpbGUuCiAgICAgU1ZHUmVuZGVyaW5n
Q29udGV4dDo6Y2xlYXIyRFJvdGF0aW9uKGFic29sdXRlVHJhbnNmb3JtSWdub3JpbmdSb3RhdGlv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmlu
Z0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdD
b250ZXh0LmNwcAppbmRleCBlMjc1OTMyZTc1NWI1MWMyMDBkMjNjNzhlMmQxOWYyNDkzMjM2OTQ0
Li43YjVkMjc4ZmU3MjQ3NjNkMmExNDYyZWI3ZDZiMDExYzI1Yjc1Njg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJCYXNpY1NoYXBlcy5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNl
Q2xpcHBlci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmgiCkBAIC0xODgs
MjEgKzE4OSwzMCBAQCBmbG9hdCBTVkdSZW5kZXJpbmdDb250ZXh0OjpjYWxjdWxhdGVTY3JlZW5G
b250U2l6ZVNjYWxpbmdGYWN0b3IoY29uc3QgUmVuZGVyT2JqZQogICAgIEFTU0VSVChyZW5kZXJl
cik7CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtOwotICAgIGNhbGN1bGF0ZVRyYW5zZm9ybWF0
aW9uVG9PdXRlcm1vc3RTVkdDb29yZGluYXRlU3lzdGVtKHJlbmRlcmVyLCBjdG0pOworICAgIGNh
bGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKHJlbmRlcmVy
LCBjdG0pOwogICAgIHJldHVybiBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHNxcnQoKHBvdyhjdG0u
eFNjYWxlKCksIDIpICsgcG93KGN0bS55U2NhbGUoKSwgMikpIC8gMikpOwogfQogCi12b2lkIFNW
R1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RTVkdD
b29yZGluYXRlU3lzdGVtKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFmZmluZVRyYW5z
Zm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0pCit2b2lkIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1
bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKGNvbnN0IFJlbmRl
ck9iamVjdCogcmVuZGVyZXIsIEFmZmluZVRyYW5zZm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0pCiB7
Ci0gICAgY29uc3QgUmVuZGVyT2JqZWN0KiBjdXJyZW50ID0gcmVuZGVyZXI7Ci0gICAgQVNTRVJU
KGN1cnJlbnQpOwotCisgICAgQVNTRVJUKHJlbmRlcmVyKTsKICAgICBhYnNvbHV0ZVRyYW5zZm9y
bSA9IGN1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRpb24oKTsKLSAgICB3aGlsZSAoY3VycmVudCkg
ewotICAgICAgICBhYnNvbHV0ZVRyYW5zZm9ybSA9IGN1cnJlbnQtPmxvY2FsVG9QYXJlbnRUcmFu
c2Zvcm0oKSAqIGFic29sdXRlVHJhbnNmb3JtOwotICAgICAgICBpZiAoY3VycmVudC0+aXNTVkdS
b290KCkpCisKKyAgICAvLyBXYWxrIHVwIHRoZSByZW5kZXIgdHJlZSwgYWNjdW11bGF0aW5nIFNW
RyB0cmFuc2Zvcm1zLgorICAgIGZvciAoOyByZW5kZXJlcjsgcmVuZGVyZXIgPSByZW5kZXJlci0+
cGFyZW50KCkpIHsKKyAgICAgICAgYWJzb2x1dGVUcmFuc2Zvcm0gPSByZW5kZXJlci0+bG9jYWxU
b1BhcmVudFRyYW5zZm9ybSgpICogYWJzb2x1dGVUcmFuc2Zvcm07CisgICAgICAgIGlmIChyZW5k
ZXJlci0+aXNTVkdSb290KCkpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY3VycmVudCA9
IGN1cnJlbnQtPnBhcmVudCgpOworICAgIH0KKworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIC8vIENvbnRpbnVlIHdhbGtpbmcgdXAgdGhlIGxheWVyIHRyZWUsIGFj
Y3VtdWxhdGluZyBDU1MgdHJhbnNmb3Jtcy4KKyAgICBmb3IgKFJlbmRlckxheWVyKiBsYXllciA9
IHJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigpOyBsYXllcjsgbGF5ZXIgPSBsYXllci0+cGFyZW50
KCkpIHsKKyAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgqIGxheWVyVHJhbnNmb3JtID0gbGF5
ZXItPnRyYW5zZm9ybSgpOworICAgICAgICBpZiAobGF5ZXJUcmFuc2Zvcm0pCisgICAgICAgICAg
ICBhYnNvbHV0ZVRyYW5zZm9ybSA9IGxheWVyVHJhbnNmb3JtLT50b0FmZmluZVRyYW5zZm9ybSgp
ICogYWJzb2x1dGVUcmFuc2Zvcm07CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDRlYjljMjU1NTQzZWU4
NTU1NDg4ZTA1ZGZkZWUwNjgyYjA5MTMyMDEuLjdlMTYxMjdhYTcwOTk1MDdiZTc3ZTNjNTllMjc5
YTZiOWI2NjFjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyaW5nQ29udGV4dC5oCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
dm9pZCBjbGlwVG9JbWFnZUJ1ZmZlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIGFic29sdXRlVHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIE93
blB0cjxJbWFnZUJ1ZmZlcj4mLCBib29sIHNhZmVUb0NsZWFyKTsKIAogICAgIHN0YXRpYyBmbG9h
dCBjYWxjdWxhdGVTY3JlZW5Gb250U2l6ZVNjYWxpbmdGYWN0b3IoY29uc3QgUmVuZGVyT2JqZWN0
Kik7Ci0gICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlVHJhbnNmb3JtYXRpb25Ub091dGVybW9zdFNW
R0Nvb3JkaW5hdGVTeXN0ZW0oY29uc3QgUmVuZGVyT2JqZWN0KiwgQWZmaW5lVHJhbnNmb3JtJiBh
YnNvbHV0ZVRyYW5zZm9ybSk7CisgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlVHJhbnNmb3JtYXRp
b25Ub091dGVybW9zdENvb3JkaW5hdGVTeXN0ZW0oY29uc3QgUmVuZGVyT2JqZWN0KiwgQWZmaW5l
VHJhbnNmb3JtJiBhYnNvbHV0ZVRyYW5zZm9ybSk7CiAgICAgc3RhdGljIEludFNpemUgY2xhbXBl
ZEFic29sdXRlU2l6ZShjb25zdCBJbnRTaXplJik7CiAgICAgc3RhdGljIEZsb2F0UmVjdCBjbGFt
cGVkQWJzb2x1dGVUYXJnZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgYWJzb2x1dGVUYXJnZXRSZWN0
KTsKICAgICBzdGF0aWMgdm9pZCBjbGVhcjJEUm90YXRpb24oQWZmaW5lVHJhbnNmb3JtJik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMjJhNTljMDBmYTBjZjZhNDY1MTBkNzU0MWYzODU3MWM1ZDczMDM4NC4uN2YyZmZlMjQy
ZGE5OWFiMDRkZDk5NzI4MjY3MmMxZjYzMWQyY2Q0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDEzLTAzLTA4ICBGbG9yaW4gTWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgU1ZHIFBhdHRlcm4gcGl4ZWxhdGVkIG9uIGlubGluZSBTVkcgd2l0aCBDU1MgdHJhbnNmb3Jt
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNTg3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLWV4cGVj
dGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1
c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBzdmcvY3VzdG9tL3Jl
c291cmNlcy1jc3Mtc2NhbGVkLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAzLTA4ICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBbGxvdyBwbGF0Zm9ybS1kZXBlbmRl
bnQgc3RyaW5ncyBmb3IgdmFsaWRhdGlvbk1lc3NhZ2UgcHJvcGVydHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vcmVzb3VyY2VzLWNz
cy1zY2FsZWQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC1leHBlY3RlZC5wbmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWFiYjEyNjVmNDlhZTg3ZTliZTBmYzU1YWRkMWE1ZWJlNmUyZTk3MQpHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgOTkwNQp6Y21lSTJYRiF3NytPOShvVklma2FTIWU8WjNJZDgwa3gmI3dLJmU3
UGs1bURyY1o5JFM3RFMyJkJHT2JBZitSb3kKenNpNyllaWxVVXpSZj5lckM2cXZOQ2deZ257aGZX
enxMPVV+KlBGYSRHVmpiWSZ2VzBgQi0rUzhYRnV5PFJ0TjtMCnpVLXo8PjI/VzlAMClhcGdFS3FR
VW14b3NaOThVT1lCbTVrMEk2MWljYHJtP19tUXk8OHF+eHNOZUJJZ2N3RVQ1Pgp6QztNfHdyJSY0
fUQ9NW1IYn52cjwoMXFTPjR1T2IzYmhSfEUxKk9sQStUQmx8M0ghYmJYWn5peDUwYGkyXygqSXkK
enxNb0BWPV4hMXJhYnU4PFlye2ZwQVp1QmUmbz4pfHlPU0R1ZiM+K0lkVEMxS3hyVFV1c05edyN4
KypNTyY4fCEhCnpqMG8lX2xKSmRRTmY8JDFFJVNTUzlscGI4RFF0aXRlNz1TYEZ6OT5RUGkoRy1g
Y1o5RlpJUk1GZ0ohdk9LTVdQfQp6KVZQalAoXkNfQSFgKXFxMFYweDQ7fFlhOEIxKlVyNUo9PTco
dlhPVEokdylpQnk9QXtMQHRzRSF1aGxUM1NsOGQKejQ+R2NpNSkxbGJAa2QtYD1STHt6eHpSPz9m
QzJvR0smNWlwNihfN29SdnJmeHVWITJuMlJ+QUYkcURPMjlETDJmCnplWCl2ZCUhOHdqblVjME11
V2wrPnIxaz89eHN3S0lfUV59KUlEOXFLYngwcXleQ281Tmh6WjUpNWF6NX4/M1B4bwp6dXskXz1G
PHhqZDdfbGFWYklgOVRORVM0UGRXSEM/T2hpRjBuJm1lVHZIcEFPKiQ8ZS1ufUNONTZgQVkqTTBy
Y3oKeiViQytodVROO2NCcFQ7YD51V3NYSFFqViZOdFRfe3sxRFdBdClDZEc5XylHOVg2P0RBWXdn
YVJpY3lXSSRjMiE9CnpCX1YtSmFNJXFhT0hiNjdUU31hZkJQUm9wcl5YUiNeKi1USyh8U281THFt
aENHX31DI2pae2hhSj1NI2h2enk3UQp6dUNsUXtZbktZVkoreyheKkVRSUE2PndpKV8wPkFeV3VO
ZXs5TXlNYklDcmg0cTF2MCRAXjxQRD11dDhBPUVHRU8KemQ0QWhFdWtFKHdMM0cyMXdYTkRhQEFx
WXQ4SVV5OXZWJSo0emZBMmJiMn4pX2t6ckVWVjBuZSMzVHtiQUZCPlpBCnpLc1pyPFl9LTRXQ1gy
e3YmQV9gVzNnNDhSYjEkPiZUUEFNTFp1KStqdkZDc3FyOGlqQ21XMmUmbEtLbl9UWkEwPgp6Tz83
Zip4fj1gRjg3czRlZmp1JUFxdX5pPTkoQHUtZWlzPVA4aGV4MyEtbmUwNWJyTjU3dTF2cmd7fmRL
U087eXMKekM3OE42YTZsWDE7TzlaVkhiKkskalFuZHRLKEJuKXNzXz1KWV5sWGFlQFp2fitNLT5V
SSQ0Q0djd1FrQ1QtTTF7CnpJU3xVSm9JckkoZiVmcGphaj4/IXVEJShXbiVnZl9ZLTM/OGF1MGsy
NWZ6SWdZT0I9TD9ReT1fTncyZF8tPFE1Vwp6OVBeZHZOJCNtWjlqOD89M0ZvTDgraHlBSEJRKGU+
bHl7a00malA7YyFiSV9edEBifG8jVm17M3Zjc1hBSz8wKnwKejl4dnVqb0BsbVhranpWOEs8KzJ6
T1dyRkNGaDdLbT92WGk5SFlqSDZ7Y0hEeFYzNz57MWlSeWpgMTEmLWUybG9SCno7KTJJdT5xfHQo
SE1zN3dyeW8+MTNFeXppIWU7KnNZMVkzU3tTfUBVTT85UjghcyVKUzg0dCU/a2FWSjc1WWEhIQp6
aVg5STAkZyl3Zj5abT9FU2MmJXJxZFJ9VDB0Xnd5eiZQcEdkQzQ2KyZiSWlQSj8wOz8rSGdBUDkk
cShUcEJxfD0KekwzJWFYJSMoVnlQPEpwU3Z2WTB9TDx1OypqQkhhVGJmTG00X3s5JUBnJTM4MUFz
bzxtUGgjajNRR0NEMDRSc1I/CnpFQTE8PmRDO18+czA9P1pzKXBHcWp2WDUzWj9vTj1LXytoP0Rl
UzVPRzF+e2JAWGtWVU9sKVNgZj48Qm5vMmFENQp6JG5gLX1qWVJTRzg8YFgjZnVNTDhsYWJ7ayM8
YEp8RHowLU9ZdEohUiowNzQoR0d2fkkpeTtuMVQ1LTBwSnA3bz0KejZAQ1hwaDl1S1l0MCpPcGFw
a29QUT9iZ2h2VnQ/XzdDU2BadlJKREYkSl9oRndiMHg7VSQ7RktNZGZDIzc+dTF3CnpmdGg8VEdl
Z0ptWTQmfikoI0N+OWhqcnNESGBnZ14raztjcGRXbkQ0NlZgP0grJnlZWlVwdXpkYnYkIyMmMEBi
Vwp6KlVjNm0odXNyR0FZV2twP0czcj9UblprT2RrME0rUFRaJCgtOV9vfns8QWczSlgmQXdSQ0pq
QDhrXyZYUDkxcUsKenIzOE96dCNaJVlxajBjRSlXS0RAPntlLSk4fnZqNnhhP1QjcDkhYUJ0MClM
ZzVpQ24mUyVgWmR4aTFYZGk1O195CnpnKXdFbiNFK0YtX3N4MmY1PVopV0dVRUR1UERGdUowWkh+
NT5kQnFYcGtpMig2OWU/WWtecSlpa3VPSHx5TCZKSAp6cTFvMj4hQzgqWiRFaml7Wl54I3I/ajw5
endDMl5UMVZkUyRpPGdXd1paI1VCbyktJGFlT3FZWjI7Vnt2bmlfPj8KemwqTHR0PFdaZitlV2ZD
ZE80eX1vO3F3aCY2QnVNbTFyWSl3Tm14Jj1ZVn1JU3ooM2p9RENxTkVEViF8RkpfKnZfCnppczs0
K0B9dyRmJW5RQkgqVlJMc3NNNXZOV0RVO0x5LSFlODBhTkkmWXt9fnJnKkQ4UEI0X3FYKHxxUFRY
dGRNVQp6Iz9iZmBwKj9ATG95RG96YE41eXVmM1g0YFBDZj94dnJQdFA/cGRHYFFIQkFqU1pLQzgh
RVhUMWotMWMwQ3Nnej4KejNzP3Q0UFQ3JVJCfVF6fkRnOG5na2BvZ3BgPWxqfmtsTy0jKnJMfWJn
bn5KcyU9fStteEp1OzVWSGQ1KCY8JX0qCnojdHktSyU/VXhTXk47UjgqfUt7USZpeXpOYlBoelhK
bF8wO2gyLTVQZWZNfjI5eHBFZikwMkJoYUhzdnted0JZfgp6ZU18IUJSI0U+fUhWOTFwVW5EcU8w
dHptYThuTmoqVkdvMngrMmYyRjhsQ3ROWXRiUmoxMUhiXjxIdF4yX2BCTTgKemE4MVg3TXIrPVgr
YiVGTHJgUkF0PzR7YVpLMWxPaXtGK215IV5mJnpOckdhRy01cX42e1ApWHxrVz5IdVNjWGJLCnoy
WHwoR3wzPj99K187UGZGczcrJVMkVXl2S05YJkk7Qn49OHB4XiY2alp6IzdiYyNOQlFXakBwQXU0
a0ozZ2kzcgp6Sk5PYlV3cSpYbkxUTjZ9Q18oSik7QHt0elVLQTcqTkVnOTNTMzZ7QkoxR3tuI1R4
QUQhOW1+Qmp1aHVVcFVmWjYKel9aVjNfNkkkN1UkZjNvQ2xUSmpPWTFgNlc9ejg0c3VtflotY2FK
Uzc2fnFWUjFxKVc3U2xPfVJ7WV8+Kld8bWBmCnpSI0RPVHNRM3gwTlVDP3IodSl6e0pzPmRPV3Jv
Rlg4MnV3dUlUNVM1R298JTZzMXwlQHpCUUFMby1uYVVVTzxCUAp6QmomaStjMktLPiQtVk5qITRj
PEVVbUplVG1CQDg0ZD9mcW5AdSRvUHJhZTRJYWYjdjxIPkVGQ2QzYWNHb3whJXQKekQ3KzZFI1Zk
ajk3RXBLS2J8MlI3c3FxNjlaT35OQ0BeSVBSdEpxdWc9VlYjd2NOX3EjPzQxZWM5c1YmemVURl4h
CnpWM2BXMnVNIXQpNHVjaUY0MzJKOzJhPD0mU357Yl8oQGpkZ19BTyp5UFYxLXs8U28yNjw8aWRa
bnNOQVhgdCUzWgp6X3J0O2BnR2liT2pjZGI7c1BrS3I+ZkQkIT1DazFpUit4VEp3dncqQzV5WG4/
I3RFTk9gPGZNI3NTWWJEeXF7LVkKejVYX007Zyo8MnZHVz9hRF99OGZJZGZMSWp5T09wV0JtM2FB
eGp2QlhPbFNjK00yWU1UbFhNbDh6OHk7P0dMT2MmCno9OD93M0g8WDYmV3ZMMjtLRU1pd3VYeTFK
YVdFIXYtTlpMKF5Cc3N8V0Y4QzVMbz18cnpDO1RuS3VveVJfQ0ExVgp6X2dmYWRRTUVgKSZvbGgy
dmtMcCh7PDJ9SWkzND0wSjV6LSt6MGIySFF9biFOLU9AQ0BHI1dEMEU1ZnRWR00+ZjQKenY7Ji1U
b285JT8ja3I2VVkzZDx0QnEkVjBMJFN1bjU3KncjKmp9Rkw2KkNsIWhPeWtmZ2VvMXNwPiprc1Q+
c35mCnp1bC1+UzteM2ZxQnc1Rz1mUWRQYF43KWFVT3hQRCsqKE0+ISVGbiEyV2BhZXBkfXFPcGdK
YHl0WUd9ISRsbUAtVAp6JHU/NytqPEFVXkZQeDNkQmRmazt3PD9ZcjQpJGA0bG41aUpQdldgO2c2
RVVGYjg+RUMteCYlUyUkUDZfd153YXgKeiE3fXZxMzVldWtKKFUhZEwzVCRteVU2NkVIXnJaTW5N
XnViT3lDK1ZLS3V5WCp+OXVhIz4mVXNyVHYqNFcjYzIwCnp3ezt3bkNwc3c7KllNUlp6NHBlTXtW
QmhRSGt+SzN3anBlVkp9bnQocVhOKTlZJGtwYGtJPj50S1cyQzI2Nngtcgp6WVVtJGJ7QTFWUEpm
am5Ze1krdGRYR3gjMilsbUVQSFRNNFU3ITNjNmRPQl5Zb18yO1Q2NnlvaVZnY01UdihGJEUKek5R
X082OEtuZ2VAYWwjcTlnX1F7UFc4QWtpPU1vTUpmPlJgO19oRTRwRiRoSEJZUyh7UEMpN1cyaX5i
cUhqQ1o8CnooPD47djd4RFd3SlIjc2E+d1N6fHE9SntucnVDZWpSRjsobW1+flpEMno1Smt3VXt+
Yj11aCNxSW5uYGdgP08oPwp6dFJmIzZjQjQxKztjU15kdk1TdDdUU0MjfiRSYih2UCN5fSZAJkFg
MTFLbW1+bHgtSDhseV40aGR9SGd7bXRPfDcKemtHTCl1cWRSaTVXeVFYRjxEMT5LR0ZoWUBFU0Ap
bTJ2eShoRDxuLTNRJig5flFzRXdqTyt3PFNuZCFEU3I0YCpgCnohRUBWfCMqRlNGOT9yVF9fdFB3
VFM9JFFpbmZuYG5jPHhVJjJReyNaSyVYXl8lJHdhPW5TcUlkZCNpeno0d1h3UQp6d01aYFJuMUZw
M0tjOFViI0RjeDB6QT8rODsrfUNkeCZKeGxuTTR8RDJfeT5JUzBpP2Aobk54dWB2KV8kVTFQbm4K
ejF8bytRZCtXV0BsVFdyb0hqQSVuZX4xKipiNj4xd3d3a2YkPWZmVU1aXnY/S3tWMUBZZ2g0UFU8
PlAxJUNNYzZoCnpjU0gzNj1ubUNjZUxoRHdrJlVYUG80NjNOS0RNTj9KXjV1bWJVenheMVQ/JlY0
ZV97JGZPVExrPC1fXyE/SDhjVwp6UmUhKn45flV0KW4mSlIxO287UGwzbHxpXl5ONE5fdHtAcDhk
eWVDUEwqbzl3eHJxUFh3KyhVXkdlXzhmYXRtc0MKenVrRnd7RFIyTmtUdSZHJGREMnBlTDFrKmoh
ck9zaUZLcT5qS285YCZQRWxlSShaNSQtVVQpdDVTK31hSE4ra0NKCnokTUx9fGUjZGByaiMqWm9s
M1ZPLWApbVhedzFJc08tPzxYTXUtQiNpdnNuTEtUTGFvS1I3e2dkbGIzSj8pJl4zVQp6KGpaeX5X
fmVyK00oTUFAa1Bwd19qOFdlWGR4JHtnI0d4QHlkdT5DKXIqMDRGWElsZ0JsJUEkR2tmLXB7U31A
YE8Kekg9PkQ0c2JKdylEVEt1VWBLWmpjby1SUjRgPWVvUEYyRlImMC1iSk4mQDhrazt0Vklrayt8
S2wzOEdXY3JHU2k0Cnp2Q1VBMnAqKiYlTnR6SHopa3k3MkFWNXA/VGBHaGZsZGFhR3gwK0w5eTZZ
TGVJSDU3cHt8QyFwYlBYRXcxJkRtMAp6ZThDLXFYd3RCQyp1dlpRe0pAcmgjYktsaGpYQy1zRUM3
VSpCMjRiWWYkX2FsaTF+e0wjUlBlWUxwS30hUzg/QWsKek1yYWhSSW4hcm12Vjl+MjslSkVFTGJN
YXpHI25Va3ZlMX0+VGBqKmFxTHYlNj1oTUg1XiQ0UnFlQWdlZz9LTzw5CnpfenEjWWpPMyNHdikr
THxqbGYjR1NNWDZYNGBsTExnSj91UmctdyU3blI+WX5nI3lMZFd1bHVrVzJiSDhJYTtBZQp6PF5Z
Xj4tYmRBU25EVVpQQ0BhS0E1OXV1dUd5Qzx2S3k4US1YeWQ2Jk9DfmZ6KWg4eVFienBBWUFaK0Z7
aS0rQVUKek9kSzN1VXYwVHReZmMtUTheMTM5USFfX2pmQyExPmcwQjI7MHl6UF5Ofjw1M1IxKCs5
VE44K3ZhQWZuaCVifkF0CnpyUUlAVGpHKFljMypDZEkwVH5RZ0lFRVhuU09eKW8rWkVQcHQ1T249
ZmxPI1pXNVYyUlQkX2NDIyFLJm00NjhFNwp6Z3E+Z0UqU1dNayVmPG1KJV4zQ1pGc05RNHszSyt0
YGFqZXg8UkItNDZufVJ4dlk3JGRhT3dpTmIqRTlWUWxGKEUKekxRdEF+YlVwX04qcXlHcjl5bTBD
TVZoUClCWHp0eDQ3dDNBa01kRnxBVi1zZHs7OTtyX1pYUWEqZD5+Tks2Sm9sCnprKi1qSVAqeEwk
S3gxbDY7R3ZFJEFtQXNHS1dUP0xHVmc7I0dEUSpecCZIMHljbVIkcmA5JUphSklGKyFKMDBTVQp6
KiFXbD5rPEdUfUBVPWt5ZmhUXlVoK2ohJDVKTkJTRVh+Tj5jRm4/RzNoZ1JRMitPfCtNb2d7RzN8
K1I7ZHlvJW0KekBiNHhTSyRhSGNMRXFXIWZUSHV5NGgmK3B2X15xOzFjXj09JUBvbUtGRmRrNjFR
ZlJqN2xJVTFuK243dDxVbkx8CnotQyFueGVve0JfcUxyMFp2Q0gkenlDUUooSzF8IWR0bVdqNj1N
TndsRztSbXIyRDdIeW94JUxRe3xiPjQhM18lVQp6RkpfRWtZPjJSbUJCa01ASUhzcn5rWU8rZm9A
N157anVIcyZEKTxRV288bj9zJkooN0hUVk42fnwzJWd7RDFzbkIKeis+fncrSSUrNCkwJEQkUlA+
czcoYTJARW1BQ3FycFZ4VjVLazxBVnpFflVVcihje0l6P2VrJWZKJUheUj9+RmIpCno0Mk8pZ2By
PzlhfDNeOVlHY3JOUjwzY0dtWnFFayRHY30rfE5OPU14JnctK0Y5fGJaRypBPkFHVnRCejM1Y2V4
Pgp6PzBuMzk5XzNPRiQlQ2VqeiZnNHI/RkxsdDl6Skd9KUdCT1VuPT9oLT5HZldrd0lRMkQ4dX1F
fChgQz5fN2dWTEQKenJGNWlWM1E0ZipNc29jfWppZUN7N1dZRzlrVjF4alprJDIkdTBWbz45PnVZ
fFFuNVg/OT1ZRHc3eXZwfnhRRmozCnpVPmRYNW1LYG1pc2BYWlZaVlo1c0ZNdiNOOyl1U0BaWCNJ
SD5xaWgtQlgkbFQqcVdhZz52Pkl3ZEY5KkNGQTA1Vwp6O047eVE+e3BYI1k0fSEqWnN5I2RJY29J
NUM4NjcoRF87c0M2Zlk9VUA/b0pJJGR+YS1KWGRHfT9EYSE0eD5VcG4Kek16a0tzd090T1pKd0s1
OG87THAkej5JbjQ7VEtYNl82eHtJdWJjZ2Z7ZDFDZzNiNmx4SFZ+ZjcyMnVDZ2E4SyZICnomM31P
KUZmdT1CUGZ9IXFYeHk2PW5POEJ1XlYpTUhVTkpOUGYoNnVGZGUtSEwpVnxeXnVXIWpmUHcqUWN8
TmQ0RQp6ei1hYFJvSXswLT0+fGFWWTlTd3FXdDRTSzQ5TlchMWR0Slo8UmN3ZFNwZTRwWXR6V1I9
cTdVflk7VD9ka3NDMHAKekZYa2VVUjQmQSVPPD9XdEk0UVVHdFpyZj5qWGl2SVk+NiVvN1Q1UCok
VHhQcyl7NjBmTE9KaXk+dzBJOD0kYCl9CnopJV9vc0dzaXRlWlMlK0RacCsreUxqQX0zKDtIb31V
OWttQD92eCRASiRBRGVES3QmWjdEbGkwaEtsaU9WTHhKTAp6I18hOVdQU09XZXombFdFSzQrJlo5
RExrSyt2JWNgdnRHeCs9ZVhBelEzRGMwcHlJUnBeVDByKHhTdTF+Wns0fnoKelB0QVFXRXNJKTcw
ZHFKK3YkQ1QzP1RqVDE2PHV0OTV1R2J4SyVJRkVqSEVqQ3R1UypzWFU4cVRCWD89M0NMQmZ7CnpJ
RndgX19Icnl3O2d2KSNxWENRREg2UXs1ISsmKEk3bHFNZ1hlK0J8dC1mcn5SVCN5cHI7ZlRrdy1+
LVdJJDxaIQp6YWVhMm4jSEIhZlA+IUEyJXh2YEB2PH1HUnU4MEpCUS00NWFYRXZWZF9taCRDNWNw
fUdgP1VeIUZBTi1+dzEtfEsKejx9PmZ0bzEyJWRuY3BqI1ZBYWZ5P045Q3BFUj9YRk10eDJVU3t3
T013ZlNrKXhSNTxLZiF3PClIU0B7I0BEd3JECnpAKjZtUnNlbyZXMnN0bjVoSFNveTMybTNZV0lG
UHVJOzlpcGxOU2Bad2spZF96Sm5nezM9NUcwdmZQX0E+b0FVKgp6cl51P1UrTEpWcS0kUW9CSyN9
Z1lsbU9SMHN1RjZKUl88N3FAcjgwbWhAWUBWaEFyPk56TiRUJlIlJVoxbXB1MTUKelBhKnMpQl4m
VG4mSjRTQTxKRysjQDF+ZDBLeVpMPSZBalJYR1V2SCtyMnAodFBIOUdJVjdOYk01ZyRhMSZYck09
CnpSaVBQZDA/cHgpKChSJCVjQ3JHamxOZnBhMz41UU07N1YlTy1jP1lZKkYwQ015d3skQ1g7RHtN
KC17dzIhdm5Lewp6OUQpejs2UEI2dXtZS09UKnlzKmlydEBrU18/ZCQ/ITVyQU1CVERyQEQodG9o
XzFuP19uMzZaZ3gzPC01SGFRK0EKend9VCE9eyFwVXFPV198SDRJcFdmWnh5TnEwKzxTN2dRT1dA
b0hXLV5VRkUlNlJVYVpscj13R15Ce0h7VzJUPUxOCnpsNyY9ZlN8YFAyMSFjOGw0RWlgbGFFYio2
dTNud0EqO31SJDFlM1YjIVp4d243cXZENXE4Q2B+Xy15PnhETDxRSQp6SVU3PENyZXVKaiEyRWA3
RjRrS29VNCktTXBDcXRfU0ttSjBJKEZpVDx9O3FENH1JTldzNmQ7b1cwQkhSLXByVVEKens+a0Yp
PHxTKnUhaiomcFNQSClMJkBNP0JYO3RtUkNpZUEzdzdrXk5HWThha1VtS3poaWI8bFFSTExsbGVz
QlI9CnpsOVZsdig1N2B4Kmx0KUs0T1YzUjxFIXItNGFKb2J2O3dQdEBePFNDdEViMXZMbTExNUNs
QiVEaThWZ0sxZ1lSWgp6dShDVnpEU0NFck1sZHhxYFkxe2NWNCp2RkdPfGZeZz4taVcmQDwzMWRO
VFp4WXlCTUtDJT17czJAbSZCcig4VUQKem1JYCpNWDtGRjEyQTE1fnpmZTk1ciZwdDBiQUNZaD02
S3tpaGV5S00hMl9NfGlYJmI7NUp1RTVGTCp2fD51UkteCnp0fkhzYCRsZGtMbmIxVmpAcEI1SU8z
YUk8UyRSZF97LUU0eG9ZU3Q7OXN+eHlsK0wxOEczUjNnI0NBYnlhYFEobAp6Ny1gVUA9NDhOWUF5
WWleSTVsYz50OXNxJHhCSEEqPikrRFVzVD0mbHQoa3YqPzMtSTMhPmB6cVBTfVNtYzcpYzMKeiVZ
dFZBWGxCQz5zMFczOGo8WCRna3NeZUUkYWdTb3tCQnVVQmo9YDV2O1lKdk1lQz4+K2Vhd0lLZ1dP
V2xUfnFICnpyZmBLP1pDXkRZN0VJWmFeRXZjUWdBLXJwdT5RVGFoWEpJI2BCS25GZU9LSUImRHtG
VUUtIVZidUpeRlNMfCFUPQp6Uj5jY3wrcGN7akE8R0tpZUN7ZztkaDlzZ0EkPlo3YlhKSSUwT3R2
SCkkdiFRJnAxPHZZS3B9WEk4aFNQcmFDfl4Keld8V0Ahe05feW56VTNXVkUzQj9JOU1hYnpkLUZF
UFh8WjRmKWp9akZHMUZPMk45N0IkRHYjfU97ek93ZHBYTn49CnopUiZ0czdIeXJxTG5jN193M1I+
QG9DRmMkK3V6Zn5zM2VSSUw5ZWBTXlBgZjNxMntLNHpza1ojXj1rbHhSYEZeYAp6U31eeEI1MiY/
bUpZY2YtWnF0fmx6OGZTUyF4KXc1a0Y0UzxYTjxZSGNaNmphMi02R2dYS3xLciVMUkBGcSFlTEEK
ekw7Q0s/YDVmQCZJaVN5KmRiPVFSXlI1bHBHPlYybm90fShjMGFffGhzMntURGt0QD1NSFp4fm9U
WD9eNEo0Pm9xCno9WHF5ISNwaWMyQnFXMlQ8NiVWQj9KZUNXRE4+XlBPLTJPSyhPLW1CI3MpdEw9
YFNvI0pRZVRmYT1DaVdoOFkqbwp6SCVgTHF2KE8ydnxEMnR0KD1RTk5KdyZJVmJuRl5NNXZzYl9u
NHRXblBBMzQ2IythcFNwRnNrQjt+KlgpUik4OHsKej1rcWNHXndnN2V6M3N3akAhOG4zeVZeQVpV
NWZyJipoPUZZd3gma3lvUFcwNXpQcUZJO140bmlTSmcxJkV7RjkxCnoqOEFUS19kI0MzZU1ucG44
aF8lYE8obllVeSRFKllUN2BiTDUlNjFLMH5GZ0RGVkk3Pnl5TmBoVkIoZj5VPiYmJAp6SlQ9Mit6
SlFSdGBgNlp5ek10WmxUP1hJYW1VOzc2ZXs+eTZ4YzxkKlRmPGlvemhMZ1EpPzF5Vlh1eXNhS0o9
UmgKenNCYlFPKnRgaFBaRG8xKXJiUUgreytibmkmIypZUnQmOSN5X3A4VG5EKDc4TSpIJktzcTRq
SW5jaCZmMDJBeXI2CnojVGpncXFvcmx4U14jK0czJEpjZys4fTsxK1UwcDUhMCZlSzk+ODRwQWRr
Z2VwS29FMXpUMCZnRTJ0ZDc2cVVJNAp6Y3E5dzlhPGNfNCU/VSMwU3I2ZUAqc216NkMyellRdk1i
aCpXPFBXel44O3RScWM/IX1iPXByV14qMyVUYTN0O3oKens2bn43TV5vZkVpI214QWlAUjRNP2J4
ej0oOXF6NSZXKDxURCpjTX5SbEJHMHVuUiZLZUJqb3x3VSQtU2pvX0FiCnpBUH5vYnNJaD5pbyY8
UnJJUWxgOyRAZjFke2xlYUk8MDZvdmQoMEVYVmA3Xm4yZjl3fXlVPGNJeCF8QSltWUlOJAp6dXZj
ZTVUNlVTJSN+VnN1MyFeRGhscG9hY1BnUTNAbnQwdHJYdzx1MUFIPD1yJHp2TmRFWH5BZXtTJWsm
dFVKdFEKejZ9RER+NytnXz5kQyUzNGcwdnUoemdhdW95OVAzKm1aR295dDVySntkajJ+OyMxNEt9
eFE0OVJncWV4YjdKMW4oCnpSbHI0UzB6QUdxQiE/SHxnZWQjSHtWX2M/JTNwPEBvQEoob0ZRPFp5
cH5tbXxYNn4hPz1YLW1PS2MkVXMobn5HPAp6I3hZVFdBbVY3UUJDNn5WcHNfN2sya1RlNkdrKEta
eFB1e0FCWT45KzFKKDImSl5eLSNIMFN7S2ZgQXg+VSYzPiEKemlfOWA2aVR3Pj1KeW1IZmFEeTs5
bThFcE5FKCQ3PEpaQjdDTHBXLShgKUZCc3tuUmRxdD1DcHcrTnxIKz8odzlsCnpsNmVqVmxpTnp3
RGNgYXt1MnlzS2E5IUEwcG56fnt5QlNzdmB2Z2RAa0BJcE9abS0oMm9nM1RIJWZPUmQyWndsUAp6
YnVjeX5NUWM5cGZFPCFlbCpzd308KiUpQCU/fm1oZGFzWVhZSlBtNnVGaWFgPHVKPHJfV1lkdCYk
XyQ9WU1gSVkKenNXNkFEZipFPTx5fSpUI01LcyF7anNhKyFpb05vTCtVYmZYbjhQUXt7Yzl7Mjcj
R29LSXdqU0pnRyVXcERyS1UrCnpnYHpmVTJUakBEdVR6Jm8qfj1nTWc1M180bHFWJnswQ1cxdV9+
UWlJRjRhTSRQSXgtSm1VezQjIVNAWEt8Ry1gKQp6YGhOa0VWc2k9c09xMFBTbz42Pkt7U3ZXalQt
dDFmN15PRGpUVFY4bnR9amNwXnptdyt5QDVURDl4UjtoMV92Tl8KeldrbXBjazFpQUA/Sn1lbklD
X147SDZJayM2RmxEPlkyTUxQMG9KQXw1bWZ4aCM/bTkxVWAzRUxnPDRCPkdSPU9uCnorUmA8YEFY
K3QhdT1OfClSKWxaIytaOXAkTmhpbyhxO2woNE0mYjNxPjlNPkREfSZNMHw0Q35YRTJkdmYxOHdv
Sgp6KDRIUkZEVE94QTx+cFpuMGJlJF96d01mI2okSGckIz9NbkFCejc0dEM7VTNwe3JOYF5FSWx0
YmkoTkd8JG58dzQKem9qfjVfZ1kjTEBGbkBjZHojMEJye0A9OXJvODlnMEE/QmgyUkpCbE9MZUpC
bmtndzxnd0lGKHNhekhOdnlmVXF4CnpaVT9wKj5EU0pre3VHajl3aExHaSNJQFA1a3dCUSpTM2tZ
eW5HR0NqYklWdC1SWCZLO2MtM29Me1p3Wjl4PXdKMgp6UGVeZ2BWNGViYWpVeypPe24qSUwpTUV2
XnM4KiFuZmdwa3J5aX58Y2MzXmxvV2hUe1RuSVA2dk0rc2UyWD1pNXkKem82dkktMT5KX3szQVph
dSFRVCREK2BDY05mZVJDPD0tQDtRKTlhZGdDQW8xKVo7dCo5Tkh7MkpDYCM/R0FgYX5WCnppI2Zs
LXpgTkhoKFM+ZkFILUtrQXFyNCs8ZGMyNVhQfFNleFVxalZ9Rk9ARUY4eWNvPiV5Vn09ekZHbWp6
U3dLfgp6WjByaVlxU3twIWNLSWdZM0lPUGFXNT1HfXRtSXxreHFPYXMmS0M1dWRhYkFlME9ET2Uo
Jih3U0F4a0NxbG5JWGIKei1OP0t0TUNvJHlmV0I/P0FIVn1RNStaKiFRTX5xJTJXYDY2XkJ0V2Bo
VERBJDY0T209YW0tZStfMj1mNCV2KWd3Cnora1AhUkpFYmZQa08hQ2xDJjFpWXlaN0lsTkJ7cDxf
KXFeLWBoUl4rYVdvRVhtJD5oUE1BPVdFaENwPCs0WVVkYApIQXBpVmQ+akJkVgoKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mt
c2NhbGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOGMzMjEyYWFiM2YwZjA3YzI2OGQ5Mzhh
ZGM0NmM3OTEwYmI5M2FlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzNCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MQor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjEKKyAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg0NQorbGF5ZXIgYXQgKDM1LDgpIHNpemUgMTAweDQ1
CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXpl
IDEwMHg0NQorbGF5ZXIgYXQgKDM1LDgpIHNpemUgNTB4NDUKKyAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMCkgc2l6ZSA1MHg0NQorICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDM1LDgpIHNp
emUgNDAweDQwMAorICAgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCww
KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4ge3BhdHRlcm59IFtp
ZD0icGF0dGVybiJdIFtwYXR0ZXJuVW5pdHM9dXNlclNwYWNlT25Vc2VdIFtwYXR0ZXJuQ29udGVu
dFVuaXRzPXVzZXJTcGFjZU9uVXNlXQorICAgICAgICAgIFJlbmRlclNWR0VsbGlwc2Uge2NpcmNs
ZX0gYXQgKDM1LDgpIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4
MDAwXX1dIFtjeD01LjAwXSBbY3k9NS4wMF0gW3I9NS4wMF0KKyAgICAgICAgUmVuZGVyU1ZHUmVz
b3VyY2VNYXNrZXIge21hc2t9IFtpZD0ibWFzayJdIFttYXNrVW5pdHM9b2JqZWN0Qm91bmRpbmdC
b3hdIFttYXNrQ29udGVudFVuaXRzPXVzZXJTcGFjZU9uVXNlXQorICAgICAgICAgIFJlbmRlclNW
R0VsbGlwc2Uge2NpcmNsZX0gYXQgKDM1LDgpIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jRkZGRkZGXX1dIFtjeD01LjAwXSBbY3k9NS4wMF0gW3I9NS4wMF0KKyAgICAg
ICAgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIHtjbGlwUGF0aH0gW2lkPSJjbGlwIl0gW2NsaXBQ
YXRoVW5pdHM9dXNlclNwYWNlT25Vc2VdCisgICAgICAgICAgUmVuZGVyU1ZHRWxsaXBzZSB7Y2ly
Y2xlfSBhdCAoMzUsOCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwMDBdfV0gW2N4PTUuMDBdIFtjeT01LjAwXSBbcj01LjAwXQorICAgICAgICAgIFJlbmRlclNW
R0VsbGlwc2Uge2NpcmNsZX0gYXQgKDM1LDgpIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09M
SURdIFtjb2xvcj0jMDAwMDAwXX1dIFtjeD01LjAwXSBbY3k9NS4wMF0gW3I9NS4wMF0KKyAgICAg
ICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJmaWx0ZXIiXSBbZmlsdGVy
VW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0cz11c2VyU3BhY2VPblVzZV0K
KyAgICAgICAgICBbZmVPZmZzZXQgZHg9IjAuMDAiIGR5PSIwLjAwIl0KKyAgICAgICAgICAgIFtT
b3VyY2VHcmFwaGljXQorICAgICAgUmVuZGVyU1ZHRWxsaXBzZSB7Y2lyY2xlfSBhdCAoMzUsOCkg
c2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW2N4PTUu
MDBdIFtjeT01LjAwXSBbcj01LjAwXQorICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAo
MzM1LDgpIHNpemUgMTAweDEwMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgzMC4wMCwwLjAwKX1dCisgICAgICAgIFJlbmRlclNWR1JlY3Qge3JlY3R9IGF0ICgzMzUs
OCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1QQVRURVJOXSBbaWQ9InBhdHRlcm4iXX1dIFt4
PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMC4wMF0gW2hlaWdodD0xMC4wMF0KKyAgICAgIFJlbmRl
clNWR0NvbnRhaW5lciB7Z30gYXQgKDE4NSwxNTgpIHNpemUgMTAweDEwMCBbdHJhbnNmb3JtPXtt
PSgoMS4wMCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxNS4wMCwxNS4wMCl9XQorICAgICAgICBSZW5k
ZXJTVkdSZWN0IHtyZWN0fSBhdCAoMTg1LDE1OCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1T
T0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwLjAwXSBb
aGVpZ2h0PTEwLjAwXQorICAgICAgICAgIFttYXNrZXI9Im1hc2siXSBSZW5kZXJTVkdSZXNvdXJj
ZU1hc2tlciB7bWFza30gYXQgKDAsMCkgc2l6ZSAxMHgxMAorICAgICAgUmVuZGVyU1ZHQ29udGFp
bmVyIHtnfSBhdCAoMzUsMzA4KSBzaXplIDEwMHgxMDAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4w
MCkoMC4wMCwxLjAwKSkgdD0oMC4wMCwzMC4wMCl9XQorICAgICAgICBSZW5kZXJTVkdSZWN0IHty
ZWN0fSBhdCAoMzUsMzA4KSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAuMDBdIFtoZWlnaHQ9MTAuMDBd
CisgICAgICAgICAgW2NsaXBQYXRoPSJjbGlwIl0gUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIHtj
bGlwUGF0aH0gYXQgKDAsMCkgc2l6ZSAxMHgxMAorICAgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtn
fSBhdCAoMzI1LDI5OCkgc2l6ZSAxMTB4MTEwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAu
MDAsMS4wMCkpIHQ9KDMwLjAwLDMwLjAwKX1dCisgICAgICAgIFJlbmRlclNWR0VsbGlwc2Uge2Np
cmNsZX0gYXQgKDMyNSwyOTgpIHNpemUgMTEweDExMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDA4MDAwXX1dIFtjeD01LjAwXSBbY3k9NS4wMF0gW3I9NS4wMF0KKyAgICAgICAgICBbZmls
dGVyPSJmaWx0ZXIiXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoLTEsLTEp
IHNpemUgMTJ4MTIKKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDJm
NmI1OWMyNzIzNTAwMmQzMTZlNGY3OGNiNmJjZDJkYTQxNzFkZGEuLjA2NDJiMDZiYWNhYjAxMGFi
YzFhYjk5ZDk0YmZhMmFjOTdiOTBkMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjI0OSw2ICsyMjQ5LDkgQEAgY3JidWcuY29tLzYy
MzAxIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQu
ZmlsbFN0eWxlLnAKIGNyYnVnLmNvbS82MjMwMSBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dw
dS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuaW5jb21wbGV0ZS5lbXB0eS5o
dG1sIFsgRmFpbHVyZSBdCiBjcmJ1Zy5jb20vNjIzMDEgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVh
bC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUub21p
dHRlZC5odG1sIFsgRmFpbHVyZSBdCiAKKyMgTmV3IHRlc3QsIG5lZWRzIGJhc2VsaW5lIGFmdGVy
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1ODcKK3dlYmtpdC5v
cmcvYi8xMTE1ODcgc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC5odG1sIFsgTWlzc2lu
ZyBQYXNzIF0KKwogd2Via2l0Lm9yZy9iLzQ4Mjg4IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29t
cG9zaXRlLm9wZXJhdGlvbi5jbGVhci5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvNDgy
ODggcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5j
b21wb3NpdGUub3BlcmF0aW9uLmNsZWFyLmh0bWwgWyBGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzMWU3ODg3OWNhMWRhZDQ2ZjhlMGJi
NDU5MTVmMDkyNDliMDg2MDE1Li4wNzQxN2Q1YTgwM2VmZWJiNGQzZGExYWZhNjg4ODYzYmNjNzQy
ZTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTc3
LDYgKzU3Nyw5IEBAIHdlYmtpdC5vcmcvYi85ODg5NSBwZXJmL2FjY2Vzc2liaWxpdHktdGl0bGUt
dWktZWxlbWVudC5odG1sIFsgU2tpcCBdCiAjIG5vdCBTS0lQLCBqdXN0IFdPTlRGSVguCiB3ZWJr
aXQub3JnL2IvNjYyMTggZmFzdC9oYXJuZXNzL3NhbXBsZS1mYWlsLW1pc21hdGNoLXJlZnRlc3Qu
aHRtbCBbIFdvbnRGaXggSW1hZ2VPbmx5RmFpbHVyZSBdCiAKKyMgTmV3IHRlc3QsIG5lZWRzIGJh
c2VsaW5lIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1
ODcKK3dlYmtpdC5vcmcvYi8xMTE1ODcgc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC5o
dG1sIFsgTWlzc2luZyBdCisKICMgVGhlc2UgdGVzdHMgbmVlZCB0byBiZSByZWJhc2VsaW5lZCBh
ZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk5ODQKIHdlYmtp
dC5vcmcvYi85OTk4NCBzdmcvYXMtaW1hZ2UvaW1hZ2UtcHJlc2VydmVBc3BlY3RSYXRpby1hbGwu
c3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi85OTk4NCBzdmcvZmls
dGVycy9mZUltYWdlLXByZXNlcnZlQXNwZWN0UmF0aW8tYWxsLnN2ZyBbIEltYWdlT25seUZhaWx1
cmUgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDIxZjEyNjBjMzcxNzUyOGI3YmEyMmM0ZDE2YThjMzE0YmJlMTUxZDEuLmYxNDYzZjliOGY0OWYy
NDJlMDgxNGUyMDdkZTNiMmEyNjM2NWY3ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xMDAsNiArMTAwLDkgQEAgd2Via2l0Lm9yZy9iLzk4MzQ4IGFj
Y2Vzc2liaWxpdHkvdGFibGUtd2l0aC1hcmlhLXJvbGUuaHRtbCBbIFdvbnRGaXggTWlzc2luZyBd
CiB3ZWJraXQub3JnL2IvOTgzNDggYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLmh0bWwg
WyBXb250Rml4IE1pc3NpbmcgXQogd2Via2l0Lm9yZy9iLzk4MzQ4IGFjY2Vzc2liaWxpdHkvcGx1
Z2luLmh0bWwgWyBXb250Rml4IE1pc3NpbmcgXQogCisjIE5ldyB0ZXN0LCBuZWVkcyBiYXNlbGlu
ZSBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNTg3Cit3
ZWJraXQub3JnL2IvMTExNTg3IHN2Zy9jdXN0b20vcmVzb3VyY2VzLWNzcy1zY2FsZWQuaHRtbCBb
IE1pc3NpbmcgXQorCiAjIEZlYXR1cmUgZGlzYWJsZWQsIHNlZTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NDI1CiB3ZWJraXQub3JnL2IvOTg5MjUgZmFzdC92aWV3
cG9ydC92aWV3cG9ydC1sZWdhY3ktaGFuZGhlbGRmcmllbmRseS5odG1sIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvOTg5MjUgZmFzdC92aWV3cG9ydC92aWV3cG9ydC1sZWdhY3ktbW9iaWxlb3B0aW1p
emVkLTIuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBkYWU1OGNjZDE3NTVmOTk3Y2E4MjYzZDRlZDE1OGZiYzNiNzRiMjk5Li41YjAw
MjkzNmRmYTJmOTc0YTM5M2RjMmI2MTMyOTI5YTM4YjQ5NjVlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQwMyw2ICsxNDAzLDkgQEAgd2Via2l0Lm9y
Zy9iLzEwNjQxNSBmYXN0L3dvcmtlcnMvd29ya2VyLWNsb3NlLW1vcmUuaHRtbCBbIFBhc3MgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMTA2NDE1IGZhc3Qvd29ya2Vycy93b3JrZXItZG9jdW1lbnQt
bGVhay5odG1sIFsgUGFzcyBGYWlsdXJlIF0gCiB3ZWJraXQub3JnL2IvMTA2NDE1IGZhc3Qvd29y
a2Vycy93b3JrZXItbGlmZWN5Y2xlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCisjIE5ldyB0ZXN0
LCBuZWVkcyBiYXNlbGluZSBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTExNTg3Cit3ZWJraXQub3JnL2IvMTExNTg3IHN2Zy9jdXN0b20vcmVzb3VyY2VzLWNz
cy1zY2FsZWQuaHRtbCBbIE1pc3NpbmcgXQorCiAjIFNwZWxsY2hlY2tlciBiZWhhdmlvciB0ZXN0
cy4KIHdlYmtpdC5vcmcvYi8xMDgzNzAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUt
Y2xpY2tlZC13b3JkLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMDgzNzAgZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRt
bCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
MzE3ZjBjZTU3OTU2NDdlNGQ2ODRjNzY0YWExNDA5MjJhMDcxNmI3YS4uYjI4MTU0OTdhNTBjMzNi
ODAwM2QxZGQ0MWMzNDM5N2U0ZjFhOWY0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xMzM1LDYgKzEzMzUsOSBAQCBzdmcvY2FydG8ubmV0L2NvbWJvYm94
LnN2Zwogc3ZnL2hpdHRlc3QvemVyby1sZW5ndGgtcm91bmQtY2FwLXBhdGgueGh0bWwKIHN2Zy9o
aXR0ZXN0L3plcm8tbGVuZ3RoLXNxdWFyZS1jYXAtcGF0aC54aHRtbAogCisjIE5ldyB0ZXN0LCBu
ZWVkcyBiYXNlbGluZSBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTExNTg3Cit3ZWJraXQub3JnL2IvMTExNTg3IHN2Zy9jdXN0b20vcmVzb3VyY2VzLWNzcy1z
Y2FsZWQuaHRtbCBbIE1pc3NpbmcgXQorCiAjIFtRdF0gc3ZnL2FuaW1hdGlvbnMgdGVzdHMgYXJl
IHZlcnkgZmxha3kKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgw
NzAzCiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLWVsZW0tMDgtdC1kcnQuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC5odG1sIGIvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk4MWNhMzczMGMzYmNmNTg1YzM0MzMyNGQ5N2NmMzkzNGM4YTE3YzcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLmh0bWwKQEAg
LTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorCis8IS0tIFRl
c3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1ODcgLS0+
Cis8IS0tIFBhc3NlcyBpZiBhbGwgY2lyY2xlcyBhcmUgZHJhd24gYXQgaGlnaCByZXNvbHV0aW9u
LCB3aXRob3V0IHBpeGVsYXRpb24gLS0+CisKKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2
ZTsgbGVmdDogMjdweDsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDUpOyAtd2Via2l0LXRyYW5z
Zm9ybS1vcmlnaW46IDAgMDsgd2lkdGg6IDEwMHB4OyI+Cis8ZGl2IHN0eWxlPSItd2Via2l0LXRy
YW5zZm9ybTogc2NhbGUoMik7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOyB3aWR0aDog
NTBweDsiPgorICA8c3ZnIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8ZGVmcz4KKyAgICAgIDxwYXR0ZXJuIGlkPSJwYXR0ZXJu
IiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiPgor
ICAgICAgICA8Y2lyY2xlIGN4PSI1IiBjeT0iNSIgcj0iNSIgZmlsbD0iZ3JlZW4iLz4KKyAgICAg
IDwvcGF0dGVybj4KKworICAgICAgPG1hc2sgaWQ9Im1hc2siPgorICAgICAgICA8Y2lyY2xlIGN4
PSI1IiBjeT0iNSIgcj0iNSIgZmlsbD0id2hpdGUiLz4KKyAgICAgIDwvbWFzaz4KKworICAgICAg
PGNsaXBQYXRoIGlkPSJjbGlwIj4KKyAgICAgICAgPGNpcmNsZSBjeD0iNSIgY3k9IjUiIHI9IjUi
Lz4KKyAgICAgICAgPCEtLSBtdWx0aXBsZSBzaGFwZXMgdG8gZm9yY2UgbWFzay1iYXNlZCBjbGlw
cGluZyAtLT4KKyAgICAgICAgPGNpcmNsZSBjeD0iNSIgY3k9IjUiIHI9IjUiLz4KKyAgICAgIDwv
Y2xpcFBhdGg+CisKKyAgICAgIDxmaWx0ZXIgaWQ9ImZpbHRlciI+CisgICAgICAgIDxmZU9mZnNl
dCBkeD0iMCIgZHk9IjAiLz4KKyAgICAgIDwvZmlsdGVyPgorICAgIDwvZGVmcz4KKworICAgIDxj
aXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBmaWxsPSJncmVlbiIvPgorCisgICAgPGcgdHJhbnNm
b3JtPSJ0cmFuc2xhdGUoMzApIj4KKyAgICAgIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIg
YXN0cm9rZT0icmVkIiBmaWxsPSJ1cmwoI3BhdHRlcm4pIj48L3JlY3Q+CisgICAgPC9nPgorCisg
ICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTUgMTUpIj4KKyAgICAgIDxyZWN0IHdpZHRoPSIx
MCIgaGVpZ2h0PSIxMCIgYXN0cm9rZT0icmVkIiBmaWxsPSJncmVlbiIgbWFzaz0idXJsKCNtYXNr
KSIvPgorICAgIDwvZz4KKworICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMzApIj4KKyAg
ICAgIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgYXN0cm9rZT0icmVkIiBmaWxsPSJncmVl
biIgY2xpcC1wYXRoPSJ1cmwoI2NsaXApIi8+CisgICAgPC9nPgorCisgICAgPGcgdHJhbnNmb3Jt
PSJ0cmFuc2xhdGUoMzAgMzApIj4KKyAgICAgIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBm
aWxsPSJncmVlbiIgZmlsdGVyPSJ1cmwoI2ZpbHRlcikiLz4KKyAgICA8L2c+CisgIDwvc3ZnPgor
PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>192266</attachid>
            <date>2013-03-08 12:15:14 -0800</date>
            <delta_ts>2013-03-08 12:15:14 -0800</delta_ts>
            <desc>Same problem with clips, masks &amp; filters.</desc>
            <filename>resources-css-scaled.html</filename>
            <type>text/html</type>
            <size>1563</size>
            <attacher name="Florin Malita">fmalita</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8Ym9keT4KCjwhLS0gVGVzdCBmb3IgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTU4NyAtLT4KPCEtLSBQYXNzZXMgaWYgYWxs
IGNpcmNsZXMgYXJlIGRyYXduIGF0IGhpZ2ggcmVzb2x1dGlvbiwgd2l0aG91dCBwaXhlbGF0aW9u
IC0tPgoKPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAyN3B4OyAtd2Via2l0
LXRyYW5zZm9ybTogc2NhbGUoNSk7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOyB3aWR0
aDogMTAwcHg7Ij4KPGRpdiBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDIpOyAtd2Vi
a2l0LXRyYW5zZm9ybS1vcmlnaW46IDAgMDsgd2lkdGg6IDUwcHg7Ij4KICA8c3ZnIHdpZHRoPSI0
MCIgaGVpZ2h0PSI0MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxk
ZWZzPgogICAgICA8cGF0dGVybiBpZD0icGF0dGVybiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiBw
YXR0ZXJuVW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgICA8Y2lyY2xlIGN4PSI1IiBjeT0i
NSIgcj0iNSIgZmlsbD0iZ3JlZW4iLz4KICAgICAgPC9wYXR0ZXJuPgoKICAgICAgPG1hc2sgaWQ9
Im1hc2siPgogICAgICAgIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBmaWxsPSJ3aGl0ZSIv
PgogICAgICA8L21hc2s+CgogICAgICA8Y2xpcFBhdGggaWQ9ImNsaXAiPgogICAgICAgIDxjaXJj
bGUgY3g9IjUiIGN5PSI1IiByPSI1Ii8+CiAgICAgICAgPCEtLSBtdWx0aXBsZSBzaGFwZXMgdG8g
Zm9yY2UgbWFzay1iYXNlZCBjbGlwcGluZyAtLT4KICAgICAgICA8Y2lyY2xlIGN4PSI1IiBjeT0i
NSIgcj0iNSIvPgogICAgICA8L2NsaXBQYXRoPgoKICAgICAgPGZpbHRlciBpZD0iZmlsdGVyIj4K
ICAgICAgICA8ZmVPZmZzZXQgZHg9IjAiIGR5PSIwIi8+CiAgICAgIDwvZmlsdGVyPgogICAgPC9k
ZWZzPgoKICAgIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBmaWxsPSJncmVlbiIvPgoKICAg
IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwKSI+CiAgICAgIDxyZWN0IHdpZHRoPSIxMCIgaGVp
Z2h0PSIxMCIgYXN0cm9rZT0icmVkIiBmaWxsPSJ1cmwoI3BhdHRlcm4pIj48L3JlY3Q+CiAgICA8
L2c+CgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTUgMTUpIj4KICAgICAgPHJlY3Qgd2lk
dGg9IjEwIiBoZWlnaHQ9IjEwIiBhc3Ryb2tlPSJyZWQiIGZpbGw9ImdyZWVuIiBtYXNrPSJ1cmwo
I21hc2spIi8+CiAgICA8L2c+CgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAzMCkiPgog
ICAgICA8cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIGFzdHJva2U9InJlZCIgZmlsbD0iZ3Jl
ZW4iIGNsaXAtcGF0aD0idXJsKCNjbGlwKSIvPgogICAgPC9nPgoKICAgIDxnIHRyYW5zZm9ybT0i
dHJhbnNsYXRlKDMwIDMwKSI+CiAgICAgIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBmaWxs
PSJncmVlbiIgZmlsdGVyPSJ1cmwoI2ZpbHRlcikiLz4KICAgIDwvZz4KICA8L3N2Zz4KPC9kaXY+
CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192279</attachid>
            <date>2013-03-08 13:30:42 -0800</date>
            <delta_ts>2013-03-11 12:03:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111587-20130308162644.patch</filename>
            <type>text/plain</type>
            <size>29843</size>
            <attacher name="Florin Malita">fmalita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFhYzgwNGMyNjliNzJi
MzUxY2E1YzZmOGRlZGZkOWE4ZjkyZGI2OC4uYmI4YmE1MjVkYTVmODA5N2RiYmJlNWVmYzVjMWNh
OTUxZmEwNjE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAzLTA4ICBGbG9y
aW4gTWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU1ZHIFBhdHRlcm4g
cGl4ZWxhdGVkIG9uIGlubGluZSBTVkcgd2l0aCBDU1MgdHJhbnNmb3JtcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNTg3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjYWxjdWxhdGluZyB0aGUg
cmVzb2x1dGlvbiBmb3IgcmVzb3VyY2UgaW1hZ2UgYnVmZmVycywgd2UgbmVlZCB0byBhbHNvIGNv
bnNpZGVyIENTUworICAgICAgICB0cmFuc2Zvcm1zLiBUaGlzIHBhdGNoIHVwZGF0ZXMgY2FsY3Vs
YXRlVHJhbnNmb3JtYXRpb25Ub091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0oKQorICAgICAg
ICAocmVuYW1lZCB0byBjYWxjdWxhdGVUcmFuc2Zvcm1hdGlvblRvT3V0ZXJtb3N0Q29vcmRpbmF0
ZVN5c3RlbSkgdG8gaW5jbHVkZSB0aGUgYWZmaW5lCisgICAgICAgIGNvbXBvbmVudCBmcm9tIENT
UyB0cmFuc2Zvcm1zIGJ5IHdhbGtpbmcgdGhlIHBhcmVudCBsYXllciB0cmVlLgorCisgICAgICAg
IFRlc3Q6IHN2Zy9jdXN0b20vcmVzb3VyY2VzLWNzcy1zY2FsZWQuaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBwaW5nVG9Db250ZXh0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlTWFza2VyOjphcHBseVJlc291cmNlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmJ1aWxkUGF0dGVybik6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVNjcmVlbkZvbnRTaXpl
U2NhbGluZ0ZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJpbmdDb250ZXh0Ojpj
YWxjdWxhdGVUcmFuc2Zvcm1hdGlvblRvT3V0ZXJtb3N0Q29vcmRpbmF0ZVN5c3RlbSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIChTVkdS
ZW5kZXJpbmdDb250ZXh0KToKKwogMjAxMy0wMy0wOCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8
YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdIERvZXNuJ3QgYnVpbGQgd2l0
aCBRdE11bHRpbWVkaWEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAppbmRleCA3MzM5ZTI4NTliYjdlNzVlZWE4
YmRlNzAwM2VlMmFlMGZjZDAzZmY1Li4yNDQxNTA1NjkwMTE5OGQyOTk2MWYxZWI3NWZhODI3ZDZl
YzgwZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlQ2xpcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAgYm9vbCBSZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcHBpbmdUb0NvbnRleHQoUmVuZGVyT2JqZWN0
KiBvYmplY3QsIGNvbnMKICAgICB9CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gYWJzb2x1dGVUcmFu
c2Zvcm07Ci0gICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNmb3JtYXRpb25U
b091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0ob2JqZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSk7
CisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNmb3JtYXRpb25Ub091dGVy
bW9zdENvb3JkaW5hdGVTeXN0ZW0ob2JqZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSk7CiAKICAgICBp
ZiAoc2hvdWxkQ3JlYXRlQ2xpcERhdGEgJiYgIXJlcGFpbnRSZWN0LmlzRW1wdHkoKSkgewogICAg
ICAgICBpZiAoIVNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKHJlcGFpbnRS
ZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSwgY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2UsIENvbG9y
U3BhY2VEZXZpY2VSR0IsIFVuYWNjZWxlcmF0ZWQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAppbmRleCA4NDMw
MjdlYjcxMDg3YmFlOWZiODhkNzEzZGYyYTJkMjY4YjMxMTVjLi5iYTA3M2JlZmM2MDBmNzk4Yzdl
NmU0ZDk0ZmM0MzAwYTMwYzBlMTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcApAQCAtMTY2LDcgKzE2Niw3
IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3VyY2UoUmVuZGVyT2Jq
ZWN0KiBvYmplY3QsIFJlbmRlclN0eWxlKiwKIAogICAgIC8vIERldGVybWluZSBhYnNvbHV0ZSB0
cmFuc2Zvcm1hdGlvbiBtYXRyaXggZm9yIGZpbHRlci4gCiAgICAgQWZmaW5lVHJhbnNmb3JtIGFi
c29sdXRlVHJhbnNmb3JtOwotICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5z
Zm9ybWF0aW9uVG9PdXRlcm1vc3RTVkdDb29yZGluYXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVU
cmFuc2Zvcm0pOworICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0
aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0p
OwogICAgIGlmICghYWJzb2x1dGVUcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAppbmRleCAxZjUwMWE4OGJkOGNjMWUxZjk5MDk3
YTIzZDRiNDQ1ZTAzYjZmNTc4Li43ZTA3YmRiNTUyMGNkOGU4ZTRhYjM5NmFjNzYwNjZlNDYxOWZh
YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlTWFza2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlTWFza2VyLmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIFJlbmRlclNWR1Jl
c291cmNlTWFza2VyOjphcHBseVJlc291cmNlKFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJT
dHlsZSosCiAgICAgTWFza2VyRGF0YSogbWFza2VyRGF0YSA9IG1fbWFza2VyLmdldChvYmplY3Qp
OwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIGFic29sdXRlVHJhbnNmb3JtOwotICAgIFNWR1JlbmRl
cmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RTVkdDb29yZGlu
YXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0pOworICAgIFNWR1JlbmRlcmluZ0Nv
bnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVt
KG9iamVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0pOwogCiAgICAgRmxvYXRSZWN0IHJlcGFpbnRSZWN0
ID0gb2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVy
bi5jcHAKaW5kZXggYjNmNmM5ZGI0MjVlMDYwNThiNjIwY2NkNzZjNTM2NTRjMTY3OTlkNS4uYTdh
YjgyZmE2MmEwNmRmMTM0ZGZkZjJkNDk2MDhhYjgwZTgwNmVkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNw
cApAQCAtODQsNyArODQsNyBAQCBQYXR0ZXJuRGF0YSogUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJu
OjpidWlsZFBhdHRlcm4oUmVuZGVyT2JqZWN0KiBvYmplY3QsIHVuc2lnbgogICAgICAgICByZXR1
cm4gMDsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBhYnNvbHV0ZVRyYW5zZm9ybUlnbm9yaW5nUm90
YXRpb247Ci0gICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNmb3JtYXRpb25U
b091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0ob2JqZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybUln
bm9yaW5nUm90YXRpb24pOworICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5z
Zm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVUcmFu
c2Zvcm1JZ25vcmluZ1JvdGF0aW9uKTsKIAogICAgIC8vIElnbm9yZSAyRCByb3RhdGlvbiwgYXMg
aXQgZG9lc24ndCBhZmZlY3QgdGhlIHNpemUgb2YgdGhlIHRpbGUuCiAgICAgU1ZHUmVuZGVyaW5n
Q29udGV4dDo6Y2xlYXIyRFJvdGF0aW9uKGFic29sdXRlVHJhbnNmb3JtSWdub3JpbmdSb3RhdGlv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmlu
Z0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdD
b250ZXh0LmNwcAppbmRleCBlMjc1OTMyZTc1NWI1MWMyMDBkMjNjNzhlMmQxOWYyNDkzMjM2OTQ0
Li42YTZkYjQ3ZGY2OGVkODQ1MmYxNDNlNThhYTBkZDlmYmZhYzM1M2YzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJCYXNpY1NoYXBlcy5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNl
Q2xpcHBlci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmgiCkBAIC0xODgs
MjEgKzE4OSwzMyBAQCBmbG9hdCBTVkdSZW5kZXJpbmdDb250ZXh0OjpjYWxjdWxhdGVTY3JlZW5G
b250U2l6ZVNjYWxpbmdGYWN0b3IoY29uc3QgUmVuZGVyT2JqZQogICAgIEFTU0VSVChyZW5kZXJl
cik7CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtOwotICAgIGNhbGN1bGF0ZVRyYW5zZm9ybWF0
aW9uVG9PdXRlcm1vc3RTVkdDb29yZGluYXRlU3lzdGVtKHJlbmRlcmVyLCBjdG0pOworICAgIGNh
bGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKHJlbmRlcmVy
LCBjdG0pOwogICAgIHJldHVybiBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHNxcnQoKHBvdyhjdG0u
eFNjYWxlKCksIDIpICsgcG93KGN0bS55U2NhbGUoKSwgMikpIC8gMikpOwogfQogCi12b2lkIFNW
R1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RTVkdD
b29yZGluYXRlU3lzdGVtKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFmZmluZVRyYW5z
Zm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0pCit2b2lkIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1
bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKGNvbnN0IFJlbmRl
ck9iamVjdCogcmVuZGVyZXIsIEFmZmluZVRyYW5zZm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0pCiB7
Ci0gICAgY29uc3QgUmVuZGVyT2JqZWN0KiBjdXJyZW50ID0gcmVuZGVyZXI7Ci0gICAgQVNTRVJU
KGN1cnJlbnQpOwotCisgICAgQVNTRVJUKHJlbmRlcmVyKTsKICAgICBhYnNvbHV0ZVRyYW5zZm9y
bSA9IGN1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRpb24oKTsKLSAgICB3aGlsZSAoY3VycmVudCkg
ewotICAgICAgICBhYnNvbHV0ZVRyYW5zZm9ybSA9IGN1cnJlbnQtPmxvY2FsVG9QYXJlbnRUcmFu
c2Zvcm0oKSAqIGFic29sdXRlVHJhbnNmb3JtOwotICAgICAgICBpZiAoY3VycmVudC0+aXNTVkdS
b290KCkpCisKKyAgICAvLyBXYWxrIHVwIHRoZSByZW5kZXIgdHJlZSwgYWNjdW11bGF0aW5nIFNW
RyB0cmFuc2Zvcm1zLgorICAgIGZvciAoOyByZW5kZXJlcjsgcmVuZGVyZXIgPSByZW5kZXJlci0+
cGFyZW50KCkpIHsKKyAgICAgICAgYWJzb2x1dGVUcmFuc2Zvcm0gPSByZW5kZXJlci0+bG9jYWxU
b1BhcmVudFRyYW5zZm9ybSgpICogYWJzb2x1dGVUcmFuc2Zvcm07CisgICAgICAgIGlmIChyZW5k
ZXJlci0+aXNTVkdSb290KCkpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAo
IXJlbmRlcmVyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBDb250aW51ZSB3YWxraW5nIHVw
IHRoZSBsYXllciB0cmVlLCBhY2N1bXVsYXRpbmcgQ1NTIHRyYW5zZm9ybXMuCisgICAgZm9yIChS
ZW5kZXJMYXllciogbGF5ZXIgPSByZW5kZXJlci0+ZW5jbG9zaW5nTGF5ZXIoKTsgbGF5ZXI7IGxh
eWVyID0gbGF5ZXItPnBhcmVudCgpKSB7CisgICAgICAgIGlmIChUcmFuc2Zvcm1hdGlvbk1hdHJp
eCogbGF5ZXJUcmFuc2Zvcm0gPSBsYXllci0+dHJhbnNmb3JtKCkpCisgICAgICAgICAgICBhYnNv
bHV0ZVRyYW5zZm9ybSA9IGxheWVyVHJhbnNmb3JtLT50b0FmZmluZVRyYW5zZm9ybSgpICogYWJz
b2x1dGVUcmFuc2Zvcm07CisKKyAgICAgICAgLy8gV2UgY2FuIHN0b3AgYXQgY29tcG9zaXRpbmcg
bGF5ZXJzLCB0byBtYXRjaCB0aGUgYmFja2luZyByZXNvbHV0aW9uLgorICAgICAgICBpZiAobGF5
ZXItPmlzQ29tcG9zaXRlZCgpKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGN1cnJlbnQg
PSBjdXJyZW50LT5wYXJlbnQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggNGViOWMyNTU1NDNlZTg1
NTU0ODhlMDVkZmRlZTA2ODJiMDkxMzIwMS4uN2UxNjEyN2FhNzA5OTUwN2JlNzdlM2M1OWUyNzlh
NmI5YjY2MWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJpbmdDb250ZXh0LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2
b2lkIGNsaXBUb0ltYWdlQnVmZmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgT3du
UHRyPEltYWdlQnVmZmVyPiYsIGJvb2wgc2FmZVRvQ2xlYXIpOwogCiAgICAgc3RhdGljIGZsb2F0
IGNhbGN1bGF0ZVNjcmVlbkZvbnRTaXplU2NhbGluZ0ZhY3Rvcihjb25zdCBSZW5kZXJPYmplY3Qq
KTsKLSAgICBzdGF0aWMgdm9pZCBjYWxjdWxhdGVUcmFuc2Zvcm1hdGlvblRvT3V0ZXJtb3N0U1ZH
Q29vcmRpbmF0ZVN5c3RlbShjb25zdCBSZW5kZXJPYmplY3QqLCBBZmZpbmVUcmFuc2Zvcm0mIGFi
c29sdXRlVHJhbnNmb3JtKTsKKyAgICBzdGF0aWMgdm9pZCBjYWxjdWxhdGVUcmFuc2Zvcm1hdGlv
blRvT3V0ZXJtb3N0Q29vcmRpbmF0ZVN5c3RlbShjb25zdCBSZW5kZXJPYmplY3QqLCBBZmZpbmVU
cmFuc2Zvcm0mIGFic29sdXRlVHJhbnNmb3JtKTsKICAgICBzdGF0aWMgSW50U2l6ZSBjbGFtcGVk
QWJzb2x1dGVTaXplKGNvbnN0IEludFNpemUmKTsKICAgICBzdGF0aWMgRmxvYXRSZWN0IGNsYW1w
ZWRBYnNvbHV0ZVRhcmdldFJlY3QoY29uc3QgRmxvYXRSZWN0JiBhYnNvbHV0ZVRhcmdldFJlY3Qp
OwogICAgIHN0YXRpYyB2b2lkIGNsZWFyMkRSb3RhdGlvbihBZmZpbmVUcmFuc2Zvcm0mKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAyMmE1OWMwMGZhMGNmNmE0NjUxMGQ3NTQxZjM4NTcxYzVkNzMwMzg0Li43ZjJmZmUyNDJk
YTk5YWIwNGRkOTk3MjgyNjcyYzFmNjMxZDJjZDRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTMtMDMtMDggIEZsb3JpbiBNYWxpdGEgIDxmbWFsaXRhQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBTVkcgUGF0dGVybiBwaXhlbGF0ZWQgb24gaW5saW5lIFNWRyB3aXRoIENTUyB0cmFuc2Zvcm1z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1ODcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vcmVzb3VyY2VzLWNzcy1zY2FsZWQtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvY3Vz
dG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHN2Zy9jdXN0b20vcmVz
b3VyY2VzLWNzcy1zY2FsZWQuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMDggIEtlbnQgVGFtdXJh
ICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFsbG93IHBsYXRmb3JtLWRlcGVuZGVu
dCBzdHJpbmdzIGZvciB2YWxpZGF0aW9uTWVzc2FnZSBwcm9wZXJ0eQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3Nz
LXNjYWxlZC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYWJiMTI2NWY0OWFlODdlOWJlMGZjNTVhZGQxYTVlYmU2ZTJlOTcxCkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCA5OTA1CnpjbWVJMlhGIXc3K085KG9WSWZrYVMhZTxaM0lkODBreCYjd0smZTdQ
azVtRHJjWjkkUzdEUzImQkdPYkFmK1JveQp6c2k3KWVpbFVVelJmPmVyQzZxdk5DZ15nbntoZld6
fEw9VX4qUEZhJEdWamJZJnZXMGBCLStTOFhGdXk8UnROO0wKelUtejw+Mj9XOUAwKWFwZ0VLcVFV
bXhvc1o5OFVPWUJtNWswSTYxaWNgcm0/X21ReTw4cX54c05lQklnY3dFVDU+CnpDO018d3IlJjR9
RD01bUhifnZyPCgxcVM+NHVPYjNiaFJ8RTEqT2xBK1RCbHwzSCFiYlhafml4NTBgaTJfKCpJeQp6
fE1vQFY9XiExcmFidTg8WXJ7ZnBBWnVCZSZvPil8eU9TRHVmIz4rSWRUQzFLeHJUVXVzTl53I3gr
Kk1PJjh8ISEKemowbyVfbEpKZFFOZjwkMUUlU1NTOWxwYjhEUXRpdGU3PVNgRno5PlFQaShHLWBj
WjlGWklSTUZnSiF2T0tNV1B9CnopVlBqUCheQ19BIWApcXEwVjB4NDt8WWE4QjEqVXI1Sj09Nyh2
WE9USiR3KWlCeT1Be0xAdHNFIXVobFQzU2w4ZAp6ND5HY2k1KTFsYkBrZC1gPVJMe3p4elI/P2ZD
Mm9HSyY1aXA2KF83b1J2cmZ4dVYhMm4yUn5BRiRxRE8yOURMMmYKemVYKXZkJSE4d2puVWMwTXVX
bCs+cjFrPz14c3dLSV9RXn0pSUQ5cUtieDBxeV5DbzVOaHpaNSk1YXo1fj8zUHhvCnp1eyRfPUY8
eGpkN19sYVZiSWA5VE5FUzRQZFdIQz9PaGlGMG4mbWVUdkhwQU8qJDxlLW59Q041NmBBWSpNMHJj
egp6JWJDK2h1VE47Y0JwVDtgPnVXc1hIUWpWJk50VF97ezFEV0F0KUNkRzlfKUc5WDY/REFZd2dh
UmljeVdJJGMyIT0KekJfVi1KYU0lcWFPSGI2N1RTfWFmQlBSb3ByXlhSI14qLVRLKHxTbzVMcW1o
Q0dffUMjalp7aGFKPU0jaHZ6eTdRCnp1Q2xRe1luS1lWSit7KF4qRVFJQTY+d2kpXzA+QV5XdU5l
ezlNeU1iSUNyaDRxMXYwJEBePFBEPXV0OEE9RUdFTwp6ZDRBaEV1a0Uod0wzRzIxd1hORGFAQXFZ
dDhJVXk5dlYlKjR6ZkEyYmIyfilfa3pyRVZWMG5lIzNUe2JBRkI+WkEKektzWnI8WX0tNFdDWDJ7
diZBX2BXM2c0OFJiMSQ+JlRQQU1MWnUpK2p2RkNzcXI4aWpDbVcyZSZsS0tuX1RaQTA+CnpPPzdm
Knh+PWBGODdzNGVmanUlQXF1fmk9OShAdS1laXM9UDhoZXgzIS1uZTA1YnJONTd1MXZyZ3t+ZEtT
Tzt5cwp6Qzc4TjZhNmxYMTtPOVpWSGIqSyRqUW5kdEsoQm4pc3NfPUpZXmxYYWVAWnZ+K00tPlVJ
JDRDR2N3UWtDVC1NMXsKeklTfFVKb0lySShmJWZwamFqPj8hdUQlKFduJWdmX1ktMz84YXUwazI1
ZnpJZ1lPQj1MP1F5PV9OdzJkXy08UTVXCno5UF5kdk4kI21aOWo4Pz0zRm9MOCtoeUFIQlEoZT5s
eXtrTSZqUDtjIWJJX150QGJ8byNWbXszdmNzWEFLPzAqfAp6OXh2dWpvQGxtWGtqelY4SzwrMnpP
V3JGQ0ZoN0ttP3ZYaTlIWWpINntjSER4VjM3PnsxaVJ5amAxMSYtZTJsb1IKejspMkl1PnF8dChI
TXM3d3J5bz4xM0V5emkhZTsqc1kxWTNTe1N9QFVNPzlSOCFzJUpTODR0JT9rYVZKNzVZYSEhCnpp
WDlJMCRnKXdmPlptP0VTYyYlcnFkUn1UMHRed3l6JlBwR2RDNDYrJmJJaVBKPzA7PytIZ0FQOSRx
KFRwQnF8PQp6TDMlYVglIyhWeVA8SnBTdnZZMH1MPHU7KmpCSGFUYmZMbTRfezklQGclMzgxQXNv
PG1QaCNqM1FHQ0QwNFJzUj8KekVBMTw+ZEM7Xz5zMD0/WnMpcEdxanZYNTNaP29OPUtfK2g/RGVT
NU9HMX57YkBYa1ZVT2wpU2BmPjxCbm8yYUQ1CnokbmAtfWpZUlNHODxgWCNmdU1MOGxhYntrIzxg
SnxEejAtT1l0SiFSKjA3NChHR3Z+SSl5O24xVDUtMHBKcDdvPQp6NkBDWHBoOXVLWXQwKk9wYXBr
b1BRP2JnaHZWdD9fN0NTYFp2UkpERiRKX2hGd2IweDtVJDtGS01kZkMjNz51MXcKemZ0aDxUR2Vn
Sm1ZNCZ+KSgjQ345aGpyc0RIYGdnXitrO2NwZFduRDQ2VmA/SCsmeVlaVXB1emRidiQjIyYwQGJX
CnoqVWM2bSh1c3JHQVlXa3A/RzNyP1RuWmtPZGswTStQVFokKC05X29+ezxBZzNKWCZBd1JDSmpA
OGtfJlhQOTFxSwp6cjM4T3p0I1olWXFqMGNFKVdLREA+e2UtKTh+dmo2eGE/VCNwOSFhQnQwKUxn
NWlDbiZTJWBaZHhpMVhkaTU7X3kKemcpd0VuI0UrRi1fc3gyZjU9WilXR1VFRHVQREZ1SjBaSH41
PmRCcVhwa2kyKDY5ZT9Za15xKWlrdU9IfHlMJkpICnpxMW8yPiFDOCpaJEVqaXtaXngjcj9qPDl6
d0MyXlQxVmRTJGk8Z1d3WlojVUJvKS0kYWVPcVlaMjtWe3ZuaV8+Pwp6bCpMdHQ8V1pmK2VXZkNk
TzR5fW87cXdoJjZCdU1tMXJZKXdObXgmPVlWfUlTeigzan1EQ3FORURWIXxGSl8qdl8KemlzOzQr
QH13JGYlblFCSCpWUkxzc001dk5XRFU7THktIWU4MGFOSSZZe31+cmcqRDhQQjRfcVgofHFQVFh0
ZE1VCnojP2JmYHAqP0BMb3lEb3pgTjV5dWYzWDRgUENmP3h2clB0UD9wZEdgUUhCQWpTWktDOCFF
WFQxai0xYzBDc2d6Pgp6M3M/dDRQVDclUkJ9UXp+RGc4bmdrYG9ncGA9bGp+a2xPLSMqckx9Ymdu
fkpzJT19K214SnU7NVZIZDUoJjwlfSoKeiN0eS1LJT9VeFNeTjtSOCp9S3tRJml5ek5iUGh6WEps
XzA7aDItNVBlZk1+Mjl4cEVmKTAyQmhhSHN2e153Qll+CnplTXwhQlIjRT59SFY5MXBVbkRxTzB0
em1hOG5OaipWR28yeCsyZjJGOGxDdE5ZdGJSajExSGJePEh0XjJfYEJNOAp6YTgxWDdNcis9WCti
JUZMcmBSQXQ/NHthWksxbE9pe0YrbXkhXmYmek5yR2FHLTVxfjZ7UClYfGtXPkh1U2NYYksKejJY
fChHfDM+P30rXztQZkZzNyslUyRVeXZLTlgmSTtCfj04cHheJjZqWnojN2JjI05CUVdqQHBBdTRr
SjNnaTNyCnpKTk9iVXdxKlhuTFRONn1DXyhKKTtAe3R6VUtBNypORWc5M1MzNntCSjFHe24jVHhB
RCE5bX5CanVodVVwVWZaNgp6X1pWM182SSQ3VSRmM29DbFRKak9ZMWA2Vz16ODRzdW1+Wi1jYUpT
NzZ+cVZSMXEpVzdTbE99UntZXz4qV3xtYGYKelIjRE9Uc1EzeDBOVUM/cih1KXp7SnM+ZE9Xcm9G
WDgydXd1SVQ1UzVHb3wlNnMxfCVAekJRQUxvLW5hVVVPPEJQCnpCaiZpK2MyS0s+JC1WTmohNGM8
RVVtSmVUbUJAODRkP2ZxbkB1JG9QcmFlNElhZiN2PEg+RUZDZDNhY0dvfCEldAp6RDcrNkUjVmRq
OTdFcEtLYnwyUjdzcXE2OVpPfk5DQF5JUFJ0SnF1Zz1WViN3Y05fcSM/NDFlYzlzViZ6ZVRGXiEK
elYzYFcydU0hdCk0dWNpRjQzMko7MmE8PSZTfntiXyhAamRnX0FPKnlQVjEtezxTbzI2PDxpZFpu
c05BWGB0JTNaCnpfcnQ7YGdHaWJPamNkYjtzUGtLcj5mRCQhPUNrMWlSK3hUSnd2dypDNXlYbj8j
dEVOT2A8Zk0jc1NZYkR5cXstWQp6NVhfTTtnKjwydkdXP2FEX304ZklkZkxJanlPT3BXQm0zYUF4
anZCWE9sU2MrTTJZTVRsWE1sOHo4eTs/R0xPYyYKej04P3czSDxYNiZXdkwyO0tFTWl3dVh5MUph
V0Uhdi1OWkwoXkJzc3xXRjhDNUxvPXxyekM7VG5LdW95Ul9DQTFWCnpfZ2ZhZFFNRWApJm9saDJ2
a0xwKHs8Mn1JaTM0PTBKNXotK3owYjJIUX1uIU4tT0BDQEcjV0QwRTVmdFZHTT5mNAp6djsmLVRv
bzklPyNrcjZVWTNkPHRCcSRWMEwkU3VuNTcqdyMqan1GTDYqQ2whaE95a2ZnZW8xc3A+KmtzVD5z
fmYKenVsLX5TO14zZnFCdzVHPWZRZFBgXjcpYVVPeFBEKyooTT4hJUZuITJXYGFlcGR9cU9wZ0pg
eXRZR30hJGxtQC1UCnokdT83K2o8QVVeRlB4M2RCZGZrO3c8P1lyNCkkYDRsbjVpSlB2V2A7ZzZF
VUZiOD5FQy14JiVTJSRQNl93XndheAp6ITd9dnEzNWV1a0ooVSFkTDNUJG15VTY2RUheclpNbk1e
dWJPeUMrVktLdXlYKn45dWEjPiZVc3JUdio0VyNjMjAKend7O3duQ3BzdzsqWU1SWno0cGVNe1ZC
aFFIa35LM3dqcGVWSn1udChxWE4pOVkka3Bga0k+PnRLVzJDMjY2eC1yCnpZVW0kYntBMVZQSmZq
bll7WSt0ZFhHeCMyKWxtRVBIVE00VTchM2M2ZE9CXllvXzI7VDY2eW9pVmdjTVR2KEYkRQp6TlFf
TzY4S25nZUBhbCNxOWdfUXtQVzhBa2k9TW9NSmY+UmA7X2hFNHBGJGhIQllTKHtQQyk3VzJpfmJx
SGpDWjwKeig8Pjt2N3hEV3dKUiNzYT53U3p8cT1Ke25ydUNlalJGOyhtbX5+WkQyejVKa3dVe35i
PXVoI3FJbm5gZ2A/Tyg/Cnp0UmYjNmNCNDErO2NTXmR2TVN0N1RTQyN+JFJiKHZQI3l9JkAmQWAx
MUttbX5seC1IOGx5XjRoZH1IZ3ttdE98Nwp6a0dMKXVxZFJpNVd5UVhGPEQxPktHRmhZQEVTQClt
MnZ5KGhEPG4tM1EmKDl+UXNFd2pPK3c8U25kIURTcjRgKmAKeiFFQFZ8IypGU0Y5P3JUX190UHdU
Uz0kUWluZm5gbmM8eFUmMlF7I1pLJVheXyUkd2E9blNxSWRkI2l6ejR3WHdRCnp3TVpgUm4xRnAz
S2M4VWIjRGN4MHpBPys4Oyt9Q2R4Jkp4bG5NNHxEMl95PklTMGk/YChuTnh1YHYpXyRVMVBubgp6
MXxvK1FkK1dXQGxUV3JvSGpBJW5lfjEqKmI2PjF3d3drZiQ9ZmZVTVpedj9Le1YxQFlnaDRQVTw+
UDElQ01jNmgKemNTSDM2PW5tQ2NlTGhEd2smVVhQbzQ2M05LRE1OP0peNXVtYlV6eF4xVD8mVjRl
X3skZk9UTGs8LV9fIT9IOGNXCnpSZSEqfjl+VXQpbiZKUjE7bztQbDNsfGleXk40Tl90e0BwOGR5
ZUNQTCpvOXd4cnFQWHcrKFVeR2VfOGZhdG1zQwp6dWtGd3tEUjJOa1R1JkckZEQycGVMMWsqaiFy
T3NpRktxPmpLbzlgJlBFbGVJKFo1JC1VVCl0NVMrfWFITitrQ0oKeiRNTH18ZSNkYHJqIypab2wz
Vk8tYCltWF53MUlzTy0/PFhNdS1CI2l2c25MS1RMYW9LUjd7Z2RsYjNKPykmXjNVCnooalp5fld+
ZXIrTShNQUBrUHB3X2o4V2VYZHgke2cjR3hAeWR1PkMpciowNEZYSWxnQmwlQSRHa2YtcHtTfUBg
Twp6SD0+RDRzYkp3KURUS3VVYEtaamNvLVJSNGA9ZW9QRjJGUiYwLWJKTiZAOGtrO3RWSWtrK3xL
bDM4R1djckdTaTQKenZDVUEycCoqJiVOdHpIeilreTcyQVY1cD9UYEdoZmxkYWFHeDArTDl5NllM
ZUlINTdwe3xDIXBiUFhFdzEmRG0wCnplOEMtcVh3dEJDKnV2WlF7SkByaCNiS2xoalhDLXNFQzdV
KkIyNGJZZiRfYWxpMX57TCNSUGVZTHBLfSFTOD9Bawp6TXJhaFJJbiFybXZWOX4yOyVKRUVMYk1h
ekcjblVrdmUxfT5UYGoqYXFMdiU2PWhNSDVeJDRScWVBZ2VnP0tPPDkKel96cSNZak8zI0d2KStM
fGpsZiNHU01YNlg0YGxMTGdKP3VSZy13JTduUj5ZfmcjeUxkV3VsdWtXMmJIOElhO0FlCno8Xlle
Pi1iZEFTbkRVWlBDQGFLQTU5dXV1R3lDPHZLeThRLVh5ZDYmT0N+ZnopaDh5UWJ6cEFZQVorRntp
LStBVQp6T2RLM3VVdjBUdF5mYy1ROF4xMzlRIV9famZDITE+ZzBCMjsweXpQXk5+PDUzUjEoKzlU
TjgrdmFBZm5oJWJ+QXQKenJRSUBUakcoWWMzKkNkSTBUflFnSUVFWG5TT14pbytaRVBwdDVPbj1m
bE8jWlc1VjJSVCRfY0MjIUsmbTQ2OEU3CnpncT5nRSpTV01rJWY8bUolXjNDWkZzTlE0ezNLK3Rg
YWpleDxSQi00Nm59Unh2WTckZGFPd2lOYipFOVZRbEYoRQp6TFF0QX5iVXBfTipxeUdyOXltMENN
VmhQKUJYenR4NDd0M0FrTWRGfEFWLXNkezs5O3JfWlhRYSpkPn5OSzZKb2wKemsqLWpJUCp4TCRL
eDFsNjtHdkUkQW1Bc0dLV1Q/TEdWZzsjR0RRKl5wJkgweWNtUiRyYDklSmFKSUYrIUowMFNVCnoq
IVdsPms8R1R9QFU9a3lmaFReVWgraiEkNUpOQlNFWH5OPmNGbj9HM2hnUlEyK098K01vZ3tHM3wr
UjtkeW8lbQp6QGI0eFNLJGFIY0xFcVchZlRIdXk0aCYrcHZfXnE7MWNePT0lQG9tS0ZGZGs2MVFm
Umo3bElVMW4rbjd0PFVuTHwKei1DIW54ZW97Ql9xTHIwWnZDSCR6eUNRSihLMXwhZHRtV2o2PU1O
d2xHO1JtcjJEN0h5b3glTFF7fGI+NCEzXyVVCnpGSl9Fa1k+MlJtQkJrTUBJSHNyfmtZTytmb0A3
XntqdUhzJkQpPFFXbzxuP3MmSig3SFRWTjZ+fDMlZ3tEMXNuQgp6Kz5+dytJJSs0KTAkRCRSUD5z
NyhhMkBFbUFDcXJwVnhWNUtrPEFWekV+VVVyKGN7SXo/ZWslZkolSF5SP35GYikKejQyTylnYHI/
OWF8M145WUdjck5SPDNjR21acUVrJEdjfSt8Tk49TXgmdy0rRjl8YlpHKkE+QUdWdEJ6MzVjZXg+
Cno/MG4zOTlfM09GJCVDZWp6Jmc0cj9GTGx0OXpKR30pR0JPVW49P2gtPkdmV2t3SVEyRDh1fUV8
KGBDPl83Z1ZMRAp6ckY1aVYzUTRmKk1zb2N9amllQ3s3V1lHOWtWMXhqWmskMiR1MFZvPjk+dVl8
UW41WD85PVlEdzd5dnB+eFFGajMKelU+ZFg1bUtgbWlzYFhaVlpWWjVzRk12I047KXVTQFpYI0lI
PnFpaC1CWCRsVCpxV2FnPnY+SXdkRjkqQ0ZBMDVXCno7Tjt5UT57cFgjWTR9ISpac3kjZEljb0k1
Qzg2NyhEXztzQzZmWT1VQD9vSkkkZH5hLUpYZEd9P0RhITR4PlVwbgp6TXprS3N3T3RPWkp3SzU4
bztMcCR6PkluNDtUS1g2XzZ4e0l1YmNnZntkMUNnM2I2bHhIVn5mNzIydUNnYThLJkgKeiYzfU8p
RmZ1PUJQZn0hcVh4eTY9bk84QnVeVilNSFVOSk5QZig2dUZkZS1ITClWfF5edVchamZQdypRY3xO
ZDRFCnp6LWFgUm9JezAtPT58YVZZOVN3cVd0NFNLNDlOVyExZHRKWjxSY3dkU3BlNHBZdHpXUj1x
N1V+WTtUP2Rrc0MwcAp6RlhrZVVSNCZBJU88P1d0STRRVUd0WnJmPmpYaXZJWT42JW83VDVQKiRU
eFBzKXs2MGZMT0ppeT53MEk4PSRgKX0KeiklX29zR3NpdGVaUyUrRFpwKyt5TGpBfTMoO0hvfVU5
a21AP3Z4JEBKJEFEZURLdCZaN0RsaTBoS2xpT1ZMeEpMCnojXyE5V1BTT1dleiZsV0VLNCsmWjlE
TGtLK3YlY2B2dEd4Kz1lWEF6UTNEYzBweUlScF5UMHIoeFN1MX5aezR+egp6UHRBUVdFc0kpNzBk
cUordiRDVDM/VGpUMTY8dXQ5NXVHYnhLJUlGRWpIRWpDdHVTKnNYVThxVEJYPz0zQ0xCZnsKeklG
d2BfX0hyeXc7Z3YpI3FYQ1FESDZRezUhKyYoSTdscU1nWGUrQnx0LWZyflJUI3lwcjtmVGt3LX4t
V0kkPFohCnphZWEybiNIQiFmUD4hQTIleHZgQHY8fUdSdTgwSkJRLTQ1YVhFdlZkX21oJEM1Y3B9
R2A/VV4hRkFOLX53MS18Swp6PH0+ZnRvMTIlZG5jcGojVkFhZnk/TjlDcEVSP1hGTXR4MlVTe3dP
TXdmU2speFI1PEtmIXc8KUhTQHsjQER3ckQKekAqNm1Sc2VvJlcyc3RuNWhIU295MzJtM1lXSUZQ
dUk7OWlwbE5TYFp3aylkX3pKbmd7Mz01RzB2ZlBfQT5vQVUqCnpyXnU/VStMSlZxLSRRb0JLI31n
WWxtT1Iwc3VGNkpSXzw3cUByODBtaEBZQFZoQXI+TnpOJFQmUiUlWjFtcHUxNQp6UGEqcylCXiZU
biZKNFNBPEpHKyNAMX5kMEt5Wkw9JkFqUlhHVXZIK3IycCh0UEg5R0lWN05iTTVnJGExJlhyTT0K
elJpUFBkMD9weCkoKFIkJWNDckdqbE5mcGEzPjVRTTs3ViVPLWM/WVkqRjBDTXl3eyRDWDtEe00o
LXt3MiF2bkt7Cno5RCl6OzZQQjZ1e1lLT1QqeXMqaXJ0QGtTXz9kJD8hNXJBTUJURHJARCh0b2hf
MW4/X24zNlpneDM8LTVIYVErQQp6d31UIT17IXBVcU9XX3xINElwV2ZaeHlOcTArPFM3Z1FPV0Bv
SFctXlVGRSU2UlVhWmxyPXdHXkJ7SHtXMlQ9TE4Kemw3Jj1mU3xgUDIxIWM4bDRFaWBsYUViKjZ1
M253QSo7fVIkMWUzViMhWnh3bjdxdkQ1cThDYH5fLXk+eERMPFFJCnpJVTc8Q3JldUpqITJFYDdG
NGtLb1U0KS1NcENxdF9TS21KMEkoRmlUPH07cUQ0fUlOV3M2ZDtvVzBCSFItcHJVUQp6ez5rRik8
fFMqdSFqKiZwU1BIKUwmQE0/Qlg7dG1SQ2llQTN3N2teTkdZOGFrVW1LemhpYjxsUVJMTGxsZXNC
Uj0Kemw5Vmx2KDU3YHgqbHQpSzRPVjNSPEUhci00YUpvYnY7d1B0QF48U0N0RWIxdkxtMTE1Q2xC
JURpOFZnSzFnWVJaCnp1KENWekRTQ0VyTWxkeHFgWTF7Y1Y0KnZGR098Zl5nPi1pVyZAPDMxZE5U
WnhZeUJNS0MlPXtzMkBtJkJyKDhVRAp6bUlgKk1YO0ZGMTJBMTV+emZlOTVyJnB0MGJBQ1loPTZL
e2loZXlLTSEyX018aVgmYjs1SnVFNUZMKnZ8PnVSS14KenR+SHNgJGxka0xuYjFWakBwQjVJTzNh
STxTJFJkX3stRTR4b1lTdDs5c354eWwrTDE4RzNSM2cjQ0FieWFgUShsCno3LWBVQD00OE5ZQXlZ
aV5JNWxjPnQ5c3EkeEJIQSo+KStEVXNUPSZsdChrdio/My1JMyE+YHpxUFN9U21jNyljMwp6JVl0
VkFYbEJDPnMwVzM4ajxYJGdrc15lRSRhZ1Nve0JCdVVCaj1gNXY7WUp2TWVDPj4rZWF3SUtnV09X
bFR+cUgKenJmYEs/WkNeRFk3RUlaYV5FdmNRZ0EtcnB1PlFUYWhYSkkjYEJLbkZlT0tJQiZEe0ZV
RS0hVmJ1Sl5GU0x8IVQ9CnpSPmNjfCtwY3tqQTxHS2llQ3tnO2RoOXNnQSQ+WjdiWEpJJTBPdHZI
KSR2IVEmcDE8dllLcH1YSThoU1ByYUN+Xgp6V3xXQCF7Tl95bnpVM1dWRTNCP0k5TWFiemQtRkVQ
WHxaNGYpan1qRkcxRk8yTjk3QiREdiN9T3t6T3dkcFhOfj0KeilSJnRzN0h5cnFMbmM3X3czUj5A
b0NGYyQrdXpmfnMzZVJJTDllYFNeUGBmM3Eye0s0enNrWiNePWtseFJgRl5gCnpTfV54QjUyJj9t
SlljZi1acXR+bHo4ZlNTIXgpdzVrRjRTPFhOPFlIY1o2amEyLTZHZ1hLfEtyJUxSQEZxIWVMQQp6
TDtDSz9gNWZAJklpU3kqZGI9UVJeUjVscEc+VjJub3R9KGMwYV98aHMye1REa3RAPU1IWnh+b1RY
P140SjQ+b3EKej1YcXkhI3BpYzJCcVcyVDw2JVZCP0plQ1dETj5eUE8tMk9LKE8tbUIjcyl0TD1g
U28jSlFlVGZhPUNpV2g4WSpvCnpIJWBMcXYoTzJ2fEQydHQoPVFOTkp3JklWYm5GXk01dnNiX240
dFduUEEzNDYjK2FwU3BGc2tCO34qWClSKTg4ewp6PWtxY0ded2c3ZXozc3dqQCE4bjN5Vl5BWlU1
ZnImKmg9Rll3eCZreW9QVzA1elBxRkk7XjRuaVNKZzEmRXtGOTEKeio4QVRLX2QjQzNlTW5wbjho
XyVgTyhuWVV5JEUqWVQ3YGJMNSU2MUswfkZnREZWSTc+eXlOYGhWQihmPlU+JiYkCnpKVD0yK3pK
UVJ0YGA2Wnl6TXRabFQ/WElhbVU7NzZlez55NnhjPGQqVGY8aW96aExnUSk/MXlWWHV5c2FLSj1S
aAp6c0JiUU8qdGBoUFpEbzEpcmJRSCt7K2JuaSYjKllSdCY5I3lfcDhUbkQoNzhNKkgmS3NxNGpJ
bmNoJmYwMkF5cjYKeiNUamdxcW9ybHhTXiMrRzMkSmNnKzh9OzErVTBwNSEwJmVLOT44NHBBZGtn
ZXBLb0UxelQwJmdFMnRkNzZxVUk0CnpjcTl3OWE8Y180JT9VIzBTcjZlQCpzbXo2QzJ6WVF2TWJo
Klc8UFd6Xjg7dFJxYz8hfWI9cHJXXiozJVRhM3Q7egp6ezZufjdNXm9mRWkjbXhBaUBSNE0/Ynh6
PSg5cXo1JlcoPFREKmNNflJsQkcwdW5SJktlQmpvfHdVJC1Tam9fQWIKekFQfm9ic0loPmlvJjxS
cklRbGA7JEBmMWR7bGVhSTwwNm92ZCgwRVhWYDdebjJmOXd9eVU8Y0l4IXxBKW1ZSU4kCnp1dmNl
NVQ2VVMlI35Wc3UzIV5EaGxwb2FjUGdRM0BudDB0clh3PHUxQUg8PXIkenZOZEVYfkFle1MlayZ0
VUp0UQp6Nn1ERH43K2dfPmRDJTM0ZzB2dSh6Z2F1b3k5UDMqbVpHb3l0NXJKe2RqMn47IzE0S314
UTQ5UmdxZXhiN0oxbigKelJscjRTMHpBR3FCIT9IfGdlZCNIe1ZfYz8lM3A8QG9ASihvRlE8Wnlw
fm1tfFg2fiE/PVgtbU9LYyRVcyhufkc8CnojeFlUV0FtVjdRQkM2flZwc183azJrVGU2R2soS1p4
UHV7QUJZPjkrMUooMiZKXl4tI0gwU3tLZmBBeD5VJjM+IQp6aV85YDZpVHc+PUp5bUhmYUR5Ozlt
OEVwTkUoJDc8SlpCN0NMcFctKGApRkJze25SZHF0PUNwdytOfEgrPyh3OWwKemw2ZWpWbGlOendE
Y2Bhe3UyeXNLYTkhQTBwbnp+e3lCU3N2YHZnZEBrQElwT1ptLSgyb2czVEglZk9SZDJad2xQCnpi
dWN5fk1RYzlwZkU8IWVsKnN3fTwqJSlAJT9+bWhkYXNZWFlKUG02dUZpYWA8dUo8cl9XWWR0JiRf
JD1ZTWBJWQp6c1c2QURmKkU9PHl9KlQjTUtzIXtqc2ErIWlvTm9MK1ViZlhuOFBRe3tjOXsyNyNH
b0tJd2pTSmdHJVdwRHJLVSsKemdgemZVMlRqQER1VHombyp+PWdNZzUzXzRscVYmezBDVzF1X35R
aUlGNGFNJFBJeC1KbVV7NCMhU0BYS3xHLWApCnpgaE5rRVZzaT1zT3EwUFNvPjY+S3tTdldqVC10
MWY3Xk9EalRUVjhudH1qY3Beem13K3lANVREOXhSO2gxX3ZOXwp6V2ttcGNrMWlBQD9KfWVuSUNf
XjtINklrIzZGbEQ+WTJNTFAwb0pBfDVtZnhoIz9tOTFVYDNFTGc8NEI+R1I9T24KeitSYDxgQVgr
dCF1PU58KVIpbFojK1o5cCROaGlvKHE7bCg0TSZiM3E+OU0+RER9Jk0wfDRDflhFMmR2ZjE4d29K
CnooNEhSRkRUT3hBPH5wWm4wYmUkX3p3TWYjaiRIZyQjP01uQUJ6NzR0QztVM3B7ck5gXkVJbHRi
aShOR3wkbnx3NAp6b2p+NV9nWSNMQEZuQGNkeiMwQnJ7QD05cm84OWcwQT9CaDJSSkJsT0xlSkJu
a2d3PGd3SUYoc2F6SE52eWZVcXgKelpVP3AqPkRTSmt7dUdqOXdoTEdpI0lAUDVrd0JRKlMza1l5
bkdHQ2piSVZ0LVJYJks7Yy0zb0x7WndaOXg9d0oyCnpQZV5nYFY0ZWJhalV7Kk97bipJTClNRXZe
czgqIW5mZ3BrcnlpfnxjYzNebG9XaFR7VG5JUDZ2TStzZTJYPWk1eQp6bzZ2SS0xPkpfezNBWmF1
IVFUJEQrYENjTmZlUkM8PS1AO1EpOWFkZ0NBbzEpWjt0KjlOSHsySkNgIz9HQWBhflYKemkjZmwt
emBOSGgoUz5mQUgtS2tBcXI0KzxkYzI1WFB8U2V4VXFqVn1GT0BFRjh5Y28+JXlWfT16RkdtanpT
d0t+CnpaMHJpWXFTe3AhY0tJZ1kzSU9QYVc1PUd9dG1JfGt4cU9hcyZLQzV1ZGFiQWUwT0RPZSgm
KHdTQXhrQ3FsbklYYgp6LU4/S3RNQ28keWZXQj8/QUhWfVE1K1oqIVFNfnElMldgNjZeQnRXYGhU
REEkNjRPbT1hbS1lK18yPWY0JXYpZ3cKeitrUCFSSkViZlBrTyFDbEMmMWlZeVo3SWxOQntwPF8p
cV4tYGhSXithV29FWG0kPmhQTUE9V0VoQ3A8KzRZVWRgCkhBcGlWZD5qQmRWCgpsaXRlcmFsIDAK
SGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vcmVzb3VyY2VzLWNzcy1z
Y2FsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4YzMyMTJhYWIzZjBmMDdjMjY4ZDkzOGFk
YzQ2Yzc5MTBiYjkzYWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDM0IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYxCisg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MQorICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDQ1CitsYXllciBhdCAoMzUsOCkgc2l6ZSAxMDB4NDUK
KyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUg
MTAweDQ1CitsYXllciBhdCAoMzUsOCkgc2l6ZSA1MHg0NQorICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDUweDQ1CisgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMzUsOCkgc2l6
ZSA0MDB4NDAwCisgICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICAgIFJlbmRlclNWR1Jlc291cmNlUGF0dGVybiB7cGF0dGVybn0gW2lk
PSJwYXR0ZXJuIl0gW3BhdHRlcm5Vbml0cz11c2VyU3BhY2VPblVzZV0gW3BhdHRlcm5Db250ZW50
VW5pdHM9dXNlclNwYWNlT25Vc2VdCisgICAgICAgICAgUmVuZGVyU1ZHRWxsaXBzZSB7Y2lyY2xl
fSBhdCAoMzUsOCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgw
MDBdfV0gW2N4PTUuMDBdIFtjeT01LjAwXSBbcj01LjAwXQorICAgICAgICBSZW5kZXJTVkdSZXNv
dXJjZU1hc2tlciB7bWFza30gW2lkPSJtYXNrIl0gW21hc2tVbml0cz1vYmplY3RCb3VuZGluZ0Jv
eF0gW21hc2tDb250ZW50VW5pdHM9dXNlclNwYWNlT25Vc2VdCisgICAgICAgICAgUmVuZGVyU1ZH
RWxsaXBzZSB7Y2lyY2xlfSBhdCAoMzUsOCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSNGRkZGRkZdfV0gW2N4PTUuMDBdIFtjeT01LjAwXSBbcj01LjAwXQorICAgICAg
ICBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIge2NsaXBQYXRofSBbaWQ9ImNsaXAiXSBbY2xpcFBh
dGhVbml0cz11c2VyU3BhY2VPblVzZV0KKyAgICAgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJj
bGV9IGF0ICgzNSw4KSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAw
MDAwMF19XSBbY3g9NS4wMF0gW2N5PTUuMDBdIFtyPTUuMDBdCisgICAgICAgICAgUmVuZGVyU1ZH
RWxsaXBzZSB7Y2lyY2xlfSBhdCAoMzUsOCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJ
RF0gW2NvbG9yPSMwMDAwMDBdfV0gW2N4PTUuMDBdIFtjeT01LjAwXSBbcj01LjAwXQorICAgICAg
ICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBbaWQ9ImZpbHRlciJdIFtmaWx0ZXJV
bml0cz1vYmplY3RCb3VuZGluZ0JveF0gW3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFjZU9uVXNlXQor
ICAgICAgICAgIFtmZU9mZnNldCBkeD0iMC4wMCIgZHk9IjAuMDAiXQorICAgICAgICAgICAgW1Nv
dXJjZUdyYXBoaWNdCisgICAgICBSZW5kZXJTVkdFbGxpcHNlIHtjaXJjbGV9IGF0ICgzNSw4KSBz
aXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbY3g9NS4w
MF0gW2N5PTUuMDBdIFtyPTUuMDBdCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgz
MzUsOCkgc2l6ZSAxMDB4MTAwIFt0cmFuc2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkp
IHQ9KDMwLjAwLDAuMDApfV0KKyAgICAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDMzNSw4
KSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVBBVFRFUk5dIFtpZD0icGF0dGVybiJdfV0gW3g9
MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwLjAwXSBbaGVpZ2h0PTEwLjAwXQorICAgICAgUmVuZGVy
U1ZHQ29udGFpbmVyIHtnfSBhdCAoMTg1LDE1OCkgc2l6ZSAxMDB4MTAwIFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDE1LjAwLDE1LjAwKX1dCisgICAgICAgIFJlbmRl
clNWR1JlY3Qge3JlY3R9IGF0ICgxODUsMTU4KSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAuMDBdIFto
ZWlnaHQ9MTAuMDBdCisgICAgICAgICAgW21hc2tlcj0ibWFzayJdIFJlbmRlclNWR1Jlc291cmNl
TWFza2VyIHttYXNrfSBhdCAoMCwwKSBzaXplIDEweDEwCisgICAgICBSZW5kZXJTVkdDb250YWlu
ZXIge2d9IGF0ICgzNSwzMDgpIHNpemUgMTAweDEwMCBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAw
KSgwLjAwLDEuMDApKSB0PSgwLjAwLDMwLjAwKX1dCisgICAgICAgIFJlbmRlclNWR1JlY3Qge3Jl
Y3R9IGF0ICgzNSwzMDgpIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0j
MDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMC4wMF0gW2hlaWdodD0xMC4wMF0K
KyAgICAgICAgICBbY2xpcFBhdGg9ImNsaXAiXSBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIge2Ns
aXBQYXRofSBhdCAoMCwwKSBzaXplIDEweDEwCisgICAgICBSZW5kZXJTVkdDb250YWluZXIge2d9
IGF0ICgzMjUsMjk4KSBzaXplIDExMHgxMTAgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4w
MCwxLjAwKSkgdD0oMzAuMDAsMzAuMDApfV0KKyAgICAgICAgUmVuZGVyU1ZHRWxsaXBzZSB7Y2ly
Y2xlfSBhdCAoMzI1LDI5OCkgc2l6ZSAxMTB4MTEwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDgwMDBdfV0gW2N4PTUuMDBdIFtjeT01LjAwXSBbcj01LjAwXQorICAgICAgICAgIFtmaWx0
ZXI9ImZpbHRlciJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgtMSwtMSkg
c2l6ZSAxMngxMgorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmY2
YjU5YzI3MjM1MDAyZDMxNmU0Zjc4Y2I2YmNkMmRhNDE3MWRkYS4uMDY0MmIwNmJhY2FiMDEwYWJj
MWFiOTlkOTRiZmEyYWM5N2I5MGQyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjQ5LDYgKzIyNDksOSBAQCBjcmJ1Zy5jb20vNjIz
MDEgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5m
aWxsU3R5bGUucAogY3JidWcuY29tLzYyMzAxIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1
L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLmVtcHR5Lmh0
bWwgWyBGYWlsdXJlIF0KIGNyYnVnLmNvbS82MjMwMSBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFs
L2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuaW5jb21wbGV0ZS5vbWl0
dGVkLmh0bWwgWyBGYWlsdXJlIF0KIAorIyBOZXcgdGVzdCwgbmVlZHMgYmFzZWxpbmUgYWZ0ZXIg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTU4Nword2Via2l0Lm9y
Zy9iLzExMTU4NyBzdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLmh0bWwgWyBNaXNzaW5n
IFBhc3MgXQorCiB3ZWJraXQub3JnL2IvNDgyODggY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21w
b3NpdGUub3BlcmF0aW9uLmNsZWFyLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi80ODI4
OCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNv
bXBvc2l0ZS5vcGVyYXRpb24uY2xlYXIuaHRtbCBbIEZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDMxZTc4ODc5Y2ExZGFkNDZmOGUwYmI0
NTkxNWYwOTI0OWIwODYwMTUuLjA3NDE3ZDVhODAzZWZlYmI0ZDNkYTFhZmE2ODg4NjNiY2M3NDJl
MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC01Nzcs
NiArNTc3LDkgQEAgd2Via2l0Lm9yZy9iLzk4ODk1IHBlcmYvYWNjZXNzaWJpbGl0eS10aXRsZS11
aS1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KICMgbm90IFNLSVAsIGp1c3QgV09OVEZJWC4KIHdlYmtp
dC5vcmcvYi82NjIxOCBmYXN0L2hhcm5lc3Mvc2FtcGxlLWZhaWwtbWlzbWF0Y2gtcmVmdGVzdC5o
dG1sIFsgV29udEZpeCBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBOZXcgdGVzdCwgbmVlZHMgYmFz
ZWxpbmUgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTU4
Nword2Via2l0Lm9yZy9iLzExMTU4NyBzdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLmh0
bWwgWyBNaXNzaW5nIF0KKwogIyBUaGVzZSB0ZXN0cyBuZWVkIHRvIGJlIHJlYmFzZWxpbmVkIGFm
dGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTk4NAogd2Via2l0
Lm9yZy9iLzk5OTg0IHN2Zy9hcy1pbWFnZS9pbWFnZS1wcmVzZXJ2ZUFzcGVjdFJhdGlvLWFsbC5z
dmcgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzk5OTg0IHN2Zy9maWx0
ZXJzL2ZlSW1hZ2UtcHJlc2VydmVBc3BlY3RSYXRpby1hbGwuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
MjFmMTI2MGMzNzE3NTI4YjdiYTIyYzRkMTZhOGMzMTRiYmUxNTFkMS4uZjE0NjNmOWI4ZjQ5ZjI0
MmUwODE0ZTIwN2RlM2IyYTI2MzY1ZjdmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTEwMCw2ICsxMDAsOSBAQCB3ZWJraXQub3JnL2IvOTgzNDggYWNj
ZXNzaWJpbGl0eS90YWJsZS13aXRoLWFyaWEtcm9sZS5odG1sIFsgV29udEZpeCBNaXNzaW5nIF0K
IHdlYmtpdC5vcmcvYi85ODM0OCBhY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMuaHRtbCBb
IFdvbnRGaXggTWlzc2luZyBdCiB3ZWJraXQub3JnL2IvOTgzNDggYWNjZXNzaWJpbGl0eS9wbHVn
aW4uaHRtbCBbIFdvbnRGaXggTWlzc2luZyBdCiAKKyMgTmV3IHRlc3QsIG5lZWRzIGJhc2VsaW5l
IGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1ODcKK3dl
YmtpdC5vcmcvYi8xMTE1ODcgc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC5odG1sIFsg
TWlzc2luZyBdCisKICMgRmVhdHVyZSBkaXNhYmxlZCwgc2VlOiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU0MjUKIHdlYmtpdC5vcmcvYi85ODkyNSBmYXN0L3ZpZXdw
b3J0L3ZpZXdwb3J0LWxlZ2FjeS1oYW5kaGVsZGZyaWVuZGx5Lmh0bWwgWyBTa2lwIF0KIHdlYmtp
dC5vcmcvYi85ODkyNSBmYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LWxlZ2FjeS1tb2JpbGVvcHRpbWl6
ZWQtMi5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGRhZTU4Y2NkMTc1NWY5OTdjYTgyNjNkNGVkMTU4ZmJjM2I3NGIyOTkuLjViMDAy
OTM2ZGZhMmY5NzRhMzkzZGMyYjYxMzI5MjlhMzhiNDk2NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDAzLDYgKzE0MDMsOSBAQCB3ZWJraXQub3Jn
L2IvMTA2NDE1IGZhc3Qvd29ya2Vycy93b3JrZXItY2xvc2UtbW9yZS5odG1sIFsgUGFzcyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi8xMDY0MTUgZmFzdC93b3JrZXJzL3dvcmtlci1kb2N1bWVudC1s
ZWFrLmh0bWwgWyBQYXNzIEZhaWx1cmUgXSAKIHdlYmtpdC5vcmcvYi8xMDY0MTUgZmFzdC93b3Jr
ZXJzL3dvcmtlci1saWZlY3ljbGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKKyMgTmV3IHRlc3Qs
IG5lZWRzIGJhc2VsaW5lIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTE1ODcKK3dlYmtpdC5vcmcvYi8xMTE1ODcgc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3Nz
LXNjYWxlZC5odG1sIFsgTWlzc2luZyBdCisKICMgU3BlbGxjaGVja2VyIGJlaGF2aW9yIHRlc3Rz
Lgogd2Via2l0Lm9yZy9iLzEwODM3MCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1j
bGlja2VkLXdvcmQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEwODM3MCBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1s
IFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAz
MTdmMGNlNTc5NTY0N2U0ZDY4NGM3NjRhYTE0MDkyMmEwNzE2YjdhLi5iMjgxNTQ5N2E1MGMzM2I4
MDAzZDFkZDQxYzM0Mzk3ZTRmMWE5ZjQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTEzMzUsNiArMTMzNSw5IEBAIHN2Zy9jYXJ0by5uZXQvY29tYm9ib3gu
c3ZnCiBzdmcvaGl0dGVzdC96ZXJvLWxlbmd0aC1yb3VuZC1jYXAtcGF0aC54aHRtbAogc3ZnL2hp
dHRlc3QvemVyby1sZW5ndGgtc3F1YXJlLWNhcC1wYXRoLnhodG1sCiAKKyMgTmV3IHRlc3QsIG5l
ZWRzIGJhc2VsaW5lIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTE1ODcKK3dlYmtpdC5vcmcvYi8xMTE1ODcgc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNj
YWxlZC5odG1sIFsgTWlzc2luZyBdCisKICMgW1F0XSBzdmcvYW5pbWF0aW9ucyB0ZXN0cyBhcmUg
dmVyeSBmbGFreQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA3
MDMKIHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtZWxlbS0wOC10LWRydC5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTgxY2EzNzMwYzNiY2Y1ODVjMzQzMzI0ZDk3Y2YzOTM0YzhhMTdjNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vcmVzb3VyY2VzLWNzcy1zY2FsZWQuaHRtbApAQCAt
MCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisKKzwhLS0gVGVz
dCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTU4NyAtLT4K
KzwhLS0gUGFzc2VzIGlmIGFsbCBjaXJjbGVzIGFyZSBkcmF3biBhdCBoaWdoIHJlc29sdXRpb24s
IHdpdGhvdXQgcGl4ZWxhdGlvbiAtLT4KKworPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZl
OyBsZWZ0OiAyN3B4OyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoNSk7IC13ZWJraXQtdHJhbnNm
b3JtLW9yaWdpbjogMCAwOyB3aWR0aDogMTAwcHg7Ij4KKzxkaXYgc3R5bGU9Ii13ZWJraXQtdHJh
bnNmb3JtOiBzY2FsZSgyKTsgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7IHdpZHRoOiA1
MHB4OyI+CisgIDxzdmcgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciPgorICAgIDxkZWZzPgorICAgICAgPHBhdHRlcm4gaWQ9InBhdHRlcm4i
IHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+Cisg
ICAgICAgIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBmaWxsPSJncmVlbiIvPgorICAgICAg
PC9wYXR0ZXJuPgorCisgICAgICA8bWFzayBpZD0ibWFzayI+CisgICAgICAgIDxjaXJjbGUgY3g9
IjUiIGN5PSI1IiByPSI1IiBmaWxsPSJ3aGl0ZSIvPgorICAgICAgPC9tYXNrPgorCisgICAgICA8
Y2xpcFBhdGggaWQ9ImNsaXAiPgorICAgICAgICA8Y2lyY2xlIGN4PSI1IiBjeT0iNSIgcj0iNSIv
PgorICAgICAgICA8IS0tIG11bHRpcGxlIHNoYXBlcyB0byBmb3JjZSBtYXNrLWJhc2VkIGNsaXBw
aW5nIC0tPgorICAgICAgICA8Y2lyY2xlIGN4PSI1IiBjeT0iNSIgcj0iNSIvPgorICAgICAgPC9j
bGlwUGF0aD4KKworICAgICAgPGZpbHRlciBpZD0iZmlsdGVyIj4KKyAgICAgICAgPGZlT2Zmc2V0
IGR4PSIwIiBkeT0iMCIvPgorICAgICAgPC9maWx0ZXI+CisgICAgPC9kZWZzPgorCisgICAgPGNp
cmNsZSBjeD0iNSIgY3k9IjUiIHI9IjUiIGZpbGw9ImdyZWVuIi8+CisKKyAgICA8ZyB0cmFuc2Zv
cm09InRyYW5zbGF0ZSgzMCkiPgorICAgICAgPHJlY3Qgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiBh
c3Ryb2tlPSJyZWQiIGZpbGw9InVybCgjcGF0dGVybikiPjwvcmVjdD4KKyAgICA8L2c+CisKKyAg
ICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNSAxNSkiPgorICAgICAgPHJlY3Qgd2lkdGg9IjEw
IiBoZWlnaHQ9IjEwIiBhc3Ryb2tlPSJyZWQiIGZpbGw9ImdyZWVuIiBtYXNrPSJ1cmwoI21hc2sp
Ii8+CisgICAgPC9nPgorCisgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAzMCkiPgorICAg
ICAgPHJlY3Qgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiBhc3Ryb2tlPSJyZWQiIGZpbGw9ImdyZWVu
IiBjbGlwLXBhdGg9InVybCgjY2xpcCkiLz4KKyAgICA8L2c+CisKKyAgICA8ZyB0cmFuc2Zvcm09
InRyYW5zbGF0ZSgzMCAzMCkiPgorICAgICAgPGNpcmNsZSBjeD0iNSIgY3k9IjUiIHI9IjUiIGZp
bGw9ImdyZWVuIiBmaWx0ZXI9InVybCgjZmlsdGVyKSIvPgorICAgIDwvZz4KKyAgPC9zdmc+Cis8
L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192467</attachid>
            <date>2013-03-11 07:31:42 -0700</date>
            <delta_ts>2013-03-11 12:04:02 -0700</delta_ts>
            <desc>Switch paint() paths to getCTM.</desc>
            <filename>getctm.patch</filename>
            <type>text/plain</type>
            <size>4175</size>
            <attacher name="Florin Malita">fmalita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUZpbHRlci5jcHAKaW5kZXggODQzMDI3ZS4uZDdlZTMwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAK
QEAgLTE2NSw4ICsxNjUsNyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJl
c291cmNlKFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJTdHlsZSosCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIC8vIERldGVybWluZSBhYnNvbHV0ZSB0cmFuc2Zvcm1hdGlvbiBtYXRy
aXggZm9yIGZpbHRlci4gCi0gICAgQWZmaW5lVHJhbnNmb3JtIGFic29sdXRlVHJhbnNmb3JtOwot
ICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1v
c3RTVkdDb29yZGluYXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0pOworICAgIEFm
ZmluZVRyYW5zZm9ybSBhYnNvbHV0ZVRyYW5zZm9ybSA9IGNvbnRleHQtPmdldENUTSgpOwogICAg
IGlmICghYWJzb2x1dGVUcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZU1hc2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlTWFza2VyLmNwcAppbmRleCAxZjUwMWE4Li5mMDVlMGJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFz
a2VyLmNwcApAQCAtOTEsOCArOTEsNyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlTWFza2VyOjph
cHBseVJlc291cmNlKFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJTdHlsZSosCiAKICAgICBN
YXNrZXJEYXRhKiBtYXNrZXJEYXRhID0gbV9tYXNrZXIuZ2V0KG9iamVjdCk7CiAKLSAgICBBZmZp
bmVUcmFuc2Zvcm0gYWJzb2x1dGVUcmFuc2Zvcm07Ci0gICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6
Y2FsY3VsYXRlVHJhbnNmb3JtYXRpb25Ub091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0ob2Jq
ZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSk7CisgICAgQWZmaW5lVHJhbnNmb3JtIGFic29sdXRlVHJh
bnNmb3JtID0gY29udGV4dC0+Z2V0Q1RNKCk7CiAKICAgICBGbG9hdFJlY3QgcmVwYWludFJlY3Qg
PSBvYmplY3QtPnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJu
LmNwcAppbmRleCBiM2Y2YzlkLi4zZGM5NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCkBAIC01NSw3
ICs1NSw3IEBAIHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuOjpyZW1vdmVDbGllbnRGcm9t
Q2FjaGUoUmVuZGVyT2JqZWN0KiBjbGllbnQsIGJvb2wKICAgICBtYXJrQ2xpZW50Rm9ySW52YWxp
ZGF0aW9uKGNsaWVudCwgbWFya0ZvckludmFsaWRhdGlvbiA/IFJlcGFpbnRJbnZhbGlkYXRpb24g
OiBQYXJlbnRPbmx5SW52YWxpZGF0aW9uKTsKIH0KIAotUGF0dGVybkRhdGEqIFJlbmRlclNWR1Jl
c291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKFJlbmRlck9iamVjdCogb2JqZWN0LCB1bnNpZ25l
ZCBzaG9ydCByZXNvdXJjZU1vZGUpCitQYXR0ZXJuRGF0YSogUmVuZGVyU1ZHUmVzb3VyY2VQYXR0
ZXJuOjpidWlsZFBhdHRlcm4oUmVuZGVyT2JqZWN0KiBvYmplY3QsIHVuc2lnbmVkIHNob3J0IHJl
c291cmNlTW9kZSwgR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCkKIHsKICAgICBQYXR0ZXJuRGF0
YSogY3VycmVudERhdGEgPSBtX3BhdHRlcm5NYXAuZ2V0KG9iamVjdCk7CiAgICAgaWYgKGN1cnJl
bnREYXRhICYmIGN1cnJlbnREYXRhLT5wYXR0ZXJuKQpAQCAtODMsOCArODMsNyBAQCBQYXR0ZXJu
RGF0YSogUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuOjpidWlsZFBhdHRlcm4oUmVuZGVyT2JqZWN0
KiBvYmplY3QsIHVuc2lnbgogICAgIGlmICghYnVpbGRUaWxlSW1hZ2VUcmFuc2Zvcm0ob2JqZWN0
LCBtX2F0dHJpYnV0ZXMsIHBhdHRlcm5FbGVtZW50LCB0aWxlQm91bmRhcmllcywgdGlsZUltYWdl
VHJhbnNmb3JtKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBBZmZpbmVUcmFuc2Zvcm0gYWJz
b2x1dGVUcmFuc2Zvcm1JZ25vcmluZ1JvdGF0aW9uOwotICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6
OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RTVkdDb29yZGluYXRlU3lzdGVtKG9i
amVjdCwgYWJzb2x1dGVUcmFuc2Zvcm1JZ25vcmluZ1JvdGF0aW9uKTsKKyAgICBBZmZpbmVUcmFu
c2Zvcm0gYWJzb2x1dGVUcmFuc2Zvcm1JZ25vcmluZ1JvdGF0aW9uID0gY29udGV4dC0+Z2V0Q1RN
KCk7CiAKICAgICAvLyBJZ25vcmUgMkQgcm90YXRpb24sIGFzIGl0IGRvZXNuJ3QgYWZmZWN0IHRo
ZSBzaXplIG9mIHRoZSB0aWxlLgogICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNsZWFyMkRSb3Rh
dGlvbihhYnNvbHV0ZVRyYW5zZm9ybUlnbm9yaW5nUm90YXRpb24pOwpAQCAtMTQ0LDcgKzE0Myw3
IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuOjphcHBseVJlc291cmNlKFJlbmRlck9i
amVjdCogb2JqZWN0LCBSZW5kZXJTdHlsZSoKICAgICBpZiAobV9hdHRyaWJ1dGVzLnBhdHRlcm5V
bml0cygpID09IFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCAm
JiBvYmplY3RCb3VuZGluZ0JveC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIFBhdHRlcm5EYXRhKiBwYXR0ZXJuRGF0YSA9IGJ1aWxkUGF0dGVybihvYmplY3QsIHJlc291
cmNlTW9kZSk7CisgICAgUGF0dGVybkRhdGEqIHBhdHRlcm5EYXRhID0gYnVpbGRQYXR0ZXJuKG9i
amVjdCwgcmVzb3VyY2VNb2RlLCBjb250ZXh0KTsKICAgICBpZiAoIXBhdHRlcm5EYXRhKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5oCmluZGV4IGQ0ZGE1MzUuLjI1N2YyMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VQYXR0ZXJuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZVBhdHRlcm4uaApAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFJlY3QmIGFic29sdXRl
VGlsZUJvdW5kYXJpZXMsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdGlsZUltYWdlVHJhbnNmb3Jt
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdFJlY3Qm
IGNsYW1wZWRBYnNvbHV0ZVRpbGVCb3VuZGFyaWVzKSBjb25zdDsKIAotICAgIFBhdHRlcm5EYXRh
KiBidWlsZFBhdHRlcm4oUmVuZGVyT2JqZWN0KiwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2Rl
KTsKKyAgICBQYXR0ZXJuRGF0YSogYnVpbGRQYXR0ZXJuKFJlbmRlck9iamVjdCosIHVuc2lnbmVk
IHNob3J0IHJlc291cmNlTW9kZSwgR3JhcGhpY3NDb250ZXh0KiYpOwogCiAgICAgYm9vbCBtX3No
b3VsZENvbGxlY3RQYXR0ZXJuQXR0cmlidXRlcyA6IDE7CiAgICAgUGF0dGVybkF0dHJpYnV0ZXMg
bV9hdHRyaWJ1dGVzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192525</attachid>
            <date>2013-03-11 12:04:08 -0700</date>
            <delta_ts>2013-03-12 07:41:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111587-20130311150008.patch</filename>
            <type>text/plain</type>
            <size>14475</size>
            <attacher name="Florin Malita">fmalita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUyYmJjZjBjMDIxZWM1
NzU1NTk4OTk3YTZhMzljNDBlMTk1NTYzYi4uMjI4MTJmOGZhMmEzZTI5MjA4ZmFmN2E4ZTljODE4
MTVlZDBiNzk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTExICBGbG9y
aW4gTWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU1ZHIFBhdHRlcm4g
cGl4ZWxhdGVkIG9uIGlubGluZSBTVkcgd2l0aCBDU1MgdHJhbnNmb3JtcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNTg3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjYWxjdWxhdGluZyB0aGUg
cmVzb2x1dGlvbiBmb3IgcmVzb3VyY2UgaW1hZ2UgYnVmZmVycywgd2UgbmVlZCB0byBhbHNvIGNv
bnNpZGVyIENTUworICAgICAgICB0cmFuc2Zvcm1zLiBUaGlzIHBhdGNoIHVwZGF0ZXMgY2FsY3Vs
YXRlVHJhbnNmb3JtYXRpb25Ub091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0oKQorICAgICAg
ICAocmVuYW1lZCB0byBjYWxjdWxhdGVUcmFuc2Zvcm1hdGlvblRvT3V0ZXJtb3N0Q29vcmRpbmF0
ZVN5c3RlbSkgdG8gaW5jbHVkZSB0aGUgYWZmaW5lCisgICAgICAgIGNvbXBvbmVudCBmcm9tIENT
UyB0cmFuc2Zvcm1zIGJ5IHdhbGtpbmcgdGhlIHBhcmVudCBsYXllciB0cmVlLiAgICAgICAgCisK
KyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC5odG1sCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcHBpbmdUb0Nv
bnRleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVz
b3VyY2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNYXNrQW5kU3dhcENvbnRleHRGb3JUZXh0
R3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y2xpcFRvVGV4dE1hc2spOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5UmVzb3VyY2UpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNWR1Jlc291cmNlUGF0dGVybjo6YnVpbGRQYXR0ZXJuKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlU2NyZWVuRm9udFNpemVTY2FsaW5nRmFj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRy
YW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFNWR1JlbmRlcmluZ0Nv
bnRleHQpOgorCiAyMDEzLTAzLTExICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgY29tbW9uIHBhcnRzIG9mIG5h
dGl2ZSBwcm9maWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCmluZGV4IDczMzllMjg1OWJiN2U3NWVlYThi
ZGU3MDAzZWUyYWUwZmNkMDNmZjUuLjI0NDE1MDU2OTAxMTk4ZDI5OTYxZjFlYjc1ZmE4MjdkNmVj
ODBkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VDbGlwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIFJlbmRl
clNWR1Jlc291cmNlQ2xpcHBlcjo6YXBwbHlDbGlwcGluZ1RvQ29udGV4dChSZW5kZXJPYmplY3Qq
IG9iamVjdCwgY29ucwogICAgIH0KIAogICAgIEFmZmluZVRyYW5zZm9ybSBhYnNvbHV0ZVRyYW5z
Zm9ybTsKLSAgICBTVkdSZW5kZXJpbmdDb250ZXh0OjpjYWxjdWxhdGVUcmFuc2Zvcm1hdGlvblRv
T3V0ZXJtb3N0U1ZHQ29vcmRpbmF0ZVN5c3RlbShvYmplY3QsIGFic29sdXRlVHJhbnNmb3JtKTsK
KyAgICBTVkdSZW5kZXJpbmdDb250ZXh0OjpjYWxjdWxhdGVUcmFuc2Zvcm1hdGlvblRvT3V0ZXJt
b3N0Q29vcmRpbmF0ZVN5c3RlbShvYmplY3QsIGFic29sdXRlVHJhbnNmb3JtKTsKIAogICAgIGlm
IChzaG91bGRDcmVhdGVDbGlwRGF0YSAmJiAhcmVwYWludFJlY3QuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIGlmICghU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIocmVwYWludFJl
Y3QsIGFic29sdXRlVHJhbnNmb3JtLCBjbGlwcGVyRGF0YS0+Y2xpcE1hc2tJbWFnZSwgQ29sb3JT
cGFjZURldmljZVJHQiwgVW5hY2NlbGVyYXRlZCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCmluZGV4IDg0MzAy
N2ViNzEwODdiYWU5ZmI4OGQ3MTNkZjJhMmQyNjhiMzExNWMuLmJhMDczYmVmYzYwMGY3OThjN2U2
ZTRkOTRmYzQzMDBhMzBjMGUxNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCkBAIC0xNjYsNyArMTY2LDcg
QEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdXJjZShSZW5kZXJPYmpl
Y3QqIG9iamVjdCwgUmVuZGVyU3R5bGUqLAogCiAgICAgLy8gRGV0ZXJtaW5lIGFic29sdXRlIHRy
YW5zZm9ybWF0aW9uIG1hdHJpeCBmb3IgZmlsdGVyLiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gYWJz
b2x1dGVUcmFuc2Zvcm07Ci0gICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNm
b3JtYXRpb25Ub091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0ob2JqZWN0LCBhYnNvbHV0ZVRy
YW5zZm9ybSk7CisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNmb3JtYXRp
b25Ub091dGVybW9zdENvb3JkaW5hdGVTeXN0ZW0ob2JqZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSk7
CiAgICAgaWYgKCFhYnNvbHV0ZVRyYW5zZm9ybS5pc0ludmVydGlibGUoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlR3JhZGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmNwcAppbmRleCAzMmE3MjkwYTM1YjY2YjM1MzI0
YTY3ZWRlY2Q4MWE4MTg3ZGYyMzEzLi5iODBjYjUyYzE2MzgzNDgyMTcwNGFiMzE3ZTQzYjAyNmU5
OGM1N2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlR3JhZGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIGNyZWF0ZU1hc2tBbmRTd2FwQ29udGV4dEZvclRleHRHcmFkaWVudChHcmFwaGlj
c0NvbnRleHQqJiBjb24KICAgICBBU1NFUlQodGV4dFJvb3RCbG9jayk7CiAKICAgICBBZmZpbmVU
cmFuc2Zvcm0gYWJzb2x1dGVUcmFuc2Zvcm07Ci0gICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2Fs
Y3VsYXRlVHJhbnNmb3JtYXRpb25Ub091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0odGV4dFJv
b3RCbG9jaywgYWJzb2x1dGVUcmFuc2Zvcm0pOworICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNh
bGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKHRleHRSb290
QmxvY2ssIGFic29sdXRlVHJhbnNmb3JtKTsKIAogICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9
IHRleHRSb290QmxvY2stPnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCk7CiAgICAgT3du
UHRyPEltYWdlQnVmZmVyPiBtYXNrSW1hZ2U7CkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBpbmxp
bmUgQWZmaW5lVHJhbnNmb3JtIGNsaXBUb1RleHRNYXNrKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwKICAgICBBU1NFUlQodGV4dFJvb3RCbG9jayk7CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gYWJz
b2x1dGVUcmFuc2Zvcm07Ci0gICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNm
b3JtYXRpb25Ub091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0odGV4dFJvb3RCbG9jaywgYWJz
b2x1dGVUcmFuc2Zvcm0pOworICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5z
Zm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKHRleHRSb290QmxvY2ssIGFic29s
dXRlVHJhbnNmb3JtKTsKIAogICAgIHRhcmdldFJlY3QgPSB0ZXh0Um9vdEJsb2NrLT5yZXBhaW50
UmVjdEluTG9jYWxDb29yZGluYXRlcygpOwogICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNsaXBU
b0ltYWdlQnVmZmVyKGNvbnRleHQsIGFic29sdXRlVHJhbnNmb3JtLCB0YXJnZXRSZWN0LCBpbWFn
ZUJ1ZmZlciwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAppbmRleCAxZjUwMWE4OGJkOGNjMWUxZjk5
MDk3YTIzZDRiNDQ1ZTAzYjZmNTc4Li43ZTA3YmRiNTUyMGNkOGU4ZTRhYjM5NmFjNzYwNjZlNDYx
OWZhYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlTWFza2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlTWFza2VyLmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIFJlbmRlclNW
R1Jlc291cmNlTWFza2VyOjphcHBseVJlc291cmNlKFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5k
ZXJTdHlsZSosCiAgICAgTWFza2VyRGF0YSogbWFza2VyRGF0YSA9IG1fbWFza2VyLmdldChvYmpl
Y3QpOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIGFic29sdXRlVHJhbnNmb3JtOwotICAgIFNWR1Jl
bmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RTVkdDb29y
ZGluYXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0pOworICAgIFNWR1JlbmRlcmlu
Z0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lz
dGVtKG9iamVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0pOwogCiAgICAgRmxvYXRSZWN0IHJlcGFpbnRS
ZWN0ID0gb2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVy
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0
dGVybi5jcHAKaW5kZXggYjNmNmM5ZGI0MjVlMDYwNThiNjIwY2NkNzZjNTM2NTRjMTY3OTlkNS4u
YTdhYjgyZmE2MmEwNmRmMTM0ZGZkZjJkNDk2MDhhYjgwZTgwNmVkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJu
LmNwcApAQCAtODQsNyArODQsNyBAQCBQYXR0ZXJuRGF0YSogUmVuZGVyU1ZHUmVzb3VyY2VQYXR0
ZXJuOjpidWlsZFBhdHRlcm4oUmVuZGVyT2JqZWN0KiBvYmplY3QsIHVuc2lnbgogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBhYnNvbHV0ZVRyYW5zZm9ybUlnbm9yaW5n
Um90YXRpb247Ci0gICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNmb3JtYXRp
b25Ub091dGVybW9zdFNWR0Nvb3JkaW5hdGVTeXN0ZW0ob2JqZWN0LCBhYnNvbHV0ZVRyYW5zZm9y
bUlnbm9yaW5nUm90YXRpb24pOworICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRy
YW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKG9iamVjdCwgYWJzb2x1dGVU
cmFuc2Zvcm1JZ25vcmluZ1JvdGF0aW9uKTsKIAogICAgIC8vIElnbm9yZSAyRCByb3RhdGlvbiwg
YXMgaXQgZG9lc24ndCBhZmZlY3QgdGhlIHNpemUgb2YgdGhlIHRpbGUuCiAgICAgU1ZHUmVuZGVy
aW5nQ29udGV4dDo6Y2xlYXIyRFJvdGF0aW9uKGFic29sdXRlVHJhbnNmb3JtSWdub3JpbmdSb3Rh
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
cmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJp
bmdDb250ZXh0LmNwcAppbmRleCBlMjc1OTMyZTc1NWI1MWMyMDBkMjNjNzhlMmQxOWYyNDkzMjM2
OTQ0Li5lODkwNGM4ODA3MDlkNjdjM2MxMWFjMDU3NDk0M2U4MTg1MzExNWU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJCYXNpY1NoYXBlcy5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIK
ICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291
cmNlQ2xpcHBlci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmgiCkBAIC0x
ODgsMjEgKzE4OSwzNCBAQCBmbG9hdCBTVkdSZW5kZXJpbmdDb250ZXh0OjpjYWxjdWxhdGVTY3Jl
ZW5Gb250U2l6ZVNjYWxpbmdGYWN0b3IoY29uc3QgUmVuZGVyT2JqZQogICAgIEFTU0VSVChyZW5k
ZXJlcik7CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtOwotICAgIGNhbGN1bGF0ZVRyYW5zZm9y
bWF0aW9uVG9PdXRlcm1vc3RTVkdDb29yZGluYXRlU3lzdGVtKHJlbmRlcmVyLCBjdG0pOworICAg
IGNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKHJlbmRl
cmVyLCBjdG0pOwogICAgIHJldHVybiBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHNxcnQoKHBvdyhj
dG0ueFNjYWxlKCksIDIpICsgcG93KGN0bS55U2NhbGUoKSwgMikpIC8gMikpOwogfQogCi12b2lk
IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RT
VkdDb29yZGluYXRlU3lzdGVtKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFmZmluZVRy
YW5zZm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0pCit2b2lkIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNh
bGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKGNvbnN0IFJl
bmRlck9iamVjdCogcmVuZGVyZXIsIEFmZmluZVRyYW5zZm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0p
CiB7Ci0gICAgY29uc3QgUmVuZGVyT2JqZWN0KiBjdXJyZW50ID0gcmVuZGVyZXI7Ci0gICAgQVNT
RVJUKGN1cnJlbnQpOwotCisgICAgQVNTRVJUKHJlbmRlcmVyKTsKICAgICBhYnNvbHV0ZVRyYW5z
Zm9ybSA9IGN1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRpb24oKTsKLSAgICB3aGlsZSAoY3VycmVu
dCkgewotICAgICAgICBhYnNvbHV0ZVRyYW5zZm9ybSA9IGN1cnJlbnQtPmxvY2FsVG9QYXJlbnRU
cmFuc2Zvcm0oKSAqIGFic29sdXRlVHJhbnNmb3JtOwotICAgICAgICBpZiAoY3VycmVudC0+aXNT
VkdSb290KCkpCisKKyAgICAvLyBXYWxrIHVwIHRoZSByZW5kZXIgdHJlZSwgYWNjdW11bGF0aW5n
IFNWRyB0cmFuc2Zvcm1zLgorICAgIHdoaWxlIChyZW5kZXJlcikgeworICAgICAgICBhYnNvbHV0
ZVRyYW5zZm9ybSA9IHJlbmRlcmVyLT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkgKiBhYnNvbHV0
ZVRyYW5zZm9ybTsKKyAgICAgICAgaWYgKHJlbmRlcmVyLT5pc1NWR1Jvb3QoKSkKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5wYXJlbnQoKTsKKyAgICB9
CisKKyAgICAvLyBDb250aW51ZSB3YWxraW5nIHVwIHRoZSBsYXllciB0cmVlLCBhY2N1bXVsYXRp
bmcgQ1NTIHRyYW5zZm9ybXMuCisgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gcmVuZGVyZXIgPyBy
ZW5kZXJlci0+ZW5jbG9zaW5nTGF5ZXIoKSA6IDA7CisgICAgd2hpbGUgKGxheWVyKSB7CisgICAg
ICAgIGlmIChUcmFuc2Zvcm1hdGlvbk1hdHJpeCogbGF5ZXJUcmFuc2Zvcm0gPSBsYXllci0+dHJh
bnNmb3JtKCkpCisgICAgICAgICAgICBhYnNvbHV0ZVRyYW5zZm9ybSA9IGxheWVyVHJhbnNmb3Jt
LT50b0FmZmluZVRyYW5zZm9ybSgpICogYWJzb2x1dGVUcmFuc2Zvcm07CisKKyAgICAgICAgLy8g
V2UgY2FuIHN0b3AgYXQgY29tcG9zaXRpbmcgbGF5ZXJzLCB0byBtYXRjaCB0aGUgYmFja2luZyBy
ZXNvbHV0aW9uLgorICAgICAgICBpZiAobGF5ZXItPmlzQ29tcG9zaXRlZCgpKQogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5wYXJlbnQoKTsKKworICAgICAg
ICBsYXllciA9IGxheWVyLT5wYXJlbnQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggNGViOWMyNTU1
NDNlZTg1NTU0ODhlMDVkZmRlZTA2ODJiMDkxMzIwMS4uN2UxNjEyN2FhNzA5OTUwN2JlNzdlM2M1
OWUyNzlhNmI5YjY2MWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIGNsaXBUb0ltYWdlQnVmZmVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgYWJzb2x1dGVUcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVj
dCwgT3duUHRyPEltYWdlQnVmZmVyPiYsIGJvb2wgc2FmZVRvQ2xlYXIpOwogCiAgICAgc3RhdGlj
IGZsb2F0IGNhbGN1bGF0ZVNjcmVlbkZvbnRTaXplU2NhbGluZ0ZhY3Rvcihjb25zdCBSZW5kZXJP
YmplY3QqKTsKLSAgICBzdGF0aWMgdm9pZCBjYWxjdWxhdGVUcmFuc2Zvcm1hdGlvblRvT3V0ZXJt
b3N0U1ZHQ29vcmRpbmF0ZVN5c3RlbShjb25zdCBSZW5kZXJPYmplY3QqLCBBZmZpbmVUcmFuc2Zv
cm0mIGFic29sdXRlVHJhbnNmb3JtKTsKKyAgICBzdGF0aWMgdm9pZCBjYWxjdWxhdGVUcmFuc2Zv
cm1hdGlvblRvT3V0ZXJtb3N0Q29vcmRpbmF0ZVN5c3RlbShjb25zdCBSZW5kZXJPYmplY3QqLCBB
ZmZpbmVUcmFuc2Zvcm0mIGFic29sdXRlVHJhbnNmb3JtKTsKICAgICBzdGF0aWMgSW50U2l6ZSBj
bGFtcGVkQWJzb2x1dGVTaXplKGNvbnN0IEludFNpemUmKTsKICAgICBzdGF0aWMgRmxvYXRSZWN0
IGNsYW1wZWRBYnNvbHV0ZVRhcmdldFJlY3QoY29uc3QgRmxvYXRSZWN0JiBhYnNvbHV0ZVRhcmdl
dFJlY3QpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyMkRSb3RhdGlvbihBZmZpbmVUcmFuc2Zvcm0m
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAxYzg4MDMyZTI5MjU3YzBhNzIyNGE0NWRmMzBkZTI2NmRiN2Y1MzZiLi40NGEx
NmZlZTFlYzVjOWI0NjdjMDhlY2IwNWI3ZDgzMTRkNjFjYzc5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTMtMDMtMTEgIEZsb3JpbiBNYWxpdGEgIDxmbWFsaXRhQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBTVkcgUGF0dGVybiBwaXhlbGF0ZWQgb24gaW5saW5lIFNWRyB3aXRoIENTUyB0cmFu
c2Zvcm1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTE1ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN2Zy9jdXN0b20vcmVzb3VyY2VzLWNzcy1zY2FsZWQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC5odG1sOiBBZGRlZC4KKwog
MjAxMy0wMy0xMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBFRkwgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE4ZjBjZmQ3NTU2YTI5MTRhNDVjMWQyZWQ1MTc0NDhiNTBkYjg0YzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVk
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorCis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IDI3cHg7IHdp
ZHRoOiAxMDBweDsiPgorPGRpdiBzdHlsZT0id2lkdGg6IDUwcHg7Ij4KKyAgPHN2ZyB3aWR0aD0i
NjAwIiBoZWlnaHQ9IjQwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAg
ICA8ZGVmcz4KKyAgICAgIDxwYXR0ZXJuIGlkPSJwYXR0ZXJuIiB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjEwMCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CisgICAgICAgIDxjaXJjbGUgY3g9
IjUwIiBjeT0iNTAiIHI9IjUwIiBmaWxsPSJncmVlbiIvPgorICAgICAgPC9wYXR0ZXJuPgorCisg
ICAgICA8bWFzayBpZD0ibWFzayI+CisgICAgICAgIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9
IjUwIiBmaWxsPSJ3aGl0ZSIvPgorICAgICAgPC9tYXNrPgorCisgICAgICA8Y2xpcFBhdGggaWQ9
ImNsaXAiPgorICAgICAgICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSI1MCIvPgorICAgICAg
ICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSI1MCIvPgorICAgICAgPC9jbGlwUGF0aD4KKwor
ICAgICAgPGZpbHRlciBpZD0iZmlsdGVyIj4KKyAgICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0i
MCIvPgorICAgICAgPC9maWx0ZXI+CisgICAgPC9kZWZzPgorCisgICAgPGNpcmNsZSBjeD0iNTAi
IGN5PSI1MCIgcj0iNTAiIGZpbGw9ImdyZWVuIi8+CisKKyAgICA8ZyB0cmFuc2Zvcm09InRyYW5z
bGF0ZSgzMDApIj4KKyAgICAgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJ1
cmwoI3BhdHRlcm4pIj48L3JlY3Q+CisgICAgPC9nPgorCisgICAgPGcgdHJhbnNmb3JtPSJ0cmFu
c2xhdGUoMTUwIDE1MCkiPgorICAgICAgPHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZp
bGw9ImdyZWVuIiBtYXNrPSJ1cmwoI21hc2spIi8+CisgICAgPC9nPgorCisgICAgPGcgdHJhbnNm
b3JtPSJ0cmFuc2xhdGUoMCAzMDApIj4KKyAgICAgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0i
MTAwIiBmaWxsPSJncmVlbiIgY2xpcC1wYXRoPSJ1cmwoI2NsaXApIi8+CisgICAgPC9nPgorCisg
ICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwIDMwMCkiPgorICAgICAgPGNpcmNsZSBjeD0i
NTAiIGN5PSI1MCIgcj0iNTAiIGZpbGw9ImdyZWVuIiBmaWx0ZXI9InVybCgjZmlsdGVyKSIvPgor
ICAgIDwvZz4KKyAgPC9zdmc+Cis8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC5odG1s
IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMtY3NzLXNjYWxlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZjYWIzMDhkZjkzOWIzNTAxMzdjNDVjY2U3ZTBmZmQ3NmQ4M2ZmMjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy1jc3Mtc2NhbGVkLmh0
bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorCis8
IS0tIFRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1
ODcgLS0+Cis8IS0tIFBhc3NlcyBpZiBhbGwgY2lyY2xlcyBhcmUgZHJhd24gYXQgaGlnaCByZXNv
bHV0aW9uLCB3aXRob3V0IHBpeGVsYXRpb24gLS0+CisKKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBy
ZWxhdGl2ZTsgbGVmdDogMjdweDsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDUpOyAtd2Via2l0
LXRyYW5zZm9ybS1vcmlnaW46IDAgMDsgd2lkdGg6IDEwMHB4OyI+Cis8ZGl2IHN0eWxlPSItd2Vi
a2l0LXRyYW5zZm9ybTogc2NhbGUoMik7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwOyB3
aWR0aDogNTBweDsiPgorICA8c3ZnIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8ZGVmcz4KKyAgICAgIDxwYXR0ZXJuIGlkPSJw
YXR0ZXJuIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25V
c2UiPgorICAgICAgICA8Y2lyY2xlIGN4PSI1IiBjeT0iNSIgcj0iNSIgZmlsbD0iZ3JlZW4iLz4K
KyAgICAgIDwvcGF0dGVybj4KKworICAgICAgPG1hc2sgaWQ9Im1hc2siPgorICAgICAgICA8Y2ly
Y2xlIGN4PSI1IiBjeT0iNSIgcj0iNSIgZmlsbD0id2hpdGUiLz4KKyAgICAgIDwvbWFzaz4KKwor
ICAgICAgPGNsaXBQYXRoIGlkPSJjbGlwIj4KKyAgICAgICAgPGNpcmNsZSBjeD0iNSIgY3k9IjUi
IHI9IjUiLz4KKyAgICAgICAgPCEtLSBtdWx0aXBsZSBzaGFwZXMgdG8gZm9yY2UgbWFzay1iYXNl
ZCBjbGlwcGluZyAtLT4KKyAgICAgICAgPGNpcmNsZSBjeD0iNSIgY3k9IjUiIHI9IjUiLz4KKyAg
ICAgIDwvY2xpcFBhdGg+CisKKyAgICAgIDxmaWx0ZXIgaWQ9ImZpbHRlciI+CisgICAgICAgIDxm
ZU9mZnNldCBkeD0iMCIgZHk9IjAiLz4KKyAgICAgIDwvZmlsdGVyPgorICAgIDwvZGVmcz4KKwor
ICAgIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSI1IiBmaWxsPSJncmVlbiIvPgorCisgICAgPGcg
dHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzApIj4KKyAgICAgIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0
PSIxMCIgZmlsbD0idXJsKCNwYXR0ZXJuKSI+PC9yZWN0PgorICAgIDwvZz4KKworICAgIDxnIHRy
YW5zZm9ybT0idHJhbnNsYXRlKDE1IDE1KSI+CisgICAgICA8cmVjdCB3aWR0aD0iMTAiIGhlaWdo
dD0iMTAiIGZpbGw9ImdyZWVuIiBtYXNrPSJ1cmwoI21hc2spIi8+CisgICAgPC9nPgorCisgICAg
PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAzMCkiPgorICAgICAgPHJlY3Qgd2lkdGg9IjEwIiBo
ZWlnaHQ9IjEwIiBmaWxsPSJncmVlbiIgY2xpcC1wYXRoPSJ1cmwoI2NsaXApIi8+CisgICAgPC9n
PgorCisgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAgMzApIj4KKyAgICAgIDxjaXJjbGUg
Y3g9IjUiIGN5PSI1IiByPSI1IiBmaWxsPSJncmVlbiIgZmlsdGVyPSJ1cmwoI2ZpbHRlcikiLz4K
KyAgICA8L2c+CisgIDwvc3ZnPgorPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>