<?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>106226</bug_id>
          
          <creation_ts>2013-01-07 09:32:50 -0800</creation_ts>
          <short_desc>[CSS Shaders] Implement color and luminosity non-separable blend modes</short_desc>
          <delta_ts>2013-02-26 16:21:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>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>http://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>71392</blocked>
    
    <blocked>109464</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michelangelo De Simone">michelangelo</reporter>
          <assigned_to name="Michelangelo De Simone">michelangelo</assigned_to>
          <cc>achicu</cc>
    
    <cc>cabanier</cc>
    
    <cc>dino</cc>
    
    <cc>mvujovic</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>801340</commentid>
    <comment_count>0</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-01-07 09:32:50 -0800</bug_when>
    <thetext>Support for non-separable blend modes is missing and shell be added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833260</commentid>
    <comment_count>1</comment_count>
      <attachid>188387</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-14 11:18:31 -0800</bug_when>
    <thetext>Created attachment 188387
Patch not for formal review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833287</commentid>
    <comment_count>2</comment_count>
      <attachid>188387</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-02-14 11:51:59 -0800</bug_when>
    <thetext>Comment on attachment 188387
Patch not for formal review

Looks good overall. Here&apos;s some preliminary feedback. I&apos;m still looking at the patch though, so I might have more feedback.

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

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:421
&gt; +        mediump float lum(mediump vec3 c)

Two issues here:

1) You need to prepend &quot;css_&quot; to the new function names. If you just define a function named lum(vec3), then the author code cannot define its own function named lum(vec3) since GLSL ES does not allow redefinitions of functions [1]. That&apos;s why we reserve the &quot;css_&quot; prefix for all globally scoped variables and function we need to define. Also, capitalize the next character to follow convention. For example, &quot;lum&quot; will become &quot;css_Lum&quot;,

2) We should not write these functions in all of our shaders. We should only write them in shaders that actually need them. This is so the GPU driver doesn&apos;t have to spend extra time parsing and potentially compiling them.

From the spec, we can see:
- &apos;hue&apos; blend mode needs SetLum, SetSat, Set, Lum
- ‘saturation’ blend mode needs SetLum, SetSat, Sat, Lum
- ‘color’ blend mode needs SetLum, Lum
- ‘luminosity’ blend mode needs SetLum, Lum

You could create local booleans for each of the functions like &quot;needsSetLumFunction, needsSetSatFunction, ...&quot; and set them in the appropriate cases. Then, you can add the function to the shader only if their flag is set. Since there&apos;s a pattern, you could also create two booleans like needsLuminosityHelperFunctions and needsSaturationHelperFunctions. Up to you :)

[1]: GLSL ES 1.0.17 Spec, Section 4.2.7: http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.17.pdf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833393</commentid>
    <comment_count>3</comment_count>
      <attachid>188387</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-02-14 14:04:06 -0800</bug_when>
    <thetext>Comment on attachment 188387
Patch not for formal review

Your explanation in the test case is awesome. Just a couple more nits:

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

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:423
&gt; +            return 0.3 * c.r + 0.59 * c.g + 0.11 * c.b;

We&apos;ve been using the same capitalization as the spec in the implementation (e.g. Cs, Cb). Can you match the capitalization with the spec here? So, c -&gt; C.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:425
&gt; +        mediump vec3 clipColor(mediump vec3 c)

c -&gt; C

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:427
&gt; +            mediump float l = lum(c);

l -&gt; L

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:436
&gt; +        mediump vec3 setLum(mediump vec3 c, mediump float l)

c -&gt; C

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-color-expected.html:7
&gt; +            /* This is the EXACT color value we expect. Some platforms may have slight different

Nit: No need to capitalize exact :). Also, you&apos;re missing an &quot;a&quot; and a &quot;ly&quot;. I would change this sentence to &quot;Some platforms may have a slightly different color result.&quot;

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html:13
&gt; +            background-color: rgb(100%, 0%, 0%);

I would avoid blending a pure red with a pure green because it doesn&apos;t seem to test all of the color channels thoroughly. Could you blend two different colors where each color component has unique, non-zero, non-one value.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html:22
&gt; +    The final color of #destination depends on the &quot;luminosity&quot; blend mode, which is a non-separable

This is excellent documentation. Thank you very much.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html:23
&gt; +    blend mode. This means that colors are blended togheter as a whole, not component by component.

Together is misspelled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836920</commentid>
    <comment_count>4</comment_count>
      <attachid>189196</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-19 16:12:14 -0800</bug_when>
    <thetext>Created attachment 189196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836957</commentid>
    <comment_count>5</comment_count>
      <attachid>189196</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-02-19 16:37:05 -0800</bug_when>
    <thetext>Comment on attachment 189196
Patch

This looks good to me. I just commented on two tiny spelling nits. Thanks for making the changes!

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

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-color-expected.html:9
&gt; +            background-color: rgb(108, 157, 255);

These values look good. I also sanity checked them with Photoshop&apos;s &quot;color&quot; blend mode :)

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html:23
&gt; +    blend mode. This means that colors are blended togheter as a whole, not component by component.

&quot;togheter&quot; should be &quot;together&quot;.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity-expected.html:9
&gt; +            background-color: rgb(98, 33, 0);

This also matches Photoshop&apos;s result.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html:23
&gt; +    blend mode. This means that colors are blended togeter as a whole, not component by component.

&quot;togeter&quot; should be &quot;together&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837027</commentid>
    <comment_count>6</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-19 17:51:00 -0800</bug_when>
    <thetext>(In reply to comment #5)

&gt; &quot;togheter&quot; should be &quot;together&quot;.

This word is my everlasting curse.:)

&gt; &quot;togeter&quot; should be &quot;together&quot;.

Ditto.:)

I&apos;m gonna update the patch with this small fix as soon as the EWS acknowleges that it&apos;s fine.
Thank you very much for your informal, though thorough, review.:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837558</commentid>
    <comment_count>7</comment_count>
      <attachid>189335</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-20 10:31:48 -0800</bug_when>
    <thetext>Created attachment 189335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837562</commentid>
    <comment_count>8</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2013-02-20 10:36:58 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=189335) [details]
&gt; Patch

Please also add tests that use alpha in the background and foreground colors. This is to make sure that we&apos;re handling premultiplied colors correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837591</commentid>
    <comment_count>9</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-02-20 11:17:33 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Created an attachment (id=189335) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Please also add tests that use alpha in the background and foreground colors. This is to make sure that we&apos;re handling premultiplied colors correctly.

I don&apos;t think it is necessarily this test&apos;s responsibility to verify that we are handling premultiplied alpha correctly. We have other tests for specifically that, which use fractional alpha values in the background and foreground. See:
custom-filter-composite-fractional-source-alpha.html
custom-filter-composite-fractional-destination-alpha.html

The intention of this test was to only test the new blending function, which doesn&apos;t operate on alpha values.

Nonetheless, we could add fractional alpha values to the background and foreground colors to make these tests verify the entire pipeline. Given the existing tests I mentioned, do you think that would be useful?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837640</commentid>
    <comment_count>10</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2013-02-20 12:11:31 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; Created an attachment (id=189335) [details] [details] [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Please also add tests that use alpha in the background and foreground colors. This is to make sure that we&apos;re handling premultiplied colors correctly.
&gt; 
&gt; I don&apos;t think it is necessarily this test&apos;s responsibility to verify that we are handling premultiplied alpha correctly. We have other tests for specifically that, which use fractional alpha values in the background and foreground. See:
&gt; custom-filter-composite-fractional-source-alpha.html
&gt; custom-filter-composite-fractional-destination-alpha.html
&gt; 
&gt; The intention of this test was to only test the new blending function, which doesn&apos;t operate on alpha values.
&gt; 
&gt; Nonetheless, we could add fractional alpha values to the background and foreground colors to make these tests verify the entire pipeline. Given the existing tests I mentioned, do you think that would be useful?

That is not enough to verify that the blend modes are handling alpha correctly. You should add tests (like canvas-blend-solid.html) to try all combinations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837653</commentid>
    <comment_count>11</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-20 12:27:56 -0800</bug_when>
    <thetext>(In reply to comment #10)

&gt; That is not enough to verify that the blend modes are handling alpha correctly. You should add tests (like canvas-blend-solid.html) to try all combinations.

SG. As of now, I&apos;m testing basically testing (BlendMode: Cb-Cs):

Color: solid-solid
Luminosity: solid-solid

You suggest that we should also have:

Color: alpha-solid
Color: solid-alpha
Color: alpha-alpha
Luminosity: alpha-solid
Luminosity: solid-alpha
Luminosity: alpha-alpha

Is that correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837686</commentid>
    <comment_count>12</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2013-02-20 13:18:28 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; 
&gt; &gt; That is not enough to verify that the blend modes are handling alpha correctly. You should add tests (like canvas-blend-solid.html) to try all combinations.
&gt; 
&gt; SG. As of now, I&apos;m testing basically testing (BlendMode: Cb-Cs):
&gt; 
&gt; Color: solid-solid
&gt; Luminosity: solid-solid
&gt; 
&gt; You suggest that we should also have:
&gt; 
&gt; Color: alpha-solid
&gt; Color: solid-alpha
&gt; Color: alpha-alpha
&gt; Luminosity: alpha-solid
&gt; Luminosity: solid-alpha
&gt; Luminosity: alpha-alpha
&gt; 
&gt; Is that correct?

yes. This shouldn&apos;t be very hard. Use Photoshop or Illustrator to get the result values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837699</commentid>
    <comment_count>13</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-02-20 13:29:19 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; That is not enough to verify that the blend modes are handling alpha correctly. You should add tests (like canvas-blend-solid.html) to try all combinations.

I like that test a lot. Thanks for pointing that out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838810</commentid>
    <comment_count>14</comment_count>
      <attachid>189595</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-21 13:59:35 -0800</bug_when>
    <thetext>Created attachment 189595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841035</commentid>
    <comment_count>15</comment_count>
      <attachid>189595</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2013-02-25 09:36:36 -0800</bug_when>
    <thetext>Comment on attachment 189595
Patch

Looks good. Just some formatting nits:

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

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-color-expected.html:8
&gt; +        #destination {

I would call these divs [&quot;solid-solid&quot;, &quot;alpha-solid&quot;, &quot;solid-alpha&quot;, &quot;alpha-alpha&quot;], or [&quot;destination-solid-source-solid&quot;, &quot;destination-alpha-source-solid&quot;, ...].

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html:16
&gt; +          -webkit-filter: custom(none mix(url(&apos;../resources/mix-color.fs&apos;) color source-atop), mix_color 0.2 0.4 0.8 1.0);

Nit: Indentation is off.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html:22
&gt; +          -webkit-filter: custom(none mix(url(&apos;../resources/mix-color.fs&apos;) color source-atop), mix_color 0.2 0.4 0.8 1.0);

Nit: Indentation.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html:28
&gt; +          -webkit-filter: custom(none mix(url(&apos;../resources/mix-color.fs&apos;) color source-atop), mix_color 0.2 0.4 0.8 0.5);

Nit: Indentation.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html:34
&gt; +          -webkit-filter: custom(none mix(url(&apos;../resources/mix-color.fs&apos;) color source-atop), mix_color 0.2 0.4 0.8 0.5);

Nit: Indentation.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html:16
&gt; +          -webkit-filter: custom(none mix(url(&apos;../resources/mix-color.fs&apos;) luminosity source-atop), mix_color 0.1 0.2 0.4 1.0);

Nit: Indentation.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html:22
&gt; +          -webkit-filter: custom(none mix(url(&apos;../resources/mix-color.fs&apos;) luminosity source-atop), mix_color 0.2 0.4 0.8 1.0);

Nit: Indentation.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html:28
&gt; +          -webkit-filter: custom(none mix(url(&apos;../resources/mix-color.fs&apos;) luminosity source-atop), mix_color 0.2 0.4 0.8 0.5);

Nit: Indentation.

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html:34
&gt; +          -webkit-filter: custom(none mix(url(&apos;../resources/mix-color.fs&apos;) luminosity source-atop), mix_color 0.2 0.4 0.8 0.5);

Nit: Indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841080</commentid>
    <comment_count>16</comment_count>
      <attachid>190084</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-25 10:15:50 -0800</bug_when>
    <thetext>Created attachment 190084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842305</commentid>
    <comment_count>17</comment_count>
      <attachid>190084</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-02-26 13:21:07 -0800</bug_when>
    <thetext>Comment on attachment 190084
Patch

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

Looks good. Upload a patch with the small changes and I&apos;ll cq+.

&gt; Source/WebCore/ChangeLog:10
&gt; +            - Lum(C): returns the luminosity for the color C
&gt; +            - ClipColor(C): clips color C
&gt; +            - SetLum(C, l): sets the luminosity l on the color C

Might as well include the css_ prefix here to make it clear.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:426
&gt; +    if (needsLuminosityHelperFunctions)
&gt; +        blendFunctionString.append(SHADER(
&gt; +            mediump float css_Lum(mediump vec3 C)

Since the single statement here spans multiple lines, you should use braces. &quot;One-line control clauses should not use braces unless comments are included or a single statement spans multiple lines.&quot; - http://www.webkit.org/coding/coding-style.html

&gt; LayoutTests/css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity-expected.html:7
&gt; +        /* There are exactly the color values we expect. Some platforms may have slight different
&gt; +           color result. */

You forgot the typo that Max pointed out earlier -&gt; &quot;may have a slightly different&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842336</commentid>
    <comment_count>18</comment_count>
      <attachid>190355</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-26 13:53:41 -0800</bug_when>
    <thetext>Created attachment 190355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842343</commentid>
    <comment_count>19</comment_count>
      <attachid>190357</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-26 13:56:37 -0800</bug_when>
    <thetext>Created attachment 190357
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842350</commentid>
    <comment_count>20</comment_count>
      <attachid>190358</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2013-02-26 13:59:22 -0800</bug_when>
    <thetext>Created attachment 190358
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842488</commentid>
    <comment_count>21</comment_count>
      <attachid>190358</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 16:20:58 -0800</bug_when>
    <thetext>Comment on attachment 190358
Patch for landing

Clearing flags on attachment: 190358

Committed r144118: &lt;http://trac.webkit.org/changeset/144118&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842489</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 16:21:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188387</attachid>
            <date>2013-02-14 11:18:31 -0800</date>
            <delta_ts>2013-02-19 16:12:12 -0800</delta_ts>
            <desc>Patch not for formal review</desc>
            <filename>bug-106226-20130214111458.patch</filename>
            <type>text/plain</type>
            <size>15042</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRlMWIzMzA4NjczMmE4
Y2RjZmYyMTE2ZGE1NDY1MjYwZDA4ODFmZC4uMTJjMDgyYmYxNjQzYWIxYmQ0MmFlY2E5Y2I5YTNi
ZDY0ODA0YTQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTE0ICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSBJbXBsZW1lbnQgY29sb3IgYW5kIGx1bWlub3NpdHkgbm9uLXNlcGFyYWJs
ZSBibGVuZCBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA2MjI2CisKKyAgICAgICAgQWRkZWQgdGhlIGZvbGxvd2luZyBHTFNMIGhlbHBlciBm
dW5jdGlvbnMgdG8gdGhlIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06CisKKyAgICAgICAg
ICAgIC0gTHVtKEMpOiByZXR1cm5zIHRoZSBsdW1pbm9zaXR5IGZvciB0aGUgY29sb3IgQyAKKyAg
ICAgICAgICAgIC0gQ2xpcENvbG9yKEMpOiBjbGlwcyBjb2xvciBDCisgICAgICAgICAgICAtIFNl
dEx1bShDLCBsKTogc2V0cyB0aGUgbHVtaW5vc2l0eSBsIG9uIHRoZSBjb2xvciBDCisKKyAgICAg
ICAgVGhlIGFib3ZlIGZ1bmN0aW9ucyBhcmUgYmVpbmcgdXNlZCBmb3IgdGhlICJjb2xvciIgYW5k
ICJsdW1pbm9zaXR5IiBub24tc2VwYXJhYmxlCisgICAgICAgIGJsZW5kIG1vZGVzLCB0aGUgcmVs
ZXZhbnQgc3BlYyBmb3Igc3VjaCBtb2RlcyBpcyBhdCBVUkw6CisgICAgICAgIGh0dHBzOi8vZHZj
cy53My5vcmcvaGcvRlhURi9yYXdmaWxlL3RpcC9jb21wb3NpdGluZy9pbmRleC5odG1sI2JsZW5k
aW5nbm9uc2VwYXJhYmxlCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdHM6IGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBh
cmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1sCisgICAgICAgICAgICAgICBjc3MzL2ZpbHRlcnMv
Y3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS5o
dG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZh
bGlkYXRlZFByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyk6CisKIDIwMTMtMDItMTQgIFRvbnkgQ2hh
bmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQYWRkaW5nIGFuZCBib3JkZXIgY2hh
bmdlcyBkb2Vzbid0IHRyaWdnZXIgcmVsYXlvdXQgb2YgY2hpbGRyZW4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCmluZGV4IGNiNTVjNWUyNzU1Zjc4MWJi
YzRjNjY4YmQ3YTIwZjAxMDAzYzI3N2QuLmZkMGU1ZGYzNTM1ZWJmYjhlMWUxOGI1OTIzMjZlOGUw
NTY3NTAyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFt
LmNwcApAQCAtNDA1LDE1ICs0MDUsMzkgQEAgU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlkYXRlZFBy
b2dyYW06OmJsZW5kRnVuY3Rpb25TdHJpbmcoQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICAgICAg
ICAgICAgICBDbyA9IENiICsgKDIuMCAqIENzIC0gMS4wKSAqIChEIC0gQ2IpOwogICAgICAgICAp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEJsZW5kTW9kZUh1ZToKLSAgICBjYXNlIEJsZW5k
TW9kZVNhdHVyYXRpb246CiAgICAgY2FzZSBCbGVuZE1vZGVDb2xvcjoKKyAgICAgICAgYmxlbmRD
b2xvckV4cHJlc3Npb24gPSAic2V0THVtKENzLCBsdW0oQ2IpKSI7CisgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQmxlbmRNb2RlTHVtaW5vc2l0eToKKyAgICAgICAgYmxlbmRDb2xvckV4cHJlc3Np
b24gPSAic2V0THVtKENiLCBsdW0oQ3MpKSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmxl
bmRNb2RlSHVlOgorICAgIGNhc2UgQmxlbmRNb2RlU2F0dXJhdGlvbjoKICAgICAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAogICAgIHJldHVy
biBTdHJpbmc6OmZvcm1hdChTSEFERVIoCisgICAgICAgIG1lZGl1bXAgZmxvYXQgbHVtKG1lZGl1
bXAgdmVjMyBjKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gMC4zICogYy5yICsgMC41
OSAqIGMuZyArIDAuMTEgKiBjLmI7CisgICAgICAgIH0KKyAgICAgICAgbWVkaXVtcCB2ZWMzIGNs
aXBDb2xvcihtZWRpdW1wIHZlYzMgYykKKyAgICAgICAgeworICAgICAgICAgICAgbWVkaXVtcCBm
bG9hdCBsID0gbHVtKGMpOworICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBuID0gbWluKG1pbihj
LnIsIGMuZyksIGMuYik7CisgICAgICAgICAgICBtZWRpdW1wIGZsb2F0IHggPSBtYXgobWF4KGMu
ciwgYy5nKSwgYy5iKTsKKyAgICAgICAgICAgIGlmIChuIDwgMC4wKQorICAgICAgICAgICAgICAg
IGMgPSBsICsgKCgoYyAtIGwpICogbCkgLyAobCAtIG4pKTsKKyAgICAgICAgICAgIGlmICh4ID4g
MS4wKQorICAgICAgICAgICAgICAgIGMgPSBsICsgKCgoYyAtIGwpICogKDEuMCAtIGwpIC8gKHgg
LSBsKSkpOworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgIH0KKyAgICAgICAgbWVkaXVt
cCB2ZWMzIHNldEx1bShtZWRpdW1wIHZlYzMgYywgbWVkaXVtcCBmbG9hdCBsKQorICAgICAgICB7
CisgICAgICAgICAgICBjICs9IGwgLSBsdW0oYyk7CisgICAgICAgICAgICByZXR1cm4gY2xpcENv
bG9yKGMpOworICAgICAgICB9CiAgICAgICAgIG1lZGl1bXAgZmxvYXQgY3NzX0JsZW5kQ29tcG9u
ZW50KG1lZGl1bXAgZmxvYXQgQ2IsIG1lZGl1bXAgZmxvYXQgQ3MpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIG1lZGl1bXAgZmxvYXQgQ287CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzFhZTgwMjIzMDNhYWFmNjBiNGYyY2Uz
YjczZDQ3NDczM2E2MGIwNy4uN2VmMDU0MzFjMDU0NjZlYzc1ZDY3Y2MwOTgyYzU4ZjU5MTA0YzQ5
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAyLTE0ICBNaWNoZWxhbmdlbG8gRGUgU2lt
b25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBTaGFkZXJzXSBJ
bXBsZW1lbnQgY29sb3IgYW5kIGx1bWlub3NpdHkgbm9uLXNlcGFyYWJsZSBibGVuZCBtb2Rlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2MjI2CisK
KyAgICAgICAgQWRkZWQgcmVsZXZhbnQgdGVzdHMgZm9yIHRoZSAiY29sb3IiIGFuZCAibHVtaW5v
c2l0eSIgbm9uLXNlcGFyYWJsZSBibGVuZCBtb2Rlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZp
bHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxl
LWJsZW5kLW1vZGUtY29sb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1
c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHktZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20t
ZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbDogQWRkZWQuCisK
IDIwMTMtMDItMTQgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQ
YWRkaW5nIGFuZCBib3JkZXIgY2hhbmdlcyBkb2Vzbid0IHRyaWdnZXIgcmVsYXlvdXQgb2YgY2hp
bGRyZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9t
LWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1i
bGVuZC1tb2RlLWNvbG9yLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZjNGM2NmIyYTJiMTYz
MDUwN2ZlYWVkMGZjMDZkNTViNzBhMGU1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9k
ZS1jb2xvci1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBIVE1MPgor
PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3QgdGhhdCBibGVuZHMgdGhl
IHNvdXJjZSBhbmQgdGhlIGJhY2tkcm9wIHdpdGggdGhlIGNvbG9yIGJsZW5kIG1vZGUuPC90aXRs
ZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAjZGVzdGluYXRpb24gewor
ICAgICAgICAgICAgLyogVGhpcyBpcyB0aGUgRVhBQ1QgY29sb3IgdmFsdWUgd2UgZXhwZWN0LiBT
b21lIHBsYXRmb3JtcyBtYXkgaGF2ZSBzbGlnaHQgZGlmZmVyZW50CisgICAgICAgICAgICAgICBj
b2xvciB2YWx1ZS4gKi8KKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwJSwgNTEl
LCAwJSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEw
MHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYg
aWQ9ImRlc3RpbmF0aW9uIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUt
YmxlbmQtbW9kZS1jb2xvci5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9j
dXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzg3NjExMmY2OWE4MDQ2MDkzODcxNzJmYWYxNTZkYTY3N2ZiNzc1NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25z
ZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwhRE9DVFlQ
RSBIVE1MPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3QgdGhhdCBi
bGVuZHMgdGhlIHNvdXJjZSBhbmQgdGhlIGJhY2tkcm9wIHdpdGggdGhlIGNvbG9yIGJsZW5kIG1v
ZGUuPC90aXRsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2Vi
S2l0Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICB3aW5kb3cudGVz
dFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7Cisg
ICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAg
ICAgICAjZGVzdGluYXRpb24geworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEw
MCUsIDAlLCAwJSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1
cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBjb2xvciBzb3VyY2UtYXRvcCksIG1peF9j
b2xvciAwLjAgMS4wIDAuMCAxLjApOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPCEtLQorICAgIFRoZSBmaW5hbCBjb2xvciBvZiAjZGVzdGluYXRpb24gZGVwZW5k
cyBvbiB0aGUgImNvbG9yIiBibGVuZCBtb2RlLCB3aGljaCBpcyBhIG5vbi1zZXBhcmFibGUKKyAg
ICBibGVuZCBtb2RlLiBUaGlzIG1lYW5zIHRoYXQgY29sb3JzIGFyZSBibGVuZGVkIHRvZ2hldGVy
IGFzIGEgd2hvbGUsIG5vdCBjb21wb25lbnQgYnkgY29tcG9uZW50LgorCisgICAgVGhlIGZvcm11
bGEgZm9yIHRoaXMgYmxlbmQgbW9kZSBpczoKKyAgICAgICAgQ3IgPSBCKENiLCBDcykgPSBTZXRM
dW0oQ3MsIEx1bShDYikpCisKKyAgICBXaXRoOgorICAgICAgICBDcjogdGhlIHJlc3VsdGluZyBj
b2xvcgorICAgICAgICBDYjogdGhlIGJhY2tkcm9wIGNvbG9yLCB3aGljaCBpcyAjZGVzdGluYXRp
b24gKCJvcmlnaW5hbCBET00gZWxlbWVudCBjb2xvciIpCisgICAgICAgIENzOiB0aGUgc291cmNl
IGNvbG9yLCB3aGljaCBpcyBtaXhfY29sb3IKKyAgICAgICAgTHVtKENiKTogdGhlIGx1bWlub3Np
dHkgb2YgQ2IuIEx1bWlub3NpdHkgZm9yIGNvbG9yIEMgaXMgZ2VuZXJhbGx5IGRlZmluZWQgYnkK
KyAgICAgICAgICAgTHVtKEMpOiAwLjMgKiBDcmVkICsgMC41OSAqIENncmVlbiArIDAuMTEgKiBD
Ymx1ZQorICAgICAgICBTZXRMdW0oQ3MsIEx1bShDYikpOiB0aGUgZnVuY3Rpb24gdGhhdCBzZXRz
IHRoZSBsdW1pbm9zaXR5LgorCisgICAgVGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgbHVtaW5v
c2l0eSBsIG9uIHRoZSBjb2xvciBDIGlzIGdlbmVyYWxseSBkZWZpbmVkIGJ5OgorCisgICAgICAg
IFNldEx1bShDLCBsKQorICAgICAgICAgICAgZCA9IGwgLSBMdW0oQykKKyAgICAgICAgICAgIENy
ZWQgPSBDcmVkICsgZAorICAgICAgICAgICAgQ2dyZWVuID0gQ2dyZWVuICsgZAorICAgICAgICAg
ICAgQ2JsdWUgPSBDYmx1ZSArIGQKKyAgICAgICAgICAgIHJldHVybiBDbGlwQ29sb3IoQykKKwor
ICAgIEF0IHRoaXMgcG9pbnQgdGhlIGNvbG9yIEMgaGFzIHRvIGJlIGNsaXBwZWQgYmV0d2VlbiBb
MC4uMV0gIGJ5IHRoZSBDbGlwQ29sb3IgZnVuY3Rpb24sIHdoaWNoIGlzCisgICAgZ2VuZXJhbGx5
IGRlZmluZWQgYnk6CisKKyAgICAgICAgQ2xpcENvbG9yKEMpCisgICAgICAgICAgICBsID0gTHVt
KEMpCisgICAgICAgICAgICBuID0gbWluKENyZWQsIENncmVlbiwgQ2JsdWUpCisgICAgICAgICAg
ICB4ID0gbWF4KENyZWQsIENncmVlbiwgQ2JsdWUpCisgICAgICAgICAgICBpZiBuIDwgMC4wCisg
ICAgICAgICAgICAgICAgQ3JlZCA9IGwgKyAoKChDcmVkIC0gbCkgKiBsKSAvIChsIC0gbikpCisg
ICAgICAgICAgICAgICAgQ2dyZWVuID0gbCArICgoKENncmVlbiAtIGwpICogbCkgLyAobCAtIG4p
KQorICAgICAgICAgICAgICAgIENibHVlID0gbCArICgoKENibHVlIC0gbCkgKiBsKSAvIChsIC0g
bikpCisgICAgICAgICAgICBpZiB4ID4gMS4wCisgICAgICAgICAgICAgICAgQ3JlZCA9IGwgKyAo
KChDcmVkIC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAgICAgICAgQ2dyZWVu
ID0gbCArICgoKENncmVlbiAtIGwpICogKDEgLSBsKSkgLyAoeCAtIGwpKQorICAgICAgICAgICAg
ICAgIENibHVlID0gbCArICgoKENibHVlIC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAg
ICAgICAgICByZXR1cm4gQworCisgICAgSW4gdGhpcyB0ZXN0IGNhc2U6CisgICAgICAgIEx1bShD
YikgPSAwLjMgKiAxLjAgKyAwLjU5ICogMC4wICsgMC4xMSAqIDAuMAorICAgICAgICBMdW0oQ2Ip
ID0gMC4zCisKKyAgICAgICAgQ3IgPSBTZXRMdW0oQ3MsIDAuMykKKyAgICAgICAgICAgIGQgPSAw
LjMgLSBMdW0oQ3MpID0gMC4zIC0gKDAuMyAqIDAuMCArIDAuNTkgKiAxLjAgKyAwLjExICogMC4w
KSA9IDAuMyAtIDAuNTkgPSAtMC4yOQorICAgICAgICAgICAgQ3JlZCA9IDAuMCAtIDAuMjkgPSAt
MC4yOQorICAgICAgICAgICAgQ2dyZWVuID0gMS4wIC0gMC4yOSA9IDAuNzEKKyAgICAgICAgICAg
IENibHVlID0gMC4wIC0gMC4yOSA9IC0wLjI5CisgICAgICAgICAgICByZXR1cm4gQ2xpcENvbG9y
KC0wLjI5LCAwLjcxLCAtMC4yOSkKKworCisgICAgICAgIENsaXBDb2xvcigtMC4yOSwgMC43MSwg
LTAuMjkpCisgICAgICAgICAgICBsID0gMC4zICogLTAuMjkgKyAwLjU5ICogMC43MSArIDAuMTEg
KiAtMC4yOSA9IC0wLjA4NyArIDAuNDE4OSAtIDAuMDMxOSA9IDAuMworICAgICAgICAgICAgbiA9
IG1pbigtMC4yOSwgMC43MSwgLTAuMjkpID0gLTAuMjkKKyAgICAgICAgICAgIHggPSBtYXgoLTAu
MjksIDAuNzEsIC0wLjI5KSA9IDAuNzEKKyAgICAgICAgICAgIG4gPCAwOgorICAgICAgICAgICAg
ICAgIENyZWQgPSAwLjMgKyAoKCgtMC4yOSAtIDAuMykgKiAwLjMpIC8gKDAuMyArIDAuMjkpKSA9
IDAuMyArICgoKC0wLjU5KSAqIDAuMyApIC8gKDAuNTkpKQorICAgICAgICAgICAgICAgICAgICAg
PSAwLjMgKyAoLTAuMTc3IC8gMC41OSkgPSAwLjMgLSAwLjMgPSAwCisgICAgICAgICAgICAgICAg
Q2dyZWVuID0gMCwzICsgKCgoMC43MSAtIDAuMykgKiAwLjMpIC8gKDAuMyArIDAuMjkpKSA9IDAu
MyArICgoKDAuNDEpICogMC4zKSAvICgwLjU5KSkKKyAgICAgICAgICAgICAgICAgICAgID0gMC4z
ICsgKDAuMTIzIC8gMC41OSkgPSAwLjMgKyAwLjIxID0gMC41MQorICAgICAgICAgICAgICAgIENi
bHVlID0gMC4zICsgKCgoLTAuMjkgLSAwLjMpICogMC4zKSAvICgwLjMgKyAwLjI5KSkgPSAwLjMg
KyAoKCgtMC41OSkgKiAwLjMgKSAvICgwLjU5KSkKKyAgICAgICAgICAgICAgICAgICAgICA9IDAu
MyArICgtMC4xNzcgLyAwLjU5KSA9IDAuMyAtIDAuMyA9IDAKKyAgICAgICAgICAgIHJldHVybiAo
MC4wLCAwLjUxLCAwLjApCisKKworICAgIFdlIGV4cGVjdCB0aGUgZmluYWwgY29sb3IgdG8gYmUg
KDAlLCA1MSUsIDAlKS4gVGhpcyBpcyB0aGUgZXhhY3QgY29sb3IgdmFsdWUsIG90aGVyIHBvcnRz
IG1pZ2h0CisgICAgZXhwZXJpZW5jZSBzbGlnaHQgZGlmZmVyZW5jZXMuCistLT4KKyAgICA8ZGl2
IGlkPSJkZXN0aW5hdGlvbiI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxl
LWJsZW5kLW1vZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlu
b3NpdHktZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjMxZTFjODJkN2NmODZmMzU0NjE0ZDJl
MzRmMWU2YWYxZjk4MDlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3Np
dHktZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0IHRoYXQgYmxlbmRzIHRoZSBzb3Vy
Y2UgYW5kIHRoZSBiYWNrZHJvcCB3aXRoIHRoZSBjb2xvciBibGVuZCBtb2RlLjwvdGl0bGU+Cisg
ICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgI2Rlc3RpbmF0aW9uIHsKKyAgICAg
ICAgICAgIC8qIFRoZSBjb2xvciB3ZSBleHBlY3QgaXMgKDEwMCUsIDQyJSwgNDIlKSB3aGljaCBp
cyB0aGUgc2FtZSBhcyAoMjU1LCAxMDUsIDEwNSkKKyAgICAgICAgICAgICAgIGJ1dCBnaXZlbiB0
aGUgYXBwcm94aW1hdGlvbiBkdXJpbmcgdGhlIGNhbGN1bGF0aW9uIGZvciB0aGUgRyBhbmQgQiBj
aGFubmVscworICAgICAgICAgICAgICAgdGhlIGV4cGVjdGVkIGNvbG9yIGlzIHJvdW5kZWQgdG8g
KDI1NSwgMTA2LCAxMDYpLiAgKi8KKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigy
NTUsIDEwNiwgMTA2KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhl
aWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPGRpdiBpZD0iZGVzdGluYXRpb24iPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNl
cGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9z
aXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc5M2ExMzBmYTU2OTk1NGE1YzBhZDc0M2I3NjhmOWM1NWYz
NWEyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20v
Y3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5Lmh0bWwKQEAg
LTAsMCArMSw5NSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8dGl0bGU+VGVzdCB0aGF0IGJsZW5kcyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ryb3Ag
d2l0aCB0aGUgbHVtaW5vc2l0eSBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQiLCAi
MSIpOworICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJX
ZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgI2Rlc3RpbmF0aW9uIHsKKyAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDAlLCAwJSwgMCUpOworICAgICAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIC13ZWJr
aXQtZmlsdGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZz
JykgbHVtaW5vc2l0eSBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjAgMS4wIDAuMCAxLjApOwor
ICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPCEtLQorICAgIFRoZSBm
aW5hbCBjb2xvciBvZiAjZGVzdGluYXRpb24gZGVwZW5kcyBvbiB0aGUgImx1bWlub3NpdHkiIGJs
ZW5kIG1vZGUsIHdoaWNoIGlzIGEgbm9uLXNlcGFyYWJsZQorICAgIGJsZW5kIG1vZGUuIFRoaXMg
bWVhbnMgdGhhdCBjb2xvcnMgYXJlIGJsZW5kZWQgdG9naGV0ZXIgYXMgYSB3aG9sZSwgbm90IGNv
bXBvbmVudCBieSBjb21wb25lbnQuCisKKyAgICBUaGUgZm9ybXVsYSBmb3IgdGhpcyBibGVuZCBt
b2RlIGlzOgorICAgICAgICBDciA9IEIoQ2IsIENzKSA9IFNldEx1bShDYiwgTHVtKENzKSkKKwor
ICAgIFdpdGg6CisgICAgICAgIENyOiB0aGUgcmVzdWx0aW5nIGNvbG9yCisgICAgICAgIENiOiB0
aGUgYmFja2Ryb3AgY29sb3IsIHdoaWNoIGlzICNkZXN0aW5hdGlvbiAoIm9yaWdpbmFsIERPTSBl
bGVtZW50IGNvbG9yIikKKyAgICAgICAgQ3M6IHRoZSBzb3VyY2UgY29sb3IsIHdoaWNoIGlzIG1p
eF9jb2xvcgorICAgICAgICBMdW0oQ3MpOiB0aGUgbHVtaW5vc2l0eSBvZiBDcy4gTHVtaW5vc2l0
eSBmb3IgY29sb3IgQyBpcyBnZW5lcmFsbHkgZGVmaW5lZCBieQorICAgICAgICAgICBMdW0oQyk6
IDAuMyAqIENyZWQgKyAwLjU5ICogQ2dyZWVuICsgMC4xMSAqIENibHVlCisgICAgICAgIFNldEx1
bShDYiwgTHVtKENzKSk6IHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1bWlub3NpdHkuCisK
KyAgICBUaGUgZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNvbG9y
IEMgaXMgZ2VuZXJhbGx5IGRlZmluZWQgYnk6CisKKyAgICAgICAgU2V0THVtKEMsIGwpCisgICAg
ICAgICAgICBkID0gbCAtIEx1bShDKQorICAgICAgICAgICAgQ3JlZCA9IENyZWQgKyBkCisgICAg
ICAgICAgICBDZ3JlZW4gPSBDZ3JlZW4gKyBkCisgICAgICAgICAgICBDYmx1ZSA9IENibHVlICsg
ZAorICAgICAgICAgICAgcmV0dXJuIENsaXBDb2xvcihDKQorCisgICAgQXQgdGhpcyBwb2ludCB0
aGUgY29sb3IgQyBoYXMgdG8gYmUgY2xpcHBlZCBiZXR3ZWVuIFswLi4xXSAgYnkgdGhlIENsaXBD
b2xvciBmdW5jdGlvbiwgd2hpY2ggaXMKKyAgICBnZW5lcmFsbHkgZGVmaW5lZCBieToKKworICAg
ICAgICBDbGlwQ29sb3IoQykKKyAgICAgICAgICAgIGwgPSBMdW0oQykKKyAgICAgICAgICAgIG4g
PSBtaW4oQ3JlZCwgQ2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIHggPSBtYXgoQ3JlZCwgQ2dy
ZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIGlmIG4gPCAwLjAKKyAgICAgICAgICAgICAgICBDcmVk
ID0gbCArICgoKENyZWQgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgICAgICBDZ3Jl
ZW4gPSBsICsgKCgoQ2dyZWVuIC0gbCkgKiBsKSAvIChsIC0gbikpCisgICAgICAgICAgICAgICAg
Q2JsdWUgPSBsICsgKCgoQ2JsdWUgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgIGlm
IHggPiAxLjAKKyAgICAgICAgICAgICAgICBDcmVkID0gbCArICgoKENyZWQgLSBsKSAqICgxIC0g
bCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDZ3JlZW4gPSBsICsgKCgoQ2dyZWVuIC0g
bCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAgICAgICAgQ2JsdWUgPSBsICsgKCgo
Q2JsdWUgLSBsKSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgIHJldHVybiBDCisK
KyAgICBJbiB0aGlzIHRlc3QgY2FzZToKKyAgICAgICAgTHVtKENzKSA9IDAuMyAqIDAuMCArIDAu
NTkgKiAxLjAgKyAwLjExICogMC4wCisgICAgICAgIEx1bShDcykgPSAwLjU5CisKKyAgICAgICAg
Q3IgPSBTZXRMdW0oQ2IsIDAuNTkpCisgICAgICAgICAgICBkID0gMC41OSAtIEx1bShDYikgPSAw
LjU5IC0gKDAuMyAqIDEuMCArIDAuNTkgKiAwLjAgKyAwLjExICogMC4wKSA9IDAuNTkgLSAwLjMg
PSAwLjI5CisgICAgICAgICAgICBDcmVkID0gMS4wICsgMC4yOSA9IDEuMjkKKyAgICAgICAgICAg
IENncmVlbiA9IDAuMCArIDAuMjkgPSAwLjI5CisgICAgICAgICAgICBDYmx1ZSA9IDAuMCArIDAu
MjkgPSAwLjI5CisgICAgICAgICAgICByZXR1cm4gQ2xpcENvbG9yKDEuMjksIDAuMjksIDAuMjkp
CisKKyAgICAgICAgQ2xpcENvbG9yKDEuMjksIDAuMjksIDAuMjkpCisgICAgICAgICAgICBsID0g
MC4zICogMS4yOSArIDAuNTkgKiAwLjI5ICsgMC4xMSAqIDAuMjkgPSAwLjM4NyArIDAuMTcxMSAr
IDAuMDMxOSA9IDAuNTkKKyAgICAgICAgICAgIG4gPSBtaW4oMS4yOSwgMC4yOSwgMC4yOSkgPSAw
LjI5CisgICAgICAgICAgICB4ID0gbWF4KDEuMjksIDAuMjksIDAuMjkpID0gMS4yOQorICAgICAg
ICAgICAgeCA+IDEuMAorICAgICAgICAgICAgICAgIENyZWQgPSAwLjU5ICsgKCgoMS4yOSAtIDAu
NTkpICogKDEgLSAwLjU5KSkgLyAoMS4yOSAtIDAuNTkpKSA9IDAuNTkgKyAoKCgwLjcpICogKDAu
NDEpKSAvICgwLjcpKQorICAgICAgICAgICAgICAgICAgICAgPSAwLjU5ICsgKDAuMjg3IC8gMC43
KSA9IDAuNTkgKyAwLjQxID0gMS4wCisgICAgICAgICAgICAgICAgQ2dyZWVuID0gMC41OSArICgo
KDAuMjkgLSAwLjU5KSAqICgxIC0gMC41OSkpIC8gKDEuMjkgLSAwLjU5KSkgPSAwLjU5ICsgKCgo
LTAuMykgKiAoMC40MSkpIC8gKDAuNykpCisgICAgICAgICAgICAgICAgICAgICAgID0gMC41OSAr
ICgtMC4xMiAvIDAuNykgPSAwLjU5IC0gMC4xOCA9IDAuNDEKKyAgICAgICAgICAgICAgICBDYmx1
ZSA9IDAuNTkgKyAoKCgwLjI5IC0gMC41OSkgKiAoMSAtIDAuNTkpKSAvICgxLjI5IC0gMC41OSkp
ID0gMC41OSArICgoKC0wLjMpICogKDAuNDEpKSAvICgwLjcpKQorICAgICAgICAgICAgICAgICAg
ICAgID0gMC41OSArICgtMC4xMiAvIDAuNykgPSAwLjU5IC0gMC4xOCA9IDAuNDEKKyAgICAgICAg
ICAgIHJldHVybiAoMS4wLCAwLjQxLCAwLjQxKQorCisKKyAgICBXZSBleHBlY3QgdGhlIGZpbmFs
IGNvbG9yIHRvIGJlICgxMDAlLCA0MSUsIDQxJSkuIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHRoaXMg
cmVzdWx0IGRvZXMgbm90IHRha2UgaW4gY29uc2lkZXJhdGlvbiB0aGUKKyAgICBhcHByb3hpbWF0
aW9uIC0gYW5kIHRoZW4gdGhlIGxvc3Mgb2YgcHJlY2lzaW9uIC0gdG8gdGhlIHNlY29uZCBkZWNp
bWFsIGRpZ2l0IHVzZWQgYWJvdmUgZm9yIENncmVlbiBhbmQgQ2JsdWUsIHRoZXJlZm9yZSB0aGUg
ZXhwZWN0ZWQgY29sb3IgaXMgcm91bmRlZAorICAgIHRvICgyNTUsIDEwNiwgMTA2KSBpbnN0ZWFk
IG9mICgyNTUsIDEwNSwgMTA1KS4KKworICAgIFRoaXMgaXMgdGhlIGV4YWN0IGNvbG9yIHZhbHVl
LCBvdGhlciBwb3J0cyBtaWdodCBleHBlcmllbmNlIHNsaWdodCBkaWZmZXJlbmNlcy4KKy0tPgor
ICAgIDxkaXYgaWQ9ImRlc3RpbmF0aW9uIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189196</attachid>
            <date>2013-02-19 16:12:14 -0800</date>
            <delta_ts>2013-02-20 10:31:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106226-20130219160836.patch</filename>
            <type>text/plain</type>
            <size>16540</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg5NGI5ZTNhN2I3MDQx
ZmI3MWE0Y2IwYmU0YzI3MDBjNzk4MDIxMC4uYzVkNDJlNTVmYjJlMDMwYTgyYzk1MWU0YWM0NTQ3
OTc5ZGEzMjM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTE0ICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSBJbXBsZW1lbnQgY29sb3IgYW5kIGx1bWlub3NpdHkgbm9uLXNlcGFyYWJs
ZSBibGVuZCBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA2MjI2CisKKyAgICAgICAgQWRkZWQgdGhlIGZvbGxvd2luZyBHTFNMIGhlbHBlciBm
dW5jdGlvbnMgdG8gdGhlIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06CisKKyAgICAgICAg
ICAgIC0gTHVtKEMpOiByZXR1cm5zIHRoZSBsdW1pbm9zaXR5IGZvciB0aGUgY29sb3IgQyAKKyAg
ICAgICAgICAgIC0gQ2xpcENvbG9yKEMpOiBjbGlwcyBjb2xvciBDCisgICAgICAgICAgICAtIFNl
dEx1bShDLCBsKTogc2V0cyB0aGUgbHVtaW5vc2l0eSBsIG9uIHRoZSBjb2xvciBDCisKKyAgICAg
ICAgVGhlIGFib3ZlIGZ1bmN0aW9ucyBhcmUgYmVpbmcgdXNlZCBmb3IgdGhlICJjb2xvciIgYW5k
ICJsdW1pbm9zaXR5IiBub24tc2VwYXJhYmxlCisgICAgICAgIGJsZW5kIG1vZGVzLCB0aGUgcmVs
ZXZhbnQgc3BlYyBmb3Igc3VjaCBtb2RlcyBpcyBhdCBVUkw6CisgICAgICAgIGh0dHBzOi8vZHZj
cy53My5vcmcvaGcvRlhURi9yYXdmaWxlL3RpcC9jb21wb3NpdGluZy9pbmRleC5odG1sI2JsZW5k
aW5nbm9uc2VwYXJhYmxlCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdHM6IGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBh
cmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1sCisgICAgICAgICAgICAgICBjc3MzL2ZpbHRlcnMv
Y3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS5o
dG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZh
bGlkYXRlZFByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyk6CisKIDIwMTMtMDItMTkgIEthc3N5IENv
YW4gIDxrYXNzeWNvYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVwZGF0ZSBGZWF0dXJlT2Jz
ZXJ2ZXIgb24gdG9wIGxldmVsIG5hdmlnYXRpb24gaW4gYWRkaXRpb24gdG8gcGFnZSBkZXN0cnVj
dGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCmlu
ZGV4IGNiNTVjNWUyNzU1Zjc4MWJiYzRjNjY4YmQ3YTIwZjAxMDAzYzI3N2QuLmM2NmFlYTVmMmJk
MzQzN2VjYjhlOTkzM2ZhZTBmYjRjNDMyNmU1NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21G
aWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcApAQCAtMjkxLDYgKzI5MSw4IEBAIFN0cmluZyBDdXN0
b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpibGVuZEZ1bmN0aW9uU3RyaW5nKEJsZW5kTW9kZSBi
bGVuZE1vZGUpCiAgICAgLy8gQ2I6IGlzIHRoZSBiYWNrZHJvcCBjb2xvciBpbiBjc3NfQmxlbmRD
b2xvcigpIGFuZCB0aGUgYmFja2Ryb3AgY29sb3IgY29tcG9uZW50IGluIGNzc19CbGVuZENvbXBv
bmVudCgpCiAgICAgY29uc3QgY2hhciogYmxlbmRDb2xvckV4cHJlc3Npb24gPSAidmVjMyhjc3Nf
QmxlbmRDb21wb25lbnQoQ2IuciwgQ3MuciksIGNzc19CbGVuZENvbXBvbmVudChDYi5nLCBDcy5n
KSwgY3NzX0JsZW5kQ29tcG9uZW50KENiLmIsIENzLmIpKSI7CiAgICAgY29uc3QgY2hhciogYmxl
bmRDb21wb25lbnRFeHByZXNzaW9uID0gIkNvID0gMC4wOyI7CisgICAgYm9vbCBuZWVkc0x1bWlu
b3NpdHlIZWxwZXJGdW5jdGlvbnMgPSBmYWxzZTsKKyAgICBTdHJpbmcgYmxlbmRGdW5jdGlvblN0
cmluZzsKICAgICBzd2l0Y2ggKGJsZW5kTW9kZSkgewogICAgIGNhc2UgQmxlbmRNb2RlTm9ybWFs
OgogICAgICAgICBibGVuZENvbG9yRXhwcmVzc2lvbiA9ICJDcyI7CkBAIC00MDUsMTUgKzQwNyw0
NSBAQCBTdHJpbmcgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0
cmluZyhCbGVuZE1vZGUgYmxlbmRNb2RlKQogICAgICAgICAgICAgICAgIENvID0gQ2IgKyAoMi4w
ICogQ3MgLSAxLjApICogKEQgLSBDYik7CiAgICAgICAgICk7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQmxlbmRNb2RlSHVlOgotICAgIGNhc2UgQmxlbmRNb2RlU2F0dXJhdGlvbjoKICAgICBj
YXNlIEJsZW5kTW9kZUNvbG9yOgorICAgICAgICBuZWVkc0x1bWlub3NpdHlIZWxwZXJGdW5jdGlv
bnMgPSB0cnVlOworICAgICAgICBibGVuZENvbG9yRXhwcmVzc2lvbiA9ICJjc3NfU2V0THVtKENz
LCBjc3NfTHVtKENiKSkiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZUx1bWlu
b3NpdHk6CisgICAgICAgIG5lZWRzTHVtaW5vc2l0eUhlbHBlckZ1bmN0aW9ucyA9IHRydWU7Cisg
ICAgICAgIGJsZW5kQ29sb3JFeHByZXNzaW9uID0gImNzc19TZXRMdW0oQ2IsIGNzc19MdW0oQ3Mp
KSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlSHVlOgorICAgIGNhc2UgQmxl
bmRNb2RlU2F0dXJhdGlvbjoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgcmV0
dXJuIFN0cmluZygpOwogICAgIH0KIAotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdChTSEFERVIo
CisgICAgaWYgKG5lZWRzTHVtaW5vc2l0eUhlbHBlckZ1bmN0aW9ucykKKyAgICAgICAgYmxlbmRG
dW5jdGlvblN0cmluZy5hcHBlbmQoU0hBREVSKAorICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBj
c3NfTHVtKG1lZGl1bXAgdmVjMyBDKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJl
dHVybiAwLjMgKiBDLnIgKyAwLjU5ICogQy5nICsgMC4xMSAqIEMuYjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIG1lZGl1bXAgdmVjMyBjc3NfQ2xpcENvbG9yKG1lZGl1bXAgdmVjMyBDKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1lZGl1bXAgZmxvYXQgTCA9IGNzc19MdW0o
Qyk7CisgICAgICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBuID0gbWluKG1pbihDLnIsIEMuZyks
IEMuYik7CisgICAgICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCB4ID0gbWF4KG1heChDLnIsIEMu
ZyksIEMuYik7CisgICAgICAgICAgICAgICAgaWYgKG4gPCAwLjApCisgICAgICAgICAgICAgICAg
ICAgIEMgPSBMICsgKCgoQyAtIEwpICogTCkgLyAoTCAtIG4pKTsKKyAgICAgICAgICAgICAgICBp
ZiAoeCA+IDEuMCkKKyAgICAgICAgICAgICAgICAgICAgQyA9IEwgKyAoKChDIC0gTCkgKiAoMS4w
IC0gTCkgLyAoeCAtIEwpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEM7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBtZWRpdW1wIHZlYzMgY3NzX1NldEx1bShtZWRpdW1wIHZlYzMgQywg
bWVkaXVtcCBmbG9hdCBsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEMgKz0gbCAt
IGNzc19MdW0oQyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc19DbGlwQ29sb3IoQyk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICkpOworCisgICAgYmxlbmRGdW5jdGlvblN0cmluZy5hcHBl
bmQoU3RyaW5nOjpmb3JtYXQoU0hBREVSKAogICAgICAgICBtZWRpdW1wIGZsb2F0IGNzc19CbGVu
ZENvbXBvbmVudChtZWRpdW1wIGZsb2F0IENiLCBtZWRpdW1wIGZsb2F0IENzKQogICAgICAgICB7
CiAgICAgICAgICAgICBtZWRpdW1wIGZsb2F0IENvOwpAQCAtNDI0LDcgKzQ1Niw5IEBAIFN0cmlu
ZyBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpibGVuZEZ1bmN0aW9uU3RyaW5nKEJsZW5k
TW9kZSBibGVuZE1vZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiAlczsKICAgICAg
ICAgfQotICAgICksIGJsZW5kQ29tcG9uZW50RXhwcmVzc2lvbiwgYmxlbmRDb2xvckV4cHJlc3Np
b24pOworICAgICksIGJsZW5kQ29tcG9uZW50RXhwcmVzc2lvbiwgYmxlbmRDb2xvckV4cHJlc3Np
b24pKTsKKworICAgIHJldHVybiBibGVuZEZ1bmN0aW9uU3RyaW5nOwogfQogCiBTdHJpbmcgQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6Y29tcG9zaXRlRnVuY3Rpb25TdHJpbmcoQ29tcG9z
aXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTA2MDIyZDY1YzRhYmFjZWM4
ZmMyMTdhNDJhMDczZTA5MmE1YmVhMC4uMjI3MjE4NDRjNzYzNmY0MTk0OWE3ODY4YmIzNGFkZDg4
N2VmNzU4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAyLTE0ICBNaWNoZWxhbmdlbG8g
RGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBTaGFk
ZXJzXSBJbXBsZW1lbnQgY29sb3IgYW5kIGx1bWlub3NpdHkgbm9uLXNlcGFyYWJsZSBibGVuZCBt
b2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2
MjI2CisKKyAgICAgICAgQWRkZWQgcmVsZXZhbnQgdGVzdHMgZm9yIHRoZSAiY29sb3IiIGFuZCAi
bHVtaW5vc2l0eSIgbm9uLXNlcGFyYWJsZSBibGVuZCBtb2Rlcy4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3Vz
dG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2Vw
YXJhYmxlLWJsZW5kLW1vZGUtY29sb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0
ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3Np
dHktZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9j
dXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbDogQWRk
ZWQuCisKIDIwMTMtMDItMTggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dLMl0gQ2Fubm90IGxvYWQgZG9jdW1lbnRzIHdpdGggYmxvYiB1cmxzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9u
c2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3ItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1j
b2xvci1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2MTYyNjc0NGI0YTRlNjA5YWVlNDgzNzgy
OWM5YWUxNzI4NWFhN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRl
cnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3ItZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0IHRoYXQgYmxlbmRzIHRoZSBzb3VyY2UgYW5k
IHRoZSBiYWNrZHJvcCB3aXRoIHRoZSBjb2xvciBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgI2Rlc3RpbmF0aW9uIHsKKyAgICAgICAgICAg
IC8qIFRoaXMgaXMgZXhhY3RseSB0aGUgY29sb3IgdmFsdWUgd2UgZXhwZWN0LiBTb21lIHBsYXRm
b3JtcyBtYXkgaGF2ZSBzbGlnaHQgZGlmZmVyZW50CisgICAgICAgICAgICAgICBjb2xvciByZXN1
bHQuICovCisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTA4LCAxNTcsIDI1NSk7
CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImRl
c3RpbmF0aW9uIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQt
bW9kZS1jb2xvci5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20t
ZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q4
MTc2NTkwOGQ2ODYyZDJkZTMwODhjMzU1MjMyMjljZjBlOTdhMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFi
bGUtYmxlbmQtbW9kZS1jb2xvci5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzwhRE9DVFlQRSBIVE1M
PgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3QgdGhhdCBibGVuZHMg
dGhlIHNvdXJjZSBhbmQgdGhlIGJhY2tkcm9wIHdpdGggdGhlIGNvbG9yIGJsZW5kIG1vZGUuPC90
aXRsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NT
Q3VzdG9tRmlsdGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7CisgICAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAj
ZGVzdGluYXRpb24geworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDkwJSwgNTAl
LCAzMCUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4v
cmVzb3VyY2VzL21peC1jb2xvci5mcycpIGNvbG9yIHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDAu
MiAwLjQgMC44IDEuMCk7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8IS0tCisgICAgVGhlIGZpbmFsIGNvbG9yIG9mICNkZXN0aW5hdGlvbiBkZXBlbmRzIG9uIHRo
ZSAiY29sb3IiIGJsZW5kIG1vZGUsIHdoaWNoIGlzIGEgbm9uLXNlcGFyYWJsZQorICAgIGJsZW5k
IG1vZGUuIFRoaXMgbWVhbnMgdGhhdCBjb2xvcnMgYXJlIGJsZW5kZWQgdG9naGV0ZXIgYXMgYSB3
aG9sZSwgbm90IGNvbXBvbmVudCBieSBjb21wb25lbnQuCisKKyAgICBUaGUgZm9ybXVsYSBmb3Ig
dGhpcyBibGVuZCBtb2RlIGlzOgorICAgICAgICBDciA9IEIoQ2IsIENzKSA9IFNldEx1bShDcywg
THVtKENiKSkKKworICAgIFdpdGg6CisgICAgICAgIENyOiB0aGUgcmVzdWx0aW5nIGNvbG9yCisg
ICAgICAgIENiOiB0aGUgYmFja2Ryb3AgY29sb3IsIHdoaWNoIGlzICNkZXN0aW5hdGlvbiAoIm9y
aWdpbmFsIERPTSBlbGVtZW50IGNvbG9yIikKKyAgICAgICAgQ3M6IHRoZSBzb3VyY2UgY29sb3Is
IHdoaWNoIGlzIG1peF9jb2xvcgorICAgICAgICBMdW0oQ2IpOiB0aGUgbHVtaW5vc2l0eSBvZiBD
Yi4gTHVtaW5vc2l0eSBmb3IgY29sb3IgQyBpcyBnZW5lcmFsbHkgZGVmaW5lZCBieQorICAgICAg
ICAgICBMdW0oQyk6IDAuMyAqIENyZWQgKyAwLjU5ICogQ2dyZWVuICsgMC4xMSAqIENibHVlCisg
ICAgICAgIFNldEx1bShDcywgTHVtKENiKSk6IHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1
bWlub3NpdHkuCisKKyAgICBUaGUgZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBsdW1pbm9zaXR5IGwg
b24gdGhlIGNvbG9yIEMgaXMgZ2VuZXJhbGx5IGRlZmluZWQgYnk6CisKKyAgICAgICAgU2V0THVt
KEMsIGwpCisgICAgICAgICAgICBkID0gbCAtIEx1bShDKQorICAgICAgICAgICAgQ3JlZCA9IENy
ZWQgKyBkCisgICAgICAgICAgICBDZ3JlZW4gPSBDZ3JlZW4gKyBkCisgICAgICAgICAgICBDYmx1
ZSA9IENibHVlICsgZAorICAgICAgICAgICAgcmV0dXJuIENsaXBDb2xvcihDKQorCisgICAgQXQg
dGhpcyBwb2ludCB0aGUgY29sb3IgQyBoYXMgdG8gYmUgY2xpcHBlZCBiZXR3ZWVuIFswLi4xXSAg
YnkgdGhlIENsaXBDb2xvciBmdW5jdGlvbiwgd2hpY2ggaXMKKyAgICBnZW5lcmFsbHkgZGVmaW5l
ZCBieToKKworICAgICAgICBDbGlwQ29sb3IoQykKKyAgICAgICAgICAgIGwgPSBMdW0oQykKKyAg
ICAgICAgICAgIG4gPSBtaW4oQ3JlZCwgQ2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIHggPSBt
YXgoQ3JlZCwgQ2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIGlmIG4gPCAwLjAKKyAgICAgICAg
ICAgICAgICBDcmVkID0gbCArICgoKENyZWQgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAg
ICAgICAgICBDZ3JlZW4gPSBsICsgKCgoQ2dyZWVuIC0gbCkgKiBsKSAvIChsIC0gbikpCisgICAg
ICAgICAgICAgICAgQ2JsdWUgPSBsICsgKCgoQ2JsdWUgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAg
ICAgICAgICAgIGlmIHggPiAxLjAKKyAgICAgICAgICAgICAgICBDcmVkID0gbCArICgoKENyZWQg
LSBsKSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDZ3JlZW4gPSBsICsg
KCgoQ2dyZWVuIC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAgICAgICAgQ2Js
dWUgPSBsICsgKCgoQ2JsdWUgLSBsKSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAg
IHJldHVybiBDCisKKyAgICBJbiB0aGlzIHRlc3QgY2FzZToKKyAgICAgICAgTHVtKENiKSA9IDAu
MyAqIDAuOSArIDAuNTkgKiAwLjUgKyAwLjExICogMC4zCisgICAgICAgIEx1bShDYikgPSAwLjI3
ICsgMC4yOTUgKyAwLjAzMworICAgICAgICBMdW0oQ2IpID0gMC41OTgKKworICAgICAgICBMdW0o
Q3MpID0gMC4zICogMC4yICsgMC41OSAqIDAuNCArIDAuMTEgKiAwLjgKKyAgICAgICAgTHVtKENz
KSA9IDAuMDYgKyAwLjIzNiArIDAuMDg4CisgICAgICAgIEx1bShDcykgPSAwLjM4NAorCisgICAg
ICAgIENyID0gU2V0THVtKENzLCAwLjU5OCkKKyAgICAgICAgICAgIGQgPSAwLjU5OCAtIEx1bShD
cykKKyAgICAgICAgICAgIGQgPSAwLjU5OCAtIDAuMzg0CisgICAgICAgICAgICBkID0gMC4yMTQK
KyAgICAgICAgICAgIENyZWQgPSAwLjIgKyAwLjIxNCA9IDAuNDE0CisgICAgICAgICAgICBHcmVl
biA9IDAuNCArIDAuMjE0ID0gMC42MTQKKyAgICAgICAgICAgIENibHVlID0gMC44ICsgMC4yMTQg
PSAxLjAxNAorICAgICAgICAgICAgcmV0dXJuIENsaXBDb2xvcigwLjQxNCwgMC42MTQsIDEuMDE0
KQorCisgICAgICAgIENsaXBDb2xvcigwLjQxNCwgMC42MTQsIDEuMDE0KQorICAgICAgICAgICAg
bCA9IDAuMyAqIDAuNDE0ICsgMC41OSAqIDAuNjE0ICsgMC4xMSAqIDEuMTAxNCA9IDAuMTI0MiAr
IDAuMzYyMjYgKyAwLjEyMTE1NCA9IDAuNjA3NjE0CisgICAgICAgICAgICBuID0gbWluKDAuNDE0
LCAwLjYxNCwgMS4wMTQpID0gMC40MTQKKyAgICAgICAgICAgIHggPSBtYXgoMC40MTQsIDAuNjE0
LCAxLjAxNCkgPSAxLjAxNAorICAgICAgICAgICAgeCA+IDEuMAorICAgICAgICAgICAgICAgIENy
ZWQgPSAwLjYwNzYxNCArICgoKDAuNDE0IC0gMC42MDc2MTQpICogKDEgLSAwLjYwNzYxNCkpIC8g
KDEuMDE0IC0gMC42MDc2MTQpKSA9IAorICAgICAgICAgICAgICAgICAgICAgPSAwLjYwNzYxNCAr
ICgoLTAuMTkzNjE0ICogMC4zOTIzODYpIC8gMC40MDYzODYpID0gMC42MDc2MTQgLSAoMC4wNzU5
NzE0MiAvIDAuNDA2Mzg2KSA9IDAuNjA3NjE0IC0gMC4xODY5NDM5OSA9IDAuNDIwNjcwMDEKKyAg
ICAgICAgICAgICAgICBDZ3JlZW4gPSAwLjYwNzYxNCArICgoKDAuNjE0IC0gMC42MDc2MTQpICog
KDEgLSAwLjYwNzYxNCkpIC8gKDEuMDE0IC0gMC42MDc2MTQpKSA9CisgICAgICAgICAgICAgICAg
ICAgICAgID0gMC42MDc2MTQgKyAoKDAuMDAzMzg2ICogMC4zOTIzODYpIC8gMC40MDYzODYgPSAw
LjYwNzYxNCArICgwLjAwMTMyODYyIC8gMC40MDYzODYpID0gMC42MDc2MTQgKyAwLjAwMzI2OTM1
ID0gMC42MTA4ODMzNQorICAgICAgICAgICAgICAgIENibHVlID0gMC42MDc2MTQgKyAoKCgxLjAx
NCAtIDAuNjA3NjE0KSAqICgxIC0gMC42MDc2MTQpKSAvICgxLjAxNCAtIDAuNjA3NjE0KSA9Cisg
ICAgICAgICAgICAgICAgICAgICAgPSAwLjYwNzYxNCArICgoMC40MDYzODYgKiAwLjM5MjM4Nikg
LyAwLjQwNjM4NikgPSAwLjYwNzYxNCArICgwLjE1OTQ2MDE4IC8gMC40MDYzODYpID0gMC42MDc2
MTQgKyAwLjM5MjM4NjAxID0gMS4wCisgICAgICAgICAgICByZXR1cm4gKDAuNDIsIDAuNjEsIDEu
MCkKKworICAgIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0byAoMTA4LCAxNTcsIDI1NSksIHdo
aWNoIGlzIHRoZSBleHBlY3RlZCBjb2xvci4KKyAgICBUaGlzIGlzIHRoZSBleGFjdCBjb2xvciB2
YWx1ZSwgb3RoZXIgcG9ydHMgbWlnaHQgZXhwZXJpZW5jZSBzbGlnaHQgZGlmZmVyZW5jZXMuCist
LT4KKyAgICA8ZGl2IGlkPSJkZXN0aW5hdGlvbiI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXIt
bm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVu
ZC1tb2RlLWx1bWlub3NpdHktZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTRjYjI5MTViMWNl
NmNjOTcwNjVjY2Y2ZThmOTgzNTY3MDAyZTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1t
b2RlLWx1bWlub3NpdHktZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUg
SFRNTD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0IHRoYXQgYmxl
bmRzIHRoZSBzb3VyY2UgYW5kIHRoZSBiYWNrZHJvcCB3aXRoIHRoZSBjb2xvciBibGVuZCBtb2Rl
LjwvdGl0bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgI2Rlc3RpbmF0
aW9uIHsKKyAgICAgICAgICAgIC8qIFRoaXMgaXMgZXhhY3RseSB0aGUgY29sb3IgdmFsdWUgd2Ug
ZXhwZWN0LiBTb21lIHBsYXRmb3JtcyBtYXkgaGF2ZSBzbGlnaHQgZGlmZmVyZW50CisgICAgICAg
ICAgICAgICBjb2xvciByZXN1bHQuICovCisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2IoOTgsIDMzLCAwKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhl
aWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPGRpdiBpZD0iZGVzdGluYXRpb24iPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNl
cGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9z
aXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWVhN2M2NzcwOGMwOTE4NTYwOTZlYTMyNzhlYTg0ZDY2ZmEw
NDVmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20v
Y3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5Lmh0bWwKQEAg
LTAsMCArMSw5NyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4K
KyAgICA8dGl0bGU+VGVzdCB0aGF0IGJsZW5kcyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ryb3Ag
d2l0aCB0aGUgbHVtaW5vc2l0eSBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQiLCAi
MSIpOworICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJX
ZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgI2Rlc3RpbmF0aW9uIHsKKyAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5MCUsIDUwJSwgMzAlKTsKKyAgICAgICAgICAgIHdp
ZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgLXdlYmtp
dC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMn
KSBsdW1pbm9zaXR5IHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDAuMSAwLjIgMC40IDEuMCk7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8IS0tCisgICAgVGhlIGZp
bmFsIGNvbG9yIG9mICNkZXN0aW5hdGlvbiBkZXBlbmRzIG9uIHRoZSAibHVtaW5vc2l0eSIgYmxl
bmQgbW9kZSwgd2hpY2ggaXMgYSBub24tc2VwYXJhYmxlCisgICAgYmxlbmQgbW9kZS4gVGhpcyBt
ZWFucyB0aGF0IGNvbG9ycyBhcmUgYmxlbmRlZCB0b2dldGVyIGFzIGEgd2hvbGUsIG5vdCBjb21w
b25lbnQgYnkgY29tcG9uZW50LgorCisgICAgVGhlIGZvcm11bGEgZm9yIHRoaXMgYmxlbmQgbW9k
ZSBpczoKKyAgICAgICAgQ3IgPSBCKENiLCBDcykgPSBTZXRMdW0oQ2IsIEx1bShDcykpCisKKyAg
ICBXaXRoOgorICAgICAgICBDcjogdGhlIHJlc3VsdGluZyBjb2xvcgorICAgICAgICBDYjogdGhl
IGJhY2tkcm9wIGNvbG9yLCB3aGljaCBpcyAjZGVzdGluYXRpb24gKCJvcmlnaW5hbCBET00gZWxl
bWVudCBjb2xvciIpCisgICAgICAgIENzOiB0aGUgc291cmNlIGNvbG9yLCB3aGljaCBpcyBtaXhf
Y29sb3IKKyAgICAgICAgTHVtKENzKTogdGhlIGx1bWlub3NpdHkgb2YgQ3MuIEx1bWlub3NpdHkg
Zm9yIGNvbG9yIEMgaXMgZ2VuZXJhbGx5IGRlZmluZWQgYnkKKyAgICAgICAgICAgTHVtKEMpOiAw
LjMgKiBDcmVkICsgMC41OSAqIENncmVlbiArIDAuMTEgKiBDYmx1ZQorICAgICAgICBTZXRMdW0o
Q2IsIEx1bShDcykpOiB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBsdW1pbm9zaXR5LgorCisg
ICAgVGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgbHVtaW5vc2l0eSBsIG9uIHRoZSBjb2xvciBD
IGlzIGdlbmVyYWxseSBkZWZpbmVkIGJ5OgorCisgICAgICAgIFNldEx1bShDLCBsKQorICAgICAg
ICAgICAgZCA9IGwgLSBMdW0oQykKKyAgICAgICAgICAgIENyZWQgPSBDcmVkICsgZAorICAgICAg
ICAgICAgQ2dyZWVuID0gQ2dyZWVuICsgZAorICAgICAgICAgICAgQ2JsdWUgPSBDYmx1ZSArIGQK
KyAgICAgICAgICAgIHJldHVybiBDbGlwQ29sb3IoQykKKworICAgIEF0IHRoaXMgcG9pbnQgdGhl
IGNvbG9yIEMgaGFzIHRvIGJlIGNsaXBwZWQgYmV0d2VlbiBbMC4uMV0gIGJ5IHRoZSBDbGlwQ29s
b3IgZnVuY3Rpb24sIHdoaWNoIGlzCisgICAgZ2VuZXJhbGx5IGRlZmluZWQgYnk6CisKKyAgICAg
ICAgQ2xpcENvbG9yKEMpCisgICAgICAgICAgICBsID0gTHVtKEMpCisgICAgICAgICAgICBuID0g
bWluKENyZWQsIENncmVlbiwgQ2JsdWUpCisgICAgICAgICAgICB4ID0gbWF4KENyZWQsIENncmVl
biwgQ2JsdWUpCisgICAgICAgICAgICBpZiBuIDwgMC4wCisgICAgICAgICAgICAgICAgQ3JlZCA9
IGwgKyAoKChDcmVkIC0gbCkgKiBsKSAvIChsIC0gbikpCisgICAgICAgICAgICAgICAgQ2dyZWVu
ID0gbCArICgoKENncmVlbiAtIGwpICogbCkgLyAobCAtIG4pKQorICAgICAgICAgICAgICAgIENi
bHVlID0gbCArICgoKENibHVlIC0gbCkgKiBsKSAvIChsIC0gbikpCisgICAgICAgICAgICBpZiB4
ID4gMS4wCisgICAgICAgICAgICAgICAgQ3JlZCA9IGwgKyAoKChDcmVkIC0gbCkgKiAoMSAtIGwp
KSAvICh4IC0gbCkpCisgICAgICAgICAgICAgICAgQ2dyZWVuID0gbCArICgoKENncmVlbiAtIGwp
ICogKDEgLSBsKSkgLyAoeCAtIGwpKQorICAgICAgICAgICAgICAgIENibHVlID0gbCArICgoKENi
bHVlIC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAgICByZXR1cm4gQworCisg
ICAgSW4gdGhpcyB0ZXN0IGNhc2U6CisgICAgICAgIEx1bShDYikgPSAwLjMgKiAwLjkgKyAwLjU5
ICogMC41ICsgMC4xMSAqIDAuMworICAgICAgICBMdW0oQ2IpID0gMC4yNyArIDAuMjk1ICsgMC4w
MzMKKyAgICAgICAgTHVtKENiKSA9IDAuNTk4CisKKyAgICAgICAgTHVtKENzKSA9IDAuMyAqIDAu
MSArIDAuNTkgKiAwLjIgKyAwLjExICogMC40CisgICAgICAgIEx1bShDcykgPSAwLjAzICsgMC4x
MTggKyAwLjA0NAorICAgICAgICBMdW0oQ3MpID0gMC4xOTIKKworICAgQ3IgPSBTZXRMdW0oQ2Is
IDAuMTkyKQorICAgICAgICBkID0gMC4xOTIgLSAwLjU5OAorICAgICAgICBkID0gMC40MDYKKyAg
ICAgICAgQ3JlZCA9IDAuOSAtIDAuNDA2ID0gMC40OTQKKyAgICAgICAgQ2dyZWVuID0gMC41IC0g
MC40MDYgPSAwLjA5NAorICAgICAgICBDYmx1ZSA9IDAuMyAtIDAuNDA2ID0gLTAuMTA2CisgICAg
ICAgIHJldHVybiBDbGlwQ29sb3IoMC40OTQsIDAuMDk0LCAtMC4xMDYpCisKKyAgICBDbGlwQ29s
b3IoMC40OTQsIDAuMDk0LCAtMC4xMDYpCisgICAgICAgIGwgPSAwLjQ5NCAqIDAuMyArIDAuMDk0
ICogMC41OSAtIDAuMTA2ICogMC4xMSA9IDAuMTQ4MiArIDAuMDU1NDYgLSAwLjAxMTY2ID0gMC4x
OTIKKyAgICAgICAgbiA9IG1pbigwLjQ5NCwgMC4wOTQsIC0wLjEwNikgPSAtMC4xMDYKKyAgICAg
ICAgeCA9IG1heCgwLjQ5NCwgMC4wOTQsIC0wLjEwNikgPSAwLjQ5NAorICAgICAgICBuIDwgMC4w
CisgICAgICAgICAgICBDcmVkID0gMC4xOTIgKyAoKCgwLjQ5NCAtIDAuMTkyKSAqIDAuMTkyKSAv
ICgwLjE5MiArIDAuMTA2KSkgPQorICAgICAgICAgICAgICAgICA9IDAuMTkyICsgKDAuMzAyICog
MC4xOTIpIC8gMC4yOTggPSAwLjE5MiArICgwLjA1Nzk4NCAvIDAuMjk4KSA9IDAuMTkyICsgMC4x
OTQ1NzcxOCA9IDAuMzg2NTc3MTgKKyAgICAgICAgICAgIENncmVlbiA9IDAuMTkyICsgKCgoMC4w
OTQgLSAwLjE5MikgKiAwLjE5MikgLyAoMC4xOTIgKyAwLjEwNikpID0KKyAgICAgICAgICAgICAg
ICAgICA9IDAuMTkyICsgKC0wLjA5OCAqIDAuMTkyKSAvIDAuMjk4ID0gMC4xOTIgLSAoMC4wMTg4
MTYgLyAwLjI5OCkgPSAwLjE5MiAtIDAuMDYzMTQwOTQgPSAwLjEyODg1OTA2CisgICAgICAgICAg
ICBDYmx1ZSA9IDAuMTkyICsgKCgoLTAuMTA2IC0gMC4xOTIpICogMC4xOTIpIC8gKDAuMTkyICsg
MC4xMDYpKSA9CisgICAgICAgICAgICAgICAgICA9IDAuMTkyICsgKC0wLjI5OCAqIDAuMTkyKSAv
IDAuMjk4ID0gMC4xOTIgLSAwLjE5MiA9IDAuMAorICAgICAgICByZXR1cm4gKDAuMzg2NTc3MTgs
IDAuMTI4ODU5MDYsIDAuMDApCisKKyAgICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQgdG8gKDk4
LCAzMywgMCksIHdoaWNoIGlzIHRoZSBleHBlY3RlZCBjb2xvci4KKyAgICBUaGlzIGlzIHRoZSBl
eGFjdCBjb2xvciB2YWx1ZSwgb3RoZXIgcG9ydHMgbWlnaHQgZXhwZXJpZW5jZSBzbGlnaHQgZGlm
ZmVyZW5jZXMuCistLT4KKyAgICA8ZGl2IGlkPSJkZXN0aW5hdGlvbiI+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189335</attachid>
            <date>2013-02-20 10:31:48 -0800</date>
            <delta_ts>2013-02-21 13:59:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106226-20130220102809.patch</filename>
            <type>text/plain</type>
            <size>16563</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGUyYWQ2MDY4OWU0OGEx
ZjkyOTg0ZDZlNzAxMzc2YTQ3NDJjOWVjMC4uNGZjMWVjNTI0NDBlMTgwYzUzMDUzOTMwY2VmN2Mx
Yjk2Y2Q2MWQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTIwICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSBJbXBsZW1lbnQgY29sb3IgYW5kIGx1bWlub3NpdHkgbm9uLXNlcGFyYWJs
ZSBibGVuZCBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA2MjI2CisKKyAgICAgICAgQWRkZWQgdGhlIGZvbGxvd2luZyBHTFNMIGhlbHBlciBm
dW5jdGlvbnMgdG8gdGhlIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06CisKKyAgICAgICAg
ICAgIC0gTHVtKEMpOiByZXR1cm5zIHRoZSBsdW1pbm9zaXR5IGZvciB0aGUgY29sb3IgQworICAg
ICAgICAgICAgLSBDbGlwQ29sb3IoQyk6IGNsaXBzIGNvbG9yIEMKKyAgICAgICAgICAgIC0gU2V0
THVtKEMsIGwpOiBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNvbG9yIEMKKworICAgICAg
ICBUaGUgYWJvdmUgZnVuY3Rpb25zIGFyZSBiZWluZyB1c2VkIGZvciB0aGUgImNvbG9yIiBhbmQg
Imx1bWlub3NpdHkiIG5vbi1zZXBhcmFibGUKKyAgICAgICAgYmxlbmQgbW9kZXMsIHRoZSByZWxl
dmFudCBzcGVjIGZvciBzdWNoIG1vZGVzIGlzIGF0IFVSTDoKKyAgICAgICAgaHR0cHM6Ly9kdmNz
LnczLm9yZy9oZy9GWFRGL3Jhd2ZpbGUvdGlwL2NvbXBvc2l0aW5nL2luZGV4Lmh0bWwjYmxlbmRp
bmdub25zZXBhcmFibGUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0czogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFy
YWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZmlsdGVycy9j
dXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5Lmh0
bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0
ZWRQcm9ncmFtOjpibGVuZEZ1bmN0aW9uU3RyaW5nKToKKwogMjAxMy0wMi0yMCAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIERhdGFiYXNlQmFja2VuZCB0
byBEYXRhYmFzZUJhY2tlbmRCYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbS5jcHAKaW5kZXggY2I1NWM1ZTI3NTVmNzgxYmJjNGM2NjhiZDdhMjBmMDEwMDNj
Mjc3ZC4uYzY2YWVhNWYyYmQzNDM3ZWNiOGU5OTMzZmFlMGZiNGM0MzI2ZTU1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJW
YWxpZGF0ZWRQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCkBAIC0yOTEsNiArMjkx
LDggQEAgU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmJsZW5kRnVuY3Rpb25T
dHJpbmcoQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICAvLyBDYjogaXMgdGhlIGJhY2tkcm9wIGNv
bG9yIGluIGNzc19CbGVuZENvbG9yKCkgYW5kIHRoZSBiYWNrZHJvcCBjb2xvciBjb21wb25lbnQg
aW4gY3NzX0JsZW5kQ29tcG9uZW50KCkKICAgICBjb25zdCBjaGFyKiBibGVuZENvbG9yRXhwcmVz
c2lvbiA9ICJ2ZWMzKGNzc19CbGVuZENvbXBvbmVudChDYi5yLCBDcy5yKSwgY3NzX0JsZW5kQ29t
cG9uZW50KENiLmcsIENzLmcpLCBjc3NfQmxlbmRDb21wb25lbnQoQ2IuYiwgQ3MuYikpIjsKICAg
ICBjb25zdCBjaGFyKiBibGVuZENvbXBvbmVudEV4cHJlc3Npb24gPSAiQ28gPSAwLjA7IjsKKyAg
ICBib29sIG5lZWRzTHVtaW5vc2l0eUhlbHBlckZ1bmN0aW9ucyA9IGZhbHNlOworICAgIFN0cmlu
ZyBibGVuZEZ1bmN0aW9uU3RyaW5nOwogICAgIHN3aXRjaCAoYmxlbmRNb2RlKSB7CiAgICAgY2Fz
ZSBCbGVuZE1vZGVOb3JtYWw6CiAgICAgICAgIGJsZW5kQ29sb3JFeHByZXNzaW9uID0gIkNzIjsK
QEAgLTQwNSwxNSArNDA3LDQ1IEBAIFN0cmluZyBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFt
OjpibGVuZEZ1bmN0aW9uU3RyaW5nKEJsZW5kTW9kZSBibGVuZE1vZGUpCiAgICAgICAgICAgICAg
ICAgQ28gPSBDYiArICgyLjAgKiBDcyAtIDEuMCkgKiAoRCAtIENiKTsKICAgICAgICAgKTsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCbGVuZE1vZGVIdWU6Ci0gICAgY2FzZSBCbGVuZE1vZGVT
YXR1cmF0aW9uOgogICAgIGNhc2UgQmxlbmRNb2RlQ29sb3I6CisgICAgICAgIG5lZWRzTHVtaW5v
c2l0eUhlbHBlckZ1bmN0aW9ucyA9IHRydWU7CisgICAgICAgIGJsZW5kQ29sb3JFeHByZXNzaW9u
ID0gImNzc19TZXRMdW0oQ3MsIGNzc19MdW0oQ2IpKSI7CisgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQmxlbmRNb2RlTHVtaW5vc2l0eToKKyAgICAgICAgbmVlZHNMdW1pbm9zaXR5SGVscGVyRnVu
Y3Rpb25zID0gdHJ1ZTsKKyAgICAgICAgYmxlbmRDb2xvckV4cHJlc3Npb24gPSAiY3NzX1NldEx1
bShDYiwgY3NzX0x1bShDcykpIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVI
dWU6CisgICAgY2FzZSBCbGVuZE1vZGVTYXR1cmF0aW9uOgogICAgICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIFN0cmlu
Zzo6Zm9ybWF0KFNIQURFUigKKyAgICBpZiAobmVlZHNMdW1pbm9zaXR5SGVscGVyRnVuY3Rpb25z
KQorICAgICAgICBibGVuZEZ1bmN0aW9uU3RyaW5nLmFwcGVuZChTSEFERVIoCisgICAgICAgICAg
ICBtZWRpdW1wIGZsb2F0IGNzc19MdW0obWVkaXVtcCB2ZWMzIEMpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIDAuMyAqIEMuciArIDAuNTkgKiBDLmcgKyAwLjExICogQy5i
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWVkaXVtcCB2ZWMzIGNzc19DbGlwQ29sb3Io
bWVkaXVtcCB2ZWMzIEMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWVkaXVtcCBm
bG9hdCBMID0gY3NzX0x1bShDKTsKKyAgICAgICAgICAgICAgICBtZWRpdW1wIGZsb2F0IG4gPSBt
aW4obWluKEMuciwgQy5nKSwgQy5iKTsKKyAgICAgICAgICAgICAgICBtZWRpdW1wIGZsb2F0IHgg
PSBtYXgobWF4KEMuciwgQy5nKSwgQy5iKTsKKyAgICAgICAgICAgICAgICBpZiAobiA8IDAuMCkK
KyAgICAgICAgICAgICAgICAgICAgQyA9IEwgKyAoKChDIC0gTCkgKiBMKSAvIChMIC0gbikpOwor
ICAgICAgICAgICAgICAgIGlmICh4ID4gMS4wKQorICAgICAgICAgICAgICAgICAgICBDID0gTCAr
ICgoKEMgLSBMKSAqICgxLjAgLSBMKSAvICh4IC0gTCkpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gQzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1lZGl1bXAgdmVjMyBjc3NfU2V0THVt
KG1lZGl1bXAgdmVjMyBDLCBtZWRpdW1wIGZsb2F0IGwpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgQyArPSBsIC0gY3NzX0x1bShDKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3Nz
X0NsaXBDb2xvcihDKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKSk7CisKKyAgICBibGVuZEZ1
bmN0aW9uU3RyaW5nLmFwcGVuZChTdHJpbmc6OmZvcm1hdChTSEFERVIoCiAgICAgICAgIG1lZGl1
bXAgZmxvYXQgY3NzX0JsZW5kQ29tcG9uZW50KG1lZGl1bXAgZmxvYXQgQ2IsIG1lZGl1bXAgZmxv
YXQgQ3MpCiAgICAgICAgIHsKICAgICAgICAgICAgIG1lZGl1bXAgZmxvYXQgQ287CkBAIC00MjQs
NyArNDU2LDkgQEAgU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmJsZW5kRnVu
Y3Rpb25TdHJpbmcoQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICAgICAgewogICAgICAgICAgICAg
cmV0dXJuICVzOwogICAgICAgICB9Ci0gICAgKSwgYmxlbmRDb21wb25lbnRFeHByZXNzaW9uLCBi
bGVuZENvbG9yRXhwcmVzc2lvbik7CisgICAgKSwgYmxlbmRDb21wb25lbnRFeHByZXNzaW9uLCBi
bGVuZENvbG9yRXhwcmVzc2lvbikpOworCisgICAgcmV0dXJuIGJsZW5kRnVuY3Rpb25TdHJpbmc7
CiB9CiAKIFN0cmluZyBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpjb21wb3NpdGVGdW5j
dGlvblN0cmluZyhDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvcikKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAw
NWU1YmRiODlmMjhmZjljZjVhYmJkNzIzYjJhMGQ2ZjAyN2FlN2Y4Li5lZGRmMGYyYTMxMjk2ZmNm
ODVhY2RjY2UxMDQ0NTQ1NDEyODI0ZTVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDIt
MjAgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNoZWxhbmdlbG9Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBbQ1NTIFNoYWRlcnNdIEltcGxlbWVudCBjb2xvciBhbmQgbHVtaW5vc2l0eSBub24t
c2VwYXJhYmxlIGJsZW5kIG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDYyMjYKKworICAgICAgICBBZGRlZCByZWxldmFudCB0ZXN0cyBmb3Ig
dGhlICJjb2xvciIgYW5kICJsdW1pbm9zaXR5IiBub24tc2VwYXJhYmxlIGJsZW5kIG1vZGVzLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzMy9m
aWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9y
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3Vz
dG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJs
ZW5kLW1vZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3Mz
L2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVt
aW5vc2l0eS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0yMCAgUm91c2xhbiBTb2xvbWFraGluICA8
cm91c2xhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3BlbGxjaGVja2VyIHNob3VsZCBub3Qg
Y3Jhc2ggYWZ0ZXIgdGV4dCBoYXMgY2hhbmdlZCBhbmQgc3BlbGxjaGVjayByZXN1bHRzIGFyZSBz
ZXJ2ZWQgZnJvbSBjYWNoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1
c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9u
c2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3ItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjE2
MjY3NDRiNGE0ZTYwOWFlZTQ4Mzc4MjljOWFlMTcyODVhYTdmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJs
ZS1ibGVuZC1tb2RlLWNvbG9yLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdCB0aGF0
IGJsZW5kcyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ryb3Agd2l0aCB0aGUgY29sb3IgYmxlbmQg
bW9kZS48L3RpdGxlPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICNkZXN0
aW5hdGlvbiB7CisgICAgICAgICAgICAvKiBUaGlzIGlzIGV4YWN0bHkgdGhlIGNvbG9yIHZhbHVl
IHdlIGV4cGVjdC4gU29tZSBwbGF0Zm9ybXMgbWF5IGhhdmUgc2xpZ2h0IGRpZmZlcmVudAorICAg
ICAgICAgICAgICAgY29sb3IgcmVzdWx0LiAqLworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogcmdiKDEwOCwgMTU3LCAyNTUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IGlkPSJkZXN0aW5hdGlvbiI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0
ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3IuaHRtbCBiL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xv
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM5NDNhYjYzNjg5MTk2MDBmNjZkNWU5NDYxYTE0OGJhNGJjM2Yz
MTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1
c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3IuaHRtbApAQCAtMCwwICsx
LDk4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0
aXRsZT5UZXN0IHRoYXQgYmxlbmRzIHRoZSBzb3VyY2UgYW5kIHRoZSBiYWNrZHJvcCB3aXRoIHRo
ZSBjb2xvciBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQiLCAiMSIpOworICAgICAg
ICAgICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVu
YWJsZWQiLCAiMSIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KKyAgICAgICAgI2Rlc3RpbmF0aW9uIHsKKyAgICAgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IHJnYig5MCUsIDUwJSwgMzAlKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsK
KyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1
c3RvbShub25lIG1peCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBjb2xvciBzb3Vy
Y2UtYXRvcCksIG1peF9jb2xvciAwLjIgMC40IDAuOCAxLjApOworICAgICAgICB9CisgICAgPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPCEtLQorICAgIFRoZSBmaW5hbCBjb2xvciBvZiAjZGVz
dGluYXRpb24gZGVwZW5kcyBvbiB0aGUgImNvbG9yIiBibGVuZCBtb2RlLCB3aGljaCBpcyBhIG5v
bi1zZXBhcmFibGUKKyAgICBibGVuZCBtb2RlLiBUaGlzIG1lYW5zIHRoYXQgY29sb3JzIGFyZSBi
bGVuZGVkIHRvZ2V0aGVyIGFzIGEgd2hvbGUsIG5vdCBjb21wb25lbnQgYnkgY29tcG9uZW50Lgor
CisgICAgVGhlIGZvcm11bGEgZm9yIHRoaXMgYmxlbmQgbW9kZSBpczoKKyAgICAgICAgQ3IgPSBC
KENiLCBDcykgPSBTZXRMdW0oQ3MsIEx1bShDYikpCisKKyAgICBXaXRoOgorICAgICAgICBDcjog
dGhlIHJlc3VsdGluZyBjb2xvcgorICAgICAgICBDYjogdGhlIGJhY2tkcm9wIGNvbG9yLCB3aGlj
aCBpcyAjZGVzdGluYXRpb24gKCJvcmlnaW5hbCBET00gZWxlbWVudCBjb2xvciIpCisgICAgICAg
IENzOiB0aGUgc291cmNlIGNvbG9yLCB3aGljaCBpcyBtaXhfY29sb3IKKyAgICAgICAgTHVtKENi
KTogdGhlIGx1bWlub3NpdHkgb2YgQ2IuIEx1bWlub3NpdHkgZm9yIGNvbG9yIEMgaXMgZ2VuZXJh
bGx5IGRlZmluZWQgYnkKKyAgICAgICAgICAgTHVtKEMpOiAwLjMgKiBDcmVkICsgMC41OSAqIENn
cmVlbiArIDAuMTEgKiBDYmx1ZQorICAgICAgICBTZXRMdW0oQ3MsIEx1bShDYikpOiB0aGUgZnVu
Y3Rpb24gdGhhdCBzZXRzIHRoZSBsdW1pbm9zaXR5LgorCisgICAgVGhlIGZ1bmN0aW9uIHRoYXQg
c2V0cyB0aGUgbHVtaW5vc2l0eSBsIG9uIHRoZSBjb2xvciBDIGlzIGdlbmVyYWxseSBkZWZpbmVk
IGJ5OgorCisgICAgICAgIFNldEx1bShDLCBsKQorICAgICAgICAgICAgZCA9IGwgLSBMdW0oQykK
KyAgICAgICAgICAgIENyZWQgPSBDcmVkICsgZAorICAgICAgICAgICAgQ2dyZWVuID0gQ2dyZWVu
ICsgZAorICAgICAgICAgICAgQ2JsdWUgPSBDYmx1ZSArIGQKKyAgICAgICAgICAgIHJldHVybiBD
bGlwQ29sb3IoQykKKworICAgIEF0IHRoaXMgcG9pbnQgdGhlIGNvbG9yIEMgaGFzIHRvIGJlIGNs
aXBwZWQgYmV0d2VlbiBbMC4uMV0gIGJ5IHRoZSBDbGlwQ29sb3IgZnVuY3Rpb24sIHdoaWNoIGlz
CisgICAgZ2VuZXJhbGx5IGRlZmluZWQgYnk6CisKKyAgICAgICAgQ2xpcENvbG9yKEMpCisgICAg
ICAgICAgICBsID0gTHVtKEMpCisgICAgICAgICAgICBuID0gbWluKENyZWQsIENncmVlbiwgQ2Js
dWUpCisgICAgICAgICAgICB4ID0gbWF4KENyZWQsIENncmVlbiwgQ2JsdWUpCisgICAgICAgICAg
ICBpZiBuIDwgMC4wCisgICAgICAgICAgICAgICAgQ3JlZCA9IGwgKyAoKChDcmVkIC0gbCkgKiBs
KSAvIChsIC0gbikpCisgICAgICAgICAgICAgICAgQ2dyZWVuID0gbCArICgoKENncmVlbiAtIGwp
ICogbCkgLyAobCAtIG4pKQorICAgICAgICAgICAgICAgIENibHVlID0gbCArICgoKENibHVlIC0g
bCkgKiBsKSAvIChsIC0gbikpCisgICAgICAgICAgICBpZiB4ID4gMS4wCisgICAgICAgICAgICAg
ICAgQ3JlZCA9IGwgKyAoKChDcmVkIC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAg
ICAgICAgICAgQ2dyZWVuID0gbCArICgoKENncmVlbiAtIGwpICogKDEgLSBsKSkgLyAoeCAtIGwp
KQorICAgICAgICAgICAgICAgIENibHVlID0gbCArICgoKENibHVlIC0gbCkgKiAoMSAtIGwpKSAv
ICh4IC0gbCkpCisgICAgICAgICAgICByZXR1cm4gQworCisgICAgSW4gdGhpcyB0ZXN0IGNhc2U6
CisgICAgICAgIEx1bShDYikgPSAwLjMgKiAwLjkgKyAwLjU5ICogMC41ICsgMC4xMSAqIDAuMwor
ICAgICAgICBMdW0oQ2IpID0gMC4yNyArIDAuMjk1ICsgMC4wMzMKKyAgICAgICAgTHVtKENiKSA9
IDAuNTk4CisKKyAgICAgICAgTHVtKENzKSA9IDAuMyAqIDAuMiArIDAuNTkgKiAwLjQgKyAwLjEx
ICogMC44CisgICAgICAgIEx1bShDcykgPSAwLjA2ICsgMC4yMzYgKyAwLjA4OAorICAgICAgICBM
dW0oQ3MpID0gMC4zODQKKworICAgICAgICBDciA9IFNldEx1bShDcywgMC41OTgpCisgICAgICAg
ICAgICBkID0gMC41OTggLSBMdW0oQ3MpCisgICAgICAgICAgICBkID0gMC41OTggLSAwLjM4NAor
ICAgICAgICAgICAgZCA9IDAuMjE0CisgICAgICAgICAgICBDcmVkID0gMC4yICsgMC4yMTQgPSAw
LjQxNAorICAgICAgICAgICAgR3JlZW4gPSAwLjQgKyAwLjIxNCA9IDAuNjE0CisgICAgICAgICAg
ICBDYmx1ZSA9IDAuOCArIDAuMjE0ID0gMS4wMTQKKyAgICAgICAgICAgIHJldHVybiBDbGlwQ29s
b3IoMC40MTQsIDAuNjE0LCAxLjAxNCkKKworICAgICAgICBDbGlwQ29sb3IoMC40MTQsIDAuNjE0
LCAxLjAxNCkKKyAgICAgICAgICAgIGwgPSAwLjMgKiAwLjQxNCArIDAuNTkgKiAwLjYxNCArIDAu
MTEgKiAxLjEwMTQgPSAwLjEyNDIgKyAwLjM2MjI2ICsgMC4xMjExNTQgPSAwLjYwNzYxNAorICAg
ICAgICAgICAgbiA9IG1pbigwLjQxNCwgMC42MTQsIDEuMDE0KSA9IDAuNDE0CisgICAgICAgICAg
ICB4ID0gbWF4KDAuNDE0LCAwLjYxNCwgMS4wMTQpID0gMS4wMTQKKyAgICAgICAgICAgIHggPiAx
LjAKKyAgICAgICAgICAgICAgICBDcmVkID0gMC42MDc2MTQgKyAoKCgwLjQxNCAtIDAuNjA3NjE0
KSAqICgxIC0gMC42MDc2MTQpKSAvICgxLjAxNCAtIDAuNjA3NjE0KSkgPSAKKyAgICAgICAgICAg
ICAgICAgICAgID0gMC42MDc2MTQgKyAoKC0wLjE5MzYxNCAqIDAuMzkyMzg2KSAvIDAuNDA2Mzg2
KSA9IDAuNjA3NjE0IC0gKDAuMDc1OTcxNDIgLyAwLjQwNjM4NikgPSAwLjYwNzYxNCAtIDAuMTg2
OTQzOTkgPSAwLjQyMDY3MDAxCisgICAgICAgICAgICAgICAgQ2dyZWVuID0gMC42MDc2MTQgKyAo
KCgwLjYxNCAtIDAuNjA3NjE0KSAqICgxIC0gMC42MDc2MTQpKSAvICgxLjAxNCAtIDAuNjA3NjE0
KSkgPQorICAgICAgICAgICAgICAgICAgICAgICA9IDAuNjA3NjE0ICsgKCgwLjAwMzM4NiAqIDAu
MzkyMzg2KSAvIDAuNDA2Mzg2ID0gMC42MDc2MTQgKyAoMC4wMDEzMjg2MiAvIDAuNDA2Mzg2KSA9
IDAuNjA3NjE0ICsgMC4wMDMyNjkzNSA9IDAuNjEwODgzMzUKKyAgICAgICAgICAgICAgICBDYmx1
ZSA9IDAuNjA3NjE0ICsgKCgoMS4wMTQgLSAwLjYwNzYxNCkgKiAoMSAtIDAuNjA3NjE0KSkgLyAo
MS4wMTQgLSAwLjYwNzYxNCkgPQorICAgICAgICAgICAgICAgICAgICAgID0gMC42MDc2MTQgKyAo
KDAuNDA2Mzg2ICogMC4zOTIzODYpIC8gMC40MDYzODYpID0gMC42MDc2MTQgKyAoMC4xNTk0NjAx
OCAvIDAuNDA2Mzg2KSA9IDAuNjA3NjE0ICsgMC4zOTIzODYwMSA9IDEuMAorICAgICAgICAgICAg
cmV0dXJuICgwLjQyLCAwLjYxLCAxLjApCisKKyAgICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQg
dG8gKDEwOCwgMTU3LCAyNTUpLCB3aGljaCBpcyB0aGUgZXhwZWN0ZWQgY29sb3IuCisgICAgVGhp
cyBpcyB0aGUgZXhhY3QgY29sb3IgdmFsdWUsIG90aGVyIHBvcnRzIG1pZ2h0IGV4cGVyaWVuY2Ug
c2xpZ2h0IGRpZmZlcmVuY2VzLgorLS0+CisgICAgPGRpdiBpZD0iZGVzdGluYXRpb24iPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJz
L2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZp
bHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5LWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTk0Y2IyOTE1YjFjZTZjYzk3MDY1Y2NmNmU4Zjk4MzU2NzAwMmU0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRl
ci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5LWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSwxOCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8dGl0bGU+VGVzdCB0aGF0IGJsZW5kcyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ryb3Agd2l0
aCB0aGUgY29sb3IgYmxlbmQgbW9kZS48L3RpdGxlPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+CisgICAgICAgICNkZXN0aW5hdGlvbiB7CisgICAgICAgICAgICAvKiBUaGlzIGlzIGV4YWN0
bHkgdGhlIGNvbG9yIHZhbHVlIHdlIGV4cGVjdC4gU29tZSBwbGF0Zm9ybXMgbWF5IGhhdmUgc2xp
Z2h0IGRpZmZlcmVudAorICAgICAgICAgICAgICAgY29sb3IgcmVzdWx0LiAqLworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDk4LCAzMywgMCk7CisgICAgICAgICAgICB3aWR0aDog
MTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImRlc3RpbmF0aW9uIj48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0
b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJh
YmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxOGUzZGNiMjVmZTdi
YWQ2NTUyYTI1MTI4NTljOTVmNjg1ZjU3MWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1v
ZGUtbHVtaW5vc2l0eS5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3QgdGhhdCBibGVuZHMgdGhlIHNv
dXJjZSBhbmQgdGhlIGJhY2tkcm9wIHdpdGggdGhlIGx1bWlub3NpdHkgYmxlbmQgbW9kZS48L3Rp
dGxlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1ND
dXN0b21GaWx0ZXJFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVy
Lm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAg
fQorICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICNk
ZXN0aW5hdGlvbiB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTAlLCA1MCUs
IDMwJSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEw
MHB4OworICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcuLi9y
ZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbHVtaW5vc2l0eSBzb3VyY2UtYXRvcCksIG1peF9jb2xv
ciAwLjEgMC4yIDAuNCAxLjApOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPCEtLQorICAgIFRoZSBmaW5hbCBjb2xvciBvZiAjZGVzdGluYXRpb24gZGVwZW5kcyBv
biB0aGUgImx1bWlub3NpdHkiIGJsZW5kIG1vZGUsIHdoaWNoIGlzIGEgbm9uLXNlcGFyYWJsZQor
ICAgIGJsZW5kIG1vZGUuIFRoaXMgbWVhbnMgdGhhdCBjb2xvcnMgYXJlIGJsZW5kZWQgdG9nZXRo
ZXIgYXMgYSB3aG9sZSwgbm90IGNvbXBvbmVudCBieSBjb21wb25lbnQuCisKKyAgICBUaGUgZm9y
bXVsYSBmb3IgdGhpcyBibGVuZCBtb2RlIGlzOgorICAgICAgICBDciA9IEIoQ2IsIENzKSA9IFNl
dEx1bShDYiwgTHVtKENzKSkKKworICAgIFdpdGg6CisgICAgICAgIENyOiB0aGUgcmVzdWx0aW5n
IGNvbG9yCisgICAgICAgIENiOiB0aGUgYmFja2Ryb3AgY29sb3IsIHdoaWNoIGlzICNkZXN0aW5h
dGlvbiAoIm9yaWdpbmFsIERPTSBlbGVtZW50IGNvbG9yIikKKyAgICAgICAgQ3M6IHRoZSBzb3Vy
Y2UgY29sb3IsIHdoaWNoIGlzIG1peF9jb2xvcgorICAgICAgICBMdW0oQ3MpOiB0aGUgbHVtaW5v
c2l0eSBvZiBDcy4gTHVtaW5vc2l0eSBmb3IgY29sb3IgQyBpcyBnZW5lcmFsbHkgZGVmaW5lZCBi
eQorICAgICAgICAgICBMdW0oQyk6IDAuMyAqIENyZWQgKyAwLjU5ICogQ2dyZWVuICsgMC4xMSAq
IENibHVlCisgICAgICAgIFNldEx1bShDYiwgTHVtKENzKSk6IHRoZSBmdW5jdGlvbiB0aGF0IHNl
dHMgdGhlIGx1bWlub3NpdHkuCisKKyAgICBUaGUgZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBsdW1p
bm9zaXR5IGwgb24gdGhlIGNvbG9yIEMgaXMgZ2VuZXJhbGx5IGRlZmluZWQgYnk6CisKKyAgICAg
ICAgU2V0THVtKEMsIGwpCisgICAgICAgICAgICBkID0gbCAtIEx1bShDKQorICAgICAgICAgICAg
Q3JlZCA9IENyZWQgKyBkCisgICAgICAgICAgICBDZ3JlZW4gPSBDZ3JlZW4gKyBkCisgICAgICAg
ICAgICBDYmx1ZSA9IENibHVlICsgZAorICAgICAgICAgICAgcmV0dXJuIENsaXBDb2xvcihDKQor
CisgICAgQXQgdGhpcyBwb2ludCB0aGUgY29sb3IgQyBoYXMgdG8gYmUgY2xpcHBlZCBiZXR3ZWVu
IFswLi4xXSAgYnkgdGhlIENsaXBDb2xvciBmdW5jdGlvbiwgd2hpY2ggaXMKKyAgICBnZW5lcmFs
bHkgZGVmaW5lZCBieToKKworICAgICAgICBDbGlwQ29sb3IoQykKKyAgICAgICAgICAgIGwgPSBM
dW0oQykKKyAgICAgICAgICAgIG4gPSBtaW4oQ3JlZCwgQ2dyZWVuLCBDYmx1ZSkKKyAgICAgICAg
ICAgIHggPSBtYXgoQ3JlZCwgQ2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIGlmIG4gPCAwLjAK
KyAgICAgICAgICAgICAgICBDcmVkID0gbCArICgoKENyZWQgLSBsKSAqIGwpIC8gKGwgLSBuKSkK
KyAgICAgICAgICAgICAgICBDZ3JlZW4gPSBsICsgKCgoQ2dyZWVuIC0gbCkgKiBsKSAvIChsIC0g
bikpCisgICAgICAgICAgICAgICAgQ2JsdWUgPSBsICsgKCgoQ2JsdWUgLSBsKSAqIGwpIC8gKGwg
LSBuKSkKKyAgICAgICAgICAgIGlmIHggPiAxLjAKKyAgICAgICAgICAgICAgICBDcmVkID0gbCAr
ICgoKENyZWQgLSBsKSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDZ3Jl
ZW4gPSBsICsgKCgoQ2dyZWVuIC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAg
ICAgICAgQ2JsdWUgPSBsICsgKCgoQ2JsdWUgLSBsKSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAg
ICAgICAgICAgIHJldHVybiBDCisKKyAgICBJbiB0aGlzIHRlc3QgY2FzZToKKyAgICAgICAgTHVt
KENiKSA9IDAuMyAqIDAuOSArIDAuNTkgKiAwLjUgKyAwLjExICogMC4zCisgICAgICAgIEx1bShD
YikgPSAwLjI3ICsgMC4yOTUgKyAwLjAzMworICAgICAgICBMdW0oQ2IpID0gMC41OTgKKworICAg
ICAgICBMdW0oQ3MpID0gMC4zICogMC4xICsgMC41OSAqIDAuMiArIDAuMTEgKiAwLjQKKyAgICAg
ICAgTHVtKENzKSA9IDAuMDMgKyAwLjExOCArIDAuMDQ0CisgICAgICAgIEx1bShDcykgPSAwLjE5
MgorCisgICBDciA9IFNldEx1bShDYiwgMC4xOTIpCisgICAgICAgIGQgPSAwLjE5MiAtIDAuNTk4
CisgICAgICAgIGQgPSAwLjQwNgorICAgICAgICBDcmVkID0gMC45IC0gMC40MDYgPSAwLjQ5NAor
ICAgICAgICBDZ3JlZW4gPSAwLjUgLSAwLjQwNiA9IDAuMDk0CisgICAgICAgIENibHVlID0gMC4z
IC0gMC40MDYgPSAtMC4xMDYKKyAgICAgICAgcmV0dXJuIENsaXBDb2xvcigwLjQ5NCwgMC4wOTQs
IC0wLjEwNikKKworICAgIENsaXBDb2xvcigwLjQ5NCwgMC4wOTQsIC0wLjEwNikKKyAgICAgICAg
bCA9IDAuNDk0ICogMC4zICsgMC4wOTQgKiAwLjU5IC0gMC4xMDYgKiAwLjExID0gMC4xNDgyICsg
MC4wNTU0NiAtIDAuMDExNjYgPSAwLjE5MgorICAgICAgICBuID0gbWluKDAuNDk0LCAwLjA5NCwg
LTAuMTA2KSA9IC0wLjEwNgorICAgICAgICB4ID0gbWF4KDAuNDk0LCAwLjA5NCwgLTAuMTA2KSA9
IDAuNDk0CisgICAgICAgIG4gPCAwLjAKKyAgICAgICAgICAgIENyZWQgPSAwLjE5MiArICgoKDAu
NDk0IC0gMC4xOTIpICogMC4xOTIpIC8gKDAuMTkyICsgMC4xMDYpKSA9CisgICAgICAgICAgICAg
ICAgID0gMC4xOTIgKyAoMC4zMDIgKiAwLjE5MikgLyAwLjI5OCA9IDAuMTkyICsgKDAuMDU3OTg0
IC8gMC4yOTgpID0gMC4xOTIgKyAwLjE5NDU3NzE4ID0gMC4zODY1NzcxOAorICAgICAgICAgICAg
Q2dyZWVuID0gMC4xOTIgKyAoKCgwLjA5NCAtIDAuMTkyKSAqIDAuMTkyKSAvICgwLjE5MiArIDAu
MTA2KSkgPQorICAgICAgICAgICAgICAgICAgID0gMC4xOTIgKyAoLTAuMDk4ICogMC4xOTIpIC8g
MC4yOTggPSAwLjE5MiAtICgwLjAxODgxNiAvIDAuMjk4KSA9IDAuMTkyIC0gMC4wNjMxNDA5NCA9
IDAuMTI4ODU5MDYKKyAgICAgICAgICAgIENibHVlID0gMC4xOTIgKyAoKCgtMC4xMDYgLSAwLjE5
MikgKiAwLjE5MikgLyAoMC4xOTIgKyAwLjEwNikpID0KKyAgICAgICAgICAgICAgICAgID0gMC4x
OTIgKyAoLTAuMjk4ICogMC4xOTIpIC8gMC4yOTggPSAwLjE5MiAtIDAuMTkyID0gMC4wCisgICAg
ICAgIHJldHVybiAoMC4zODY1NzcxOCwgMC4xMjg4NTkwNiwgMC4wMCkKKworICAgIFRoaXMgdmFs
dWUgaXMgZXF1aXZhbGVudCB0byAoOTgsIDMzLCAwKSwgd2hpY2ggaXMgdGhlIGV4cGVjdGVkIGNv
bG9yLgorICAgIFRoaXMgaXMgdGhlIGV4YWN0IGNvbG9yIHZhbHVlLCBvdGhlciBwb3J0cyBtaWdo
dCBleHBlcmllbmNlIHNsaWdodCBkaWZmZXJlbmNlcy4KKy0tPgorICAgIDxkaXYgaWQ9ImRlc3Rp
bmF0aW9uIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189595</attachid>
            <date>2013-02-21 13:59:35 -0800</date>
            <delta_ts>2013-02-25 10:15:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106226-20130221135555.patch</filename>
            <type>text/plain</type>
            <size>21888</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ3ZTc0M2I5YWQyM2Ux
MDQ1OTU4NTE2Nzg1OGNlODA4M2FjN2MyNS4uNTk0MGZlNmRjY2FmNDUyOWFlZmQ2YWU2ODZlOGFl
NDdiYWI0YTQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTIxICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSBJbXBsZW1lbnQgY29sb3IgYW5kIGx1bWlub3NpdHkgbm9uLXNlcGFyYWJs
ZSBibGVuZCBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA2MjI2CisKKyAgICAgICAgQWRkZWQgdGhlIGZvbGxvd2luZyBHTFNMIGhlbHBlciBm
dW5jdGlvbnMgdG8gdGhlIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06CisKKyAgICAgICAg
ICAgIC0gTHVtKEMpOiByZXR1cm5zIHRoZSBsdW1pbm9zaXR5IGZvciB0aGUgY29sb3IgQworICAg
ICAgICAgICAgLSBDbGlwQ29sb3IoQyk6IGNsaXBzIGNvbG9yIEMKKyAgICAgICAgICAgIC0gU2V0
THVtKEMsIGwpOiBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNvbG9yIEMKKworICAgICAg
ICBUaGUgYWJvdmUgZnVuY3Rpb25zIGFyZSBiZWluZyB1c2VkIGZvciB0aGUgImNvbG9yIiBhbmQg
Imx1bWlub3NpdHkiIG5vbi1zZXBhcmFibGUKKyAgICAgICAgYmxlbmQgbW9kZXMsIHRoZSByZWxl
dmFudCBzcGVjIGZvciBzdWNoIG1vZGVzIGlzIGF0IFVSTDoKKyAgICAgICAgaHR0cHM6Ly9kdmNz
LnczLm9yZy9oZy9GWFRGL3Jhd2ZpbGUvdGlwL2NvbXBvc2l0aW5nL2luZGV4Lmh0bWwjYmxlbmRp
bmdub25zZXBhcmFibGUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0czogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFy
YWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZmlsdGVycy9j
dXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5Lmh0
bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0
ZWRQcm9ncmFtOjpibGVuZEZ1bmN0aW9uU3RyaW5nKToKKwogMjAxMy0wMi0yMSAgUGhpbGlwIFJv
Z2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIFN0b3Agc3RhcnRpbmcgYW5pbWF0aW9u
cyB3aGVuIGxlYXZpbmcgYSBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0
ZWRQcm9ncmFtLmNwcAppbmRleCBjYjU1YzVlMjc1NWY3ODFiYmM0YzY2OGJkN2EyMGYwMTAwM2My
NzdkLi5jNjZhZWE1ZjJiZDM0MzdlY2I4ZTk5MzNmYWUwZmI0YzQzMjZlNTUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZh
bGlkYXRlZFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKQEAgLTI5MSw2ICsyOTEs
OCBAQCBTdHJpbmcgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0
cmluZyhCbGVuZE1vZGUgYmxlbmRNb2RlKQogICAgIC8vIENiOiBpcyB0aGUgYmFja2Ryb3AgY29s
b3IgaW4gY3NzX0JsZW5kQ29sb3IoKSBhbmQgdGhlIGJhY2tkcm9wIGNvbG9yIGNvbXBvbmVudCBp
biBjc3NfQmxlbmRDb21wb25lbnQoKQogICAgIGNvbnN0IGNoYXIqIGJsZW5kQ29sb3JFeHByZXNz
aW9uID0gInZlYzMoY3NzX0JsZW5kQ29tcG9uZW50KENiLnIsIENzLnIpLCBjc3NfQmxlbmRDb21w
b25lbnQoQ2IuZywgQ3MuZyksIGNzc19CbGVuZENvbXBvbmVudChDYi5iLCBDcy5iKSkiOwogICAg
IGNvbnN0IGNoYXIqIGJsZW5kQ29tcG9uZW50RXhwcmVzc2lvbiA9ICJDbyA9IDAuMDsiOworICAg
IGJvb2wgbmVlZHNMdW1pbm9zaXR5SGVscGVyRnVuY3Rpb25zID0gZmFsc2U7CisgICAgU3RyaW5n
IGJsZW5kRnVuY3Rpb25TdHJpbmc7CiAgICAgc3dpdGNoIChibGVuZE1vZGUpIHsKICAgICBjYXNl
IEJsZW5kTW9kZU5vcm1hbDoKICAgICAgICAgYmxlbmRDb2xvckV4cHJlc3Npb24gPSAiQ3MiOwpA
QCAtNDA1LDE1ICs0MDcsNDUgQEAgU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06
OmJsZW5kRnVuY3Rpb25TdHJpbmcoQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICAgICAgICAgICAg
ICBDbyA9IENiICsgKDIuMCAqIENzIC0gMS4wKSAqIChEIC0gQ2IpOwogICAgICAgICApOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEJsZW5kTW9kZUh1ZToKLSAgICBjYXNlIEJsZW5kTW9kZVNh
dHVyYXRpb246CiAgICAgY2FzZSBCbGVuZE1vZGVDb2xvcjoKKyAgICAgICAgbmVlZHNMdW1pbm9z
aXR5SGVscGVyRnVuY3Rpb25zID0gdHJ1ZTsKKyAgICAgICAgYmxlbmRDb2xvckV4cHJlc3Npb24g
PSAiY3NzX1NldEx1bShDcywgY3NzX0x1bShDYikpIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBCbGVuZE1vZGVMdW1pbm9zaXR5OgorICAgICAgICBuZWVkc0x1bWlub3NpdHlIZWxwZXJGdW5j
dGlvbnMgPSB0cnVlOworICAgICAgICBibGVuZENvbG9yRXhwcmVzc2lvbiA9ICJjc3NfU2V0THVt
KENiLCBjc3NfTHVtKENzKSkiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUh1
ZToKKyAgICBjYXNlIEJsZW5kTW9kZVNhdHVyYXRpb246CiAgICAgICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5n
Ojpmb3JtYXQoU0hBREVSKAorICAgIGlmIChuZWVkc0x1bWlub3NpdHlIZWxwZXJGdW5jdGlvbnMp
CisgICAgICAgIGJsZW5kRnVuY3Rpb25TdHJpbmcuYXBwZW5kKFNIQURFUigKKyAgICAgICAgICAg
IG1lZGl1bXAgZmxvYXQgY3NzX0x1bShtZWRpdW1wIHZlYzMgQykKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gMC4zICogQy5yICsgMC41OSAqIEMuZyArIDAuMTEgKiBDLmI7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtZWRpdW1wIHZlYzMgY3NzX0NsaXBDb2xvciht
ZWRpdW1wIHZlYzMgQykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtZWRpdW1wIGZs
b2F0IEwgPSBjc3NfTHVtKEMpOworICAgICAgICAgICAgICAgIG1lZGl1bXAgZmxvYXQgbiA9IG1p
bihtaW4oQy5yLCBDLmcpLCBDLmIpOworICAgICAgICAgICAgICAgIG1lZGl1bXAgZmxvYXQgeCA9
IG1heChtYXgoQy5yLCBDLmcpLCBDLmIpOworICAgICAgICAgICAgICAgIGlmIChuIDwgMC4wKQor
ICAgICAgICAgICAgICAgICAgICBDID0gTCArICgoKEMgLSBMKSAqIEwpIC8gKEwgLSBuKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKHggPiAxLjApCisgICAgICAgICAgICAgICAgICAgIEMgPSBMICsg
KCgoQyAtIEwpICogKDEuMCAtIEwpIC8gKHggLSBMKSkpOworICAgICAgICAgICAgICAgIHJldHVy
biBDOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWVkaXVtcCB2ZWMzIGNzc19TZXRMdW0o
bWVkaXVtcCB2ZWMzIEMsIG1lZGl1bXAgZmxvYXQgbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBDICs9IGwgLSBjc3NfTHVtKEMpOworICAgICAgICAgICAgICAgIHJldHVybiBjc3Nf
Q2xpcENvbG9yKEMpOworICAgICAgICAgICAgfQorICAgICAgICApKTsKKworICAgIGJsZW5kRnVu
Y3Rpb25TdHJpbmcuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KFNIQURFUigKICAgICAgICAgbWVkaXVt
cCBmbG9hdCBjc3NfQmxlbmRDb21wb25lbnQobWVkaXVtcCBmbG9hdCBDYiwgbWVkaXVtcCBmbG9h
dCBDcykKICAgICAgICAgewogICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBDbzsKQEAgLTQyNCw3
ICs0NTYsOSBAQCBTdHJpbmcgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5j
dGlvblN0cmluZyhCbGVuZE1vZGUgYmxlbmRNb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4gJXM7CiAgICAgICAgIH0KLSAgICApLCBibGVuZENvbXBvbmVudEV4cHJlc3Npb24sIGJs
ZW5kQ29sb3JFeHByZXNzaW9uKTsKKyAgICApLCBibGVuZENvbXBvbmVudEV4cHJlc3Npb24sIGJs
ZW5kQ29sb3JFeHByZXNzaW9uKSk7CisKKyAgICByZXR1cm4gYmxlbmRGdW5jdGlvblN0cmluZzsK
IH0KIAogU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmNvbXBvc2l0ZUZ1bmN0
aW9uU3RyaW5nKENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZl
OTNlM2M4NDBlYjZhNzlhNjY4MTRiMGU2YzU2NzI3NDU2NmMwN2EuLmE1Yjg1ZjBjMDc0YjdmNzRi
MjUyNDY3ZTE4OGY4ZmJkZGVmMDNkNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMi0y
MSAgTWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2hlbGFuZ2Vsb0B3ZWJraXQub3JnPgorCisg
ICAgICAgIFtDU1MgU2hhZGVyc10gSW1wbGVtZW50IGNvbG9yIGFuZCBsdW1pbm9zaXR5IG5vbi1z
ZXBhcmFibGUgYmxlbmQgbW9kZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNjIyNgorCisgICAgICAgIEFkZGVkIHJlbGV2YW50IHRlc3RzIGZvciB0
aGUgImNvbG9yIiBhbmQgImx1bWlub3NpdHkiIG5vbi1zZXBhcmFibGUgYmxlbmQgbW9kZXMuCisg
ICAgICAgIFRoZXNlIHRlc3RzIGFyZSBjdXJyZW50bHkgc2tpcHBlZCBvbiBNYWMgZHVlIHRvIGEg
c2xpZ2h0IGNvbG9yIGRpZmZlcmVuY2U7IHBsZWFzZQorICAgICAgICBzZWUgcmVsZXZhbnQgYnVn
OiBodHRwOi8vd2Via2l0Lm9yZy9iLzEwNzQ4Ny4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRl
ci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJs
ZW5kLW1vZGUtY29sb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3Rv
bS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHktZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmls
dGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbDogQWRkZWQuCisKIDIw
MTMtMDItMjEgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBTdG9w
IHN0YXJ0aW5nIGFuaW1hdGlvbnMgd2hlbiBsZWF2aW5nIGEgcGFnZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1i
bGVuZC1tb2RlLWNvbG9yLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMv
Y3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3ItZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNWMzYTJmMWY3MTI1ODRiZjAzNDFjNjFjY2JlMzc1OWEzMmZi
YmFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9j
dXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+VGVzdCB0aGF0IGJsZW5kcyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ry
b3Agd2l0aCB0aGUgY29sb3IgYmxlbmQgbW9kZS48L3RpdGxlPgorICAgIDxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisgICAgICAgIC8qIFRoZXNlIGFyZSBleGFjdGx5IHRoZSBjb2xvciB2YWx1ZXMg
d2UgZXhwZWN0LiBTb21lIHBsYXRmb3JtcyBtYXkgaGF2ZSBzbGlnaHQgZGlmZmVyZW50CisgICAg
ICAgICAgIGNvbG9yIHJlc3VsdC4gKi8KKyAgICAgICAgI2Rlc3RpbmF0aW9uIHsKKyAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDgsIDE1NywgMjU1KTsKKyAgICAgICAgICAgIHdp
ZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAg
ICAgI2Rlc3RpbmF0aW9uLWFscGhhLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHJnYigxNjcsIDE5MiwgMjQyKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
ICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2Rlc3RpbmF0aW9uLXNv
bGlkLWFscGhhIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNjksIDE0Miwg
MTY2KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAw
cHg7CisgICAgICAgIH0KKyAgICAgICAgI2Rlc3RpbmF0aW9uLWFscGhhLWFscGhhIHsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDUsIDE5MiwgMjA0KTsKKyAgICAgICAgICAg
IHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAg
ICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iZGVzdGluYXRpb24iPjwv
ZGl2PgorICAgIDxkaXYgaWQ9ImRlc3RpbmF0aW9uLWFscGhhLXNvbGlkIj48L2Rpdj4KKyAgICA8
ZGl2IGlkPSJkZXN0aW5hdGlvbi1zb2xpZC1hbHBoYSI+PC9kaXY+CisgICAgPGRpdiBpZD0iZGVz
dGluYXRpb24tYWxwaGEtYWxwaGEiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFy
YWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3Vz
dG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3IuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jOWJmNDAwY2I5MzZmMzNmODc4OTJkZjhmZDU2NzljMzc4ZjAyZjQwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVy
LW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwKQEAgLTAsMCArMSwxMjkgQEAKKzwh
RE9DVFlQRSBIVE1MPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3Qg
dGhhdCBibGVuZHMgdGhlIHNvdXJjZSBhbmQgdGhlIGJhY2tkcm9wIHdpdGggdGhlIGNvbG9yIGJs
ZW5kIG1vZGUuPC90aXRsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIx
Iik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PgorICAgICAgICAjZGVzdGluYXRpb24geworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmdiKDkwJSwgNTAlLCAzMCUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUg
bWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIGNvbG9yIHNvdXJjZS1hdG9wKSwg
bWl4X2NvbG9yIDAuMiAwLjQgMC44IDEuMCk7CisgICAgICAgIH0KKyAgICAgICAgI2Rlc3RpbmF0
aW9uLWFscGhhLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAl
LCA1MCUsIDMwJSwgMC41KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1p
eCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBjb2xvciBzb3VyY2UtYXRvcCksIG1p
eF9jb2xvciAwLjIgMC40IDAuOCAxLjApOworICAgICAgICB9CisgICAgICAgICNkZXN0aW5hdGlv
bi1zb2xpZC1hbHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTAlLCA1
MCUsIDMwJSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6
IDEwMHB4OworICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcu
Li9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgY29sb3Igc291cmNlLWF0b3ApLCBtaXhfY29sb3Ig
MC4yIDAuNCAwLjggMC41KTsKKyAgICAgICAgfQorICAgICAgICAjZGVzdGluYXRpb24tYWxwaGEt
YWxwaGEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MCUsIDUwJSwgMzAl
LCAwLjUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4v
cmVzb3VyY2VzL21peC1jb2xvci5mcycpIGNvbG9yIHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDAu
MiAwLjQgMC44IDAuNSk7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8IS0tCisgICAgVGhlIGZvbGxvd2luZyBwcm9vZiBhcHBsaWVzIHRvIHRoZSBmaXJzdCBjYXNl
ICgjZGVzdGluYXRpb24pIHdoZXJlIGJvdGggdGhlIGJhY2tkcm9wIGFuZCB0aGUKKyAgICBzb3Vy
Y2UgYXJlIHNvbGlkLgorCisgICAgSW4gdGhpcyB0ZXN0IHRoZSBmb2xsb3dpbmcgY29tYmluYXRp
b25zIGFyZSBhbHNvIHRlc3RlZDoKKyAgICAgICAgQmFja2Ryb3Agd2l0aCAwLjUgYWxwaGEgYmxl
bmRlZCB3aXRoIHNvbGlkIHNvdXJjZQorICAgICAgICBTb2xpZCBiYWNrZHJvcCBibGVuZGVkIHdp
dGggc291cmNlIHdpdGggMC41IGFscGhhCisgICAgICAgIEJhY2tkcm9wIHdpdGggMC41IGJsZW5k
ZWQgd2l0aCBzb3VyY2Ugd2l0aCAwLjUgYWxwaGEKKyAgICBUaGUgdW5kZXJsYXlpbmcgcHJvb2Yg
b2YgdGhlIGFib3ZlIG1lbnRpb25lZCBjYXNlcyBpcyB0aGUgc2FtZTogdGhlIGNvbG9ycyBhcmUg
cHJlbXVsdGlwbGllZAorICAgIGFuZCB0aGVuIGJsZW5kZWQgdG9nZXRoZXIuCisKKyAgICBUaGUg
ZmluYWwgY29sb3Igb2YgI2Rlc3RpbmF0aW9uIGRlcGVuZHMgb24gdGhlICJjb2xvciIgYmxlbmQg
bW9kZSwgd2hpY2ggaXMgYSBub24tc2VwYXJhYmxlCisgICAgYmxlbmQgbW9kZS4gVGhpcyBtZWFu
cyB0aGF0IGNvbG9ycyBhcmUgYmxlbmRlZCB0b2dldGhlciBhcyBhIHdob2xlLCBub3QgY29tcG9u
ZW50IGJ5IGNvbXBvbmVudC4KKworICAgIFRoZSBmb3JtdWxhIGZvciB0aGlzIGJsZW5kIG1vZGUg
aXM6CisgICAgICAgIENyID0gQihDYiwgQ3MpID0gU2V0THVtKENzLCBMdW0oQ2IpKQorCisgICAg
V2l0aDoKKyAgICAgICAgQ3I6IHRoZSByZXN1bHRpbmcgY29sb3IKKyAgICAgICAgQ2I6IHRoZSBi
YWNrZHJvcCBjb2xvciwgd2hpY2ggaXMgI2Rlc3RpbmF0aW9uICgib3JpZ2luYWwgRE9NIGVsZW1l
bnQgY29sb3IiKQorICAgICAgICBDczogdGhlIHNvdXJjZSBjb2xvciwgd2hpY2ggaXMgbWl4X2Nv
bG9yCisgICAgICAgIEx1bShDYik6IHRoZSBsdW1pbm9zaXR5IG9mIENiLiBMdW1pbm9zaXR5IGZv
ciBjb2xvciBDIGlzIGdlbmVyYWxseSBkZWZpbmVkIGJ5CisgICAgICAgICAgIEx1bShDKTogMC4z
ICogQ3JlZCArIDAuNTkgKiBDZ3JlZW4gKyAwLjExICogQ2JsdWUKKyAgICAgICAgU2V0THVtKENz
LCBMdW0oQ2IpKTogdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgbHVtaW5vc2l0eS4KKworICAg
IFRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1bWlub3NpdHkgbCBvbiB0aGUgY29sb3IgQyBp
cyBnZW5lcmFsbHkgZGVmaW5lZCBieToKKworICAgICAgICBTZXRMdW0oQywgbCkKKyAgICAgICAg
ICAgIGQgPSBsIC0gTHVtKEMpCisgICAgICAgICAgICBDcmVkID0gQ3JlZCArIGQKKyAgICAgICAg
ICAgIENncmVlbiA9IENncmVlbiArIGQKKyAgICAgICAgICAgIENibHVlID0gQ2JsdWUgKyBkCisg
ICAgICAgICAgICByZXR1cm4gQ2xpcENvbG9yKEMpCisKKyAgICBBdCB0aGlzIHBvaW50IHRoZSBj
b2xvciBDIGhhcyB0byBiZSBjbGlwcGVkIGJldHdlZW4gWzAuLjFdICBieSB0aGUgQ2xpcENvbG9y
IGZ1bmN0aW9uLCB3aGljaCBpcworICAgIGdlbmVyYWxseSBkZWZpbmVkIGJ5OgorCisgICAgICAg
IENsaXBDb2xvcihDKQorICAgICAgICAgICAgbCA9IEx1bShDKQorICAgICAgICAgICAgbiA9IG1p
bihDcmVkLCBDZ3JlZW4sIENibHVlKQorICAgICAgICAgICAgeCA9IG1heChDcmVkLCBDZ3JlZW4s
IENibHVlKQorICAgICAgICAgICAgaWYgbiA8IDAuMAorICAgICAgICAgICAgICAgIENyZWQgPSBs
ICsgKCgoQ3JlZCAtIGwpICogbCkgLyAobCAtIG4pKQorICAgICAgICAgICAgICAgIENncmVlbiA9
IGwgKyAoKChDZ3JlZW4gLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgICAgICBDYmx1
ZSA9IGwgKyAoKChDYmx1ZSAtIGwpICogbCkgLyAobCAtIG4pKQorICAgICAgICAgICAgaWYgeCA+
IDEuMAorICAgICAgICAgICAgICAgIENyZWQgPSBsICsgKCgoQ3JlZCAtIGwpICogKDEgLSBsKSkg
LyAoeCAtIGwpKQorICAgICAgICAgICAgICAgIENncmVlbiA9IGwgKyAoKChDZ3JlZW4gLSBsKSAq
ICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDYmx1ZSA9IGwgKyAoKChDYmx1
ZSAtIGwpICogKDEgLSBsKSkgLyAoeCAtIGwpKQorICAgICAgICAgICAgcmV0dXJuIEMKKworICAg
IEluIHRoaXMgdGVzdCBjYXNlOgorICAgICAgICBMdW0oQ2IpID0gMC4zICogMC45ICsgMC41OSAq
IDAuNSArIDAuMTEgKiAwLjMKKyAgICAgICAgTHVtKENiKSA9IDAuMjcgKyAwLjI5NSArIDAuMDMz
CisgICAgICAgIEx1bShDYikgPSAwLjU5OAorCisgICAgICAgIEx1bShDcykgPSAwLjMgKiAwLjIg
KyAwLjU5ICogMC40ICsgMC4xMSAqIDAuOAorICAgICAgICBMdW0oQ3MpID0gMC4wNiArIDAuMjM2
ICsgMC4wODgKKyAgICAgICAgTHVtKENzKSA9IDAuMzg0CisKKyAgICAgICAgQ3IgPSBTZXRMdW0o
Q3MsIDAuNTk4KQorICAgICAgICAgICAgZCA9IDAuNTk4IC0gTHVtKENzKQorICAgICAgICAgICAg
ZCA9IDAuNTk4IC0gMC4zODQKKyAgICAgICAgICAgIGQgPSAwLjIxNAorICAgICAgICAgICAgQ3Jl
ZCA9IDAuMiArIDAuMjE0ID0gMC40MTQKKyAgICAgICAgICAgIEdyZWVuID0gMC40ICsgMC4yMTQg
PSAwLjYxNAorICAgICAgICAgICAgQ2JsdWUgPSAwLjggKyAwLjIxNCA9IDEuMDE0CisgICAgICAg
ICAgICByZXR1cm4gQ2xpcENvbG9yKDAuNDE0LCAwLjYxNCwgMS4wMTQpCisKKyAgICAgICAgQ2xp
cENvbG9yKDAuNDE0LCAwLjYxNCwgMS4wMTQpCisgICAgICAgICAgICBsID0gMC4zICogMC40MTQg
KyAwLjU5ICogMC42MTQgKyAwLjExICogMS4xMDE0ID0gMC4xMjQyICsgMC4zNjIyNiArIDAuMTIx
MTU0ID0gMC42MDc2MTQKKyAgICAgICAgICAgIG4gPSBtaW4oMC40MTQsIDAuNjE0LCAxLjAxNCkg
PSAwLjQxNAorICAgICAgICAgICAgeCA9IG1heCgwLjQxNCwgMC42MTQsIDEuMDE0KSA9IDEuMDE0
CisgICAgICAgICAgICB4ID4gMS4wCisgICAgICAgICAgICAgICAgQ3JlZCA9IDAuNjA3NjE0ICsg
KCgoMC40MTQgLSAwLjYwNzYxNCkgKiAoMSAtIDAuNjA3NjE0KSkgLyAoMS4wMTQgLSAwLjYwNzYx
NCkpID0gCisgICAgICAgICAgICAgICAgICAgICA9IDAuNjA3NjE0ICsgKCgtMC4xOTM2MTQgKiAw
LjM5MjM4NikgLyAwLjQwNjM4NikgPSAwLjYwNzYxNCAtICgwLjA3NTk3MTQyIC8gMC40MDYzODYp
ID0gMC42MDc2MTQgLSAwLjE4Njk0Mzk5ID0gMC40MjA2NzAwMQorICAgICAgICAgICAgICAgIENn
cmVlbiA9IDAuNjA3NjE0ICsgKCgoMC42MTQgLSAwLjYwNzYxNCkgKiAoMSAtIDAuNjA3NjE0KSkg
LyAoMS4wMTQgLSAwLjYwNzYxNCkpID0KKyAgICAgICAgICAgICAgICAgICAgICAgPSAwLjYwNzYx
NCArICgoMC4wMDMzODYgKiAwLjM5MjM4NikgLyAwLjQwNjM4NiA9IDAuNjA3NjE0ICsgKDAuMDAx
MzI4NjIgLyAwLjQwNjM4NikgPSAwLjYwNzYxNCArIDAuMDAzMjY5MzUgPSAwLjYxMDg4MzM1Cisg
ICAgICAgICAgICAgICAgQ2JsdWUgPSAwLjYwNzYxNCArICgoKDEuMDE0IC0gMC42MDc2MTQpICog
KDEgLSAwLjYwNzYxNCkpIC8gKDEuMDE0IC0gMC42MDc2MTQpID0KKyAgICAgICAgICAgICAgICAg
ICAgICA9IDAuNjA3NjE0ICsgKCgwLjQwNjM4NiAqIDAuMzkyMzg2KSAvIDAuNDA2Mzg2KSA9IDAu
NjA3NjE0ICsgKDAuMTU5NDYwMTggLyAwLjQwNjM4NikgPSAwLjYwNzYxNCArIDAuMzkyMzg2MDEg
PSAxLjAKKyAgICAgICAgICAgIHJldHVybiAoMC40MiwgMC42MSwgMS4wKQorCisgICAgVGhpcyB2
YWx1ZSBpcyBlcXVpdmFsZW50IHRvICgxMDgsIDE1NywgMjU1KSwgd2hpY2ggaXMgdGhlIGV4cGVj
dGVkIGNvbG9yLgorICAgIFRoaXMgaXMgdGhlIGV4YWN0IGNvbG9yIHZhbHVlLCBvdGhlciBwb3J0
cyBtaWdodCBleHBlcmllbmNlIHNsaWdodCBkaWZmZXJlbmNlcy4KKy0tPgorICAgIDxkaXYgaWQ9
ImRlc3RpbmF0aW9uIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkZXN0aW5hdGlvbi1hbHBoYS1zb2xp
ZCI+PC9kaXY+CisgICAgPGRpdiBpZD0iZGVzdGluYXRpb24tc29saWQtYWxwaGEiPjwvZGl2Pgor
ICAgIDxkaXYgaWQ9ImRlc3RpbmF0aW9uLWFscGhhLWFscGhhIj48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9t
LWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5LWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJh
YmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0Yjc4
NGYxN2U4MmE5MzdlN2U0ZjY0OGIxMWE3NmUxODQxOGI1YTIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxl
LWJsZW5kLW1vZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwh
RE9DVFlQRSBIVE1MPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3Qg
dGhhdCBibGVuZHMgdGhlIHNvdXJjZSBhbmQgdGhlIGJhY2tkcm9wIHdpdGggdGhlIGNvbG9yIGJs
ZW5kIG1vZGUuPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAv
KiBUaGVyZSBhcmUgZXhhY3RseSB0aGUgY29sb3IgdmFsdWVzIHdlIGV4cGVjdC4gU29tZSBwbGF0
Zm9ybXMgbWF5IGhhdmUgc2xpZ2h0IGRpZmZlcmVudAorICAgICAgICAgICBjb2xvciByZXN1bHQu
ICovCisgICAgICAgICNkZXN0aW5hdGlvbiB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2IoOTgsIDMzLCAwKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2Rlc3RpbmF0aW9uLWFscGhhLXNv
bGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxODQsIDE3MiwgMTg0KTsK
KyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgICAgIH0KKyAgICAgICAgI2Rlc3RpbmF0aW9uLXNvbGlkLWFscGhhIHsKKyAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IHJnYigyMDMsIDEwMSwgNDkpOworICAgICAgICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAj
ZGVzdGluYXRpb24tYWxwaGEtYWxwaGEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmdiKDIxMywgMTgyLCAxNzUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8ZGl2IGlkPSJkZXN0aW5hdGlvbiI+PC9kaXY+CisgICAgPGRpdiBpZD0iZGVzdGlu
YXRpb24tYWxwaGEtc29saWQiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImRlc3RpbmF0aW9uLXNvbGlk
LWFscGhhIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkZXN0aW5hdGlvbi1hbHBoYS1hbHBoYSI+PC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRl
cnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0
eS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5v
bnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mY2E2YjE5
ZjY3ZWVkMzM4OTE0NjI0MDkzYTE5MTc4OTc0N2EwODkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1i
bGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbApAQCAtMCwwICsxLDEyOCBAQAorPCFET0NUWVBFIEhU
TUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdCB0aGF0IGJsZW5k
cyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ryb3Agd2l0aCB0aGUgbHVtaW5vc2l0eSBibGVuZCBt
b2RlLjwvdGl0bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQiLCAiMSIpOworICAgICAgICAgICAgd2luZG93LnRl
c3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOwor
ICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAg
ICAgICAgI2Rlc3RpbmF0aW9uIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5
MCUsIDUwJSwgMzAlKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhl
aWdodDogMTAwcHg7CisgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1
cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBsdW1pbm9zaXR5IHNvdXJjZS1hdG9wKSwg
bWl4X2NvbG9yIDAuMSAwLjIgMC40IDEuMCk7CisgICAgICAgIH0KKyAgICAgICAgI2Rlc3RpbmF0
aW9uLWFscGhhLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAl
LCA1MCUsIDMwJSwgMC41KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1p
eCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBsdW1pbm9zaXR5IHNvdXJjZS1hdG9w
KSwgbWl4X2NvbG9yIDAuMiAwLjQgMC44IDEuMCk7CisgICAgICAgIH0KKyAgICAgICAgI2Rlc3Rp
bmF0aW9uLXNvbGlkLWFscGhhIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5
MCUsIDUwJSwgMzAlKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhl
aWdodDogMTAwcHg7CisgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1
cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBsdW1pbm9zaXR5IHNvdXJjZS1hdG9wKSwg
bWl4X2NvbG9yIDAuMiAwLjQgMC44IDAuNSk7CisgICAgICAgIH0KKyAgICAgICAgI2Rlc3RpbmF0
aW9uLWFscGhhLWFscGhhIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAl
LCA1MCUsIDMwJSwgMC41KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1p
eCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBsdW1pbm9zaXR5IHNvdXJjZS1hdG9w
KSwgbWl4X2NvbG9yIDAuMiAwLjQgMC44IDAuNSk7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+Cis8IS0tCisgICAgVGhlIGZvbGxvd2luZyBwcm9vZiBhcHBsaWVzIHRv
IHRoZSBmaXJzdCBjYXNlICgjZGVzdGluYXRpb24pIHdoZXJlIGJvdGggdGhlIGJhY2tkcm9wIGFu
ZCB0aGUKKyAgICBzb3VyY2UgYXJlIHNvbGlkLgorCisgICAgSW4gdGhpcyB0ZXN0IHRoZSBmb2xs
b3dpbmcgY29tYmluYXRpb25zIGFyZSBhbHNvIHRlc3RlZDoKKyAgICAgICAgQmFja2Ryb3Agd2l0
aCAwLjUgYWxwaGEgYmxlbmRlZCB3aXRoIHNvbGlkIHNvdXJjZQorICAgICAgICBTb2xpZCBiYWNr
ZHJvcCBibGVuZGVkIHdpdGggc291cmNlIHdpdGggMC41IGFscGhhCisgICAgICAgIEJhY2tkcm9w
IHdpdGggMC41IGJsZW5kZWQgd2l0aCBzb3VyY2Ugd2l0aCAwLjUgYWxwaGEKKyAgICBUaGUgdW5k
ZXJsYXlpbmcgcHJvb2Ygb2YgdGhlIGFib3ZlIG1lbnRpb25lZCBjYXNlcyBpcyB0aGUgc2FtZTog
dGhlIGNvbG9ycyBhcmUgcHJlbXVsdGlwbGllZAorICAgIGFuZCB0aGVuIGJsZW5kZWQgdG9nZXRo
ZXIuCisKKyAgICBUaGUgZmluYWwgY29sb3Igb2YgI2Rlc3RpbmF0aW9uIGRlcGVuZHMgb24gdGhl
ICJsdW1pbm9zaXR5IiBibGVuZCBtb2RlLCB3aGljaCBpcyBhIG5vbi1zZXBhcmFibGUKKyAgICBi
bGVuZCBtb2RlLiBUaGlzIG1lYW5zIHRoYXQgY29sb3JzIGFyZSBibGVuZGVkIHRvZ2V0aGVyIGFz
IGEgd2hvbGUsIG5vdCBjb21wb25lbnQgYnkgY29tcG9uZW50LgorCisgICAgVGhlIGZvcm11bGEg
Zm9yIHRoaXMgYmxlbmQgbW9kZSBpczoKKyAgICAgICAgQ3IgPSBCKENiLCBDcykgPSBTZXRMdW0o
Q2IsIEx1bShDcykpCisKKyAgICBXaXRoOgorICAgICAgICBDcjogdGhlIHJlc3VsdGluZyBjb2xv
cgorICAgICAgICBDYjogdGhlIGJhY2tkcm9wIGNvbG9yLCB3aGljaCBpcyAjZGVzdGluYXRpb24g
KCJvcmlnaW5hbCBET00gZWxlbWVudCBjb2xvciIpCisgICAgICAgIENzOiB0aGUgc291cmNlIGNv
bG9yLCB3aGljaCBpcyBtaXhfY29sb3IKKyAgICAgICAgTHVtKENzKTogdGhlIGx1bWlub3NpdHkg
b2YgQ3MuIEx1bWlub3NpdHkgZm9yIGNvbG9yIEMgaXMgZ2VuZXJhbGx5IGRlZmluZWQgYnkKKyAg
ICAgICAgICAgTHVtKEMpOiAwLjMgKiBDcmVkICsgMC41OSAqIENncmVlbiArIDAuMTEgKiBDYmx1
ZQorICAgICAgICBTZXRMdW0oQ2IsIEx1bShDcykpOiB0aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHRo
ZSBsdW1pbm9zaXR5LgorCisgICAgVGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgbHVtaW5vc2l0
eSBsIG9uIHRoZSBjb2xvciBDIGlzIGdlbmVyYWxseSBkZWZpbmVkIGJ5OgorCisgICAgICAgIFNl
dEx1bShDLCBsKQorICAgICAgICAgICAgZCA9IGwgLSBMdW0oQykKKyAgICAgICAgICAgIENyZWQg
PSBDcmVkICsgZAorICAgICAgICAgICAgQ2dyZWVuID0gQ2dyZWVuICsgZAorICAgICAgICAgICAg
Q2JsdWUgPSBDYmx1ZSArIGQKKyAgICAgICAgICAgIHJldHVybiBDbGlwQ29sb3IoQykKKworICAg
IEF0IHRoaXMgcG9pbnQgdGhlIGNvbG9yIEMgaGFzIHRvIGJlIGNsaXBwZWQgYmV0d2VlbiBbMC4u
MV0gIGJ5IHRoZSBDbGlwQ29sb3IgZnVuY3Rpb24sIHdoaWNoIGlzCisgICAgZ2VuZXJhbGx5IGRl
ZmluZWQgYnk6CisKKyAgICAgICAgQ2xpcENvbG9yKEMpCisgICAgICAgICAgICBsID0gTHVtKEMp
CisgICAgICAgICAgICBuID0gbWluKENyZWQsIENncmVlbiwgQ2JsdWUpCisgICAgICAgICAgICB4
ID0gbWF4KENyZWQsIENncmVlbiwgQ2JsdWUpCisgICAgICAgICAgICBpZiBuIDwgMC4wCisgICAg
ICAgICAgICAgICAgQ3JlZCA9IGwgKyAoKChDcmVkIC0gbCkgKiBsKSAvIChsIC0gbikpCisgICAg
ICAgICAgICAgICAgQ2dyZWVuID0gbCArICgoKENncmVlbiAtIGwpICogbCkgLyAobCAtIG4pKQor
ICAgICAgICAgICAgICAgIENibHVlID0gbCArICgoKENibHVlIC0gbCkgKiBsKSAvIChsIC0gbikp
CisgICAgICAgICAgICBpZiB4ID4gMS4wCisgICAgICAgICAgICAgICAgQ3JlZCA9IGwgKyAoKChD
cmVkIC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAgICAgICAgQ2dyZWVuID0g
bCArICgoKENncmVlbiAtIGwpICogKDEgLSBsKSkgLyAoeCAtIGwpKQorICAgICAgICAgICAgICAg
IENibHVlID0gbCArICgoKENibHVlIC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAg
ICAgICByZXR1cm4gQworCisgICAgSW4gdGhpcyB0ZXN0IGNhc2U6CisgICAgICAgIEx1bShDYikg
PSAwLjMgKiAwLjkgKyAwLjU5ICogMC41ICsgMC4xMSAqIDAuMworICAgICAgICBMdW0oQ2IpID0g
MC4yNyArIDAuMjk1ICsgMC4wMzMKKyAgICAgICAgTHVtKENiKSA9IDAuNTk4CisKKyAgICAgICAg
THVtKENzKSA9IDAuMyAqIDAuMSArIDAuNTkgKiAwLjIgKyAwLjExICogMC40CisgICAgICAgIEx1
bShDcykgPSAwLjAzICsgMC4xMTggKyAwLjA0NAorICAgICAgICBMdW0oQ3MpID0gMC4xOTIKKwor
ICAgQ3IgPSBTZXRMdW0oQ2IsIDAuMTkyKQorICAgICAgICBkID0gMC4xOTIgLSAwLjU5OAorICAg
ICAgICBkID0gMC40MDYKKyAgICAgICAgQ3JlZCA9IDAuOSAtIDAuNDA2ID0gMC40OTQKKyAgICAg
ICAgQ2dyZWVuID0gMC41IC0gMC40MDYgPSAwLjA5NAorICAgICAgICBDYmx1ZSA9IDAuMyAtIDAu
NDA2ID0gLTAuMTA2CisgICAgICAgIHJldHVybiBDbGlwQ29sb3IoMC40OTQsIDAuMDk0LCAtMC4x
MDYpCisKKyAgICBDbGlwQ29sb3IoMC40OTQsIDAuMDk0LCAtMC4xMDYpCisgICAgICAgIGwgPSAw
LjQ5NCAqIDAuMyArIDAuMDk0ICogMC41OSAtIDAuMTA2ICogMC4xMSA9IDAuMTQ4MiArIDAuMDU1
NDYgLSAwLjAxMTY2ID0gMC4xOTIKKyAgICAgICAgbiA9IG1pbigwLjQ5NCwgMC4wOTQsIC0wLjEw
NikgPSAtMC4xMDYKKyAgICAgICAgeCA9IG1heCgwLjQ5NCwgMC4wOTQsIC0wLjEwNikgPSAwLjQ5
NAorICAgICAgICBuIDwgMC4wCisgICAgICAgICAgICBDcmVkID0gMC4xOTIgKyAoKCgwLjQ5NCAt
IDAuMTkyKSAqIDAuMTkyKSAvICgwLjE5MiArIDAuMTA2KSkgPQorICAgICAgICAgICAgICAgICA9
IDAuMTkyICsgKDAuMzAyICogMC4xOTIpIC8gMC4yOTggPSAwLjE5MiArICgwLjA1Nzk4NCAvIDAu
Mjk4KSA9IDAuMTkyICsgMC4xOTQ1NzcxOCA9IDAuMzg2NTc3MTgKKyAgICAgICAgICAgIENncmVl
biA9IDAuMTkyICsgKCgoMC4wOTQgLSAwLjE5MikgKiAwLjE5MikgLyAoMC4xOTIgKyAwLjEwNikp
ID0KKyAgICAgICAgICAgICAgICAgICA9IDAuMTkyICsgKC0wLjA5OCAqIDAuMTkyKSAvIDAuMjk4
ID0gMC4xOTIgLSAoMC4wMTg4MTYgLyAwLjI5OCkgPSAwLjE5MiAtIDAuMDYzMTQwOTQgPSAwLjEy
ODg1OTA2CisgICAgICAgICAgICBDYmx1ZSA9IDAuMTkyICsgKCgoLTAuMTA2IC0gMC4xOTIpICog
MC4xOTIpIC8gKDAuMTkyICsgMC4xMDYpKSA9CisgICAgICAgICAgICAgICAgICA9IDAuMTkyICsg
KC0wLjI5OCAqIDAuMTkyKSAvIDAuMjk4ID0gMC4xOTIgLSAwLjE5MiA9IDAuMAorICAgICAgICBy
ZXR1cm4gKDAuMzg2NTc3MTgsIDAuMTI4ODU5MDYsIDAuMDApCisKKyAgICBUaGlzIHZhbHVlIGlz
IGVxdWl2YWxlbnQgdG8gKDk4LCAzMywgMCksIHdoaWNoIGlzIHRoZSBleHBlY3RlZCBjb2xvci4K
KyAgICBUaGlzIGlzIHRoZSBleGFjdCBjb2xvciB2YWx1ZSwgb3RoZXIgcG9ydHMgbWlnaHQgZXhw
ZXJpZW5jZSBzbGlnaHQgZGlmZmVyZW5jZXMuCistLT4KKyAgICA8ZGl2IGlkPSJkZXN0aW5hdGlv
biI+PC9kaXY+CisgICAgPGRpdiBpZD0iZGVzdGluYXRpb24tYWxwaGEtc29saWQiPjwvZGl2Pgor
ICAgIDxkaXYgaWQ9ImRlc3RpbmF0aW9uLXNvbGlkLWFscGhhIj48L2Rpdj4KKyAgICA8ZGl2IGlk
PSJkZXN0aW5hdGlvbi1hbHBoYS1hbHBoYSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDk0MmZiODk4OGExYjY1
OGY2NmI0ZDgzMGYwZDI2MTYxYzM1NmQxODcuLjVhYzA3YWNkNDMzOWE5OWIyODJiZTk4Mzg3NmY1
YjJjNGFlY2M0YmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
CkBAIC05NTIsOCArOTUyLDExIEBAIGZhc3QvY2FudmFzL2NhbnZhcy1xdWFkcmF0aWMtc2FtZS1l
bmRwb2ludC5odG1sCiBjc3MzL2ZpbHRlcnMvY29tcG9zaXRlZC1kdXJpbmctdHJhbnNpdGlvbi1s
YXllcnRyZWUuaHRtbAogCiAjIC0tLSBDdXN0b20gRmlsdGVycyAtLS0KLSMgVGhpcyB0ZXN0IGlz
IGN1cnJlbnRseSBza2lwcGVkIG9uIE1hYyBmb3Igc2xpZ2h0IGNvbG9yIGRpZmZlcmVuY2VzLCBw
bGVhc2Ugc2VlIHRoZSByZWxldmFudCBidWc6IGh0dHA6Ly93ZWJraXQub3JnL2IvMTA3NDg3Cisj
IFRoZSBmb2xsb3dpbmcgMyB0ZXN0cyBhcmUgY3VycmVudGx5IHNraXBwZWQgb24gTWFjIGZvciBz
bGlnaHQgY29sb3IgZGlmZmVyZW5jZXMsCisjIHBsZWFzZSBzZWUgdGhlIHJlbGV2YW50IGJ1Zzog
aHR0cDovL3dlYmtpdC5vcmcvYi8xMDc0ODcKIHdlYmtpdC5vcmcvYi8xMDc0ODcgY3NzMy9maWx0
ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLWJsZW5kLWZyYWN0aW9uYWwtZGVzdGluYXRpb24tYWxw
aGEuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEwNzQ4NyBjc3MzL2ZpbHRlcnMvY3VzdG9t
L2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3IuaHRtbCBbIFNraXAg
XQord2Via2l0Lm9yZy9iLzEwNzQ4NyBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXIt
bm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS5odG1sIFsgU2tpcCBdCiAKICMgLS0t
IFRleHQgLS0tCiBmYXN0L2Zvcm1zL3RleHQtY29udHJvbC1pbnRyaW5zaWMtd2lkdGhzLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190084</attachid>
            <date>2013-02-25 10:15:50 -0800</date>
            <delta_ts>2013-02-26 13:53:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106226-20130225101206.patch</filename>
            <type>text/plain</type>
            <size>21659</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNiYzRiMzA4OGE2ZDYw
ZmZhY2ExNjU2NWVmNjc1ZmUxMzdmODgzNi4uMWFkYWE0N2RmOGY0YzU4YzJhY2MyNWNiMDBjOWEz
YzQ2MDhiZDdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTI1ICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSBJbXBsZW1lbnQgY29sb3IgYW5kIGx1bWlub3NpdHkgbm9uLXNlcGFyYWJs
ZSBibGVuZCBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA2MjI2CisKKyAgICAgICAgQWRkZWQgdGhlIGZvbGxvd2luZyBHTFNMIGhlbHBlciBm
dW5jdGlvbnMgdG8gdGhlIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06CisKKyAgICAgICAg
ICAgIC0gTHVtKEMpOiByZXR1cm5zIHRoZSBsdW1pbm9zaXR5IGZvciB0aGUgY29sb3IgQworICAg
ICAgICAgICAgLSBDbGlwQ29sb3IoQyk6IGNsaXBzIGNvbG9yIEMKKyAgICAgICAgICAgIC0gU2V0
THVtKEMsIGwpOiBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNvbG9yIEMKKworICAgICAg
ICBUaGUgYWJvdmUgZnVuY3Rpb25zIGFyZSBiZWluZyB1c2VkIGZvciB0aGUgImNvbG9yIiBhbmQg
Imx1bWlub3NpdHkiIG5vbi1zZXBhcmFibGUKKyAgICAgICAgYmxlbmQgbW9kZXMsIHRoZSByZWxl
dmFudCBzcGVjIGZvciBzdWNoIG1vZGVzIGlzIGF0IFVSTDoKKyAgICAgICAgaHR0cHM6Ly9kdmNz
LnczLm9yZy9oZy9GWFRGL3Jhd2ZpbGUvdGlwL2NvbXBvc2l0aW5nL2luZGV4Lmh0bWwjYmxlbmRp
bmdub25zZXBhcmFibGUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0czogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFy
YWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZmlsdGVycy9j
dXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5Lmh0
bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0
ZWRQcm9ncmFtOjpibGVuZEZ1bmN0aW9uU3RyaW5nKToKKwogMjAxMy0wMi0yNSAgRGltaXRyaSBH
bGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCByMTQzODQw
IGJlY2F1c2UgaXQgY2F1c2VkIGZsYWt5IGNyYXNoZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dy
YW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21G
aWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcAppbmRleCBjYjU1YzVlMjc1NWY3ODFiYmM0YzY2OGJk
N2EyMGYwMTAwM2MyNzdkLi5jNjZhZWE1ZjJiZDM0MzdlY2I4ZTk5MzNmYWUwZmI0YzQzMjZlNTUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKQEAg
LTI5MSw2ICsyOTEsOCBAQCBTdHJpbmcgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6Ymxl
bmRGdW5jdGlvblN0cmluZyhCbGVuZE1vZGUgYmxlbmRNb2RlKQogICAgIC8vIENiOiBpcyB0aGUg
YmFja2Ryb3AgY29sb3IgaW4gY3NzX0JsZW5kQ29sb3IoKSBhbmQgdGhlIGJhY2tkcm9wIGNvbG9y
IGNvbXBvbmVudCBpbiBjc3NfQmxlbmRDb21wb25lbnQoKQogICAgIGNvbnN0IGNoYXIqIGJsZW5k
Q29sb3JFeHByZXNzaW9uID0gInZlYzMoY3NzX0JsZW5kQ29tcG9uZW50KENiLnIsIENzLnIpLCBj
c3NfQmxlbmRDb21wb25lbnQoQ2IuZywgQ3MuZyksIGNzc19CbGVuZENvbXBvbmVudChDYi5iLCBD
cy5iKSkiOwogICAgIGNvbnN0IGNoYXIqIGJsZW5kQ29tcG9uZW50RXhwcmVzc2lvbiA9ICJDbyA9
IDAuMDsiOworICAgIGJvb2wgbmVlZHNMdW1pbm9zaXR5SGVscGVyRnVuY3Rpb25zID0gZmFsc2U7
CisgICAgU3RyaW5nIGJsZW5kRnVuY3Rpb25TdHJpbmc7CiAgICAgc3dpdGNoIChibGVuZE1vZGUp
IHsKICAgICBjYXNlIEJsZW5kTW9kZU5vcm1hbDoKICAgICAgICAgYmxlbmRDb2xvckV4cHJlc3Np
b24gPSAiQ3MiOwpAQCAtNDA1LDE1ICs0MDcsNDUgQEAgU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlk
YXRlZFByb2dyYW06OmJsZW5kRnVuY3Rpb25TdHJpbmcoQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAg
ICAgICAgICAgICAgICBDbyA9IENiICsgKDIuMCAqIENzIC0gMS4wKSAqIChEIC0gQ2IpOwogICAg
ICAgICApOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEJsZW5kTW9kZUh1ZToKLSAgICBjYXNl
IEJsZW5kTW9kZVNhdHVyYXRpb246CiAgICAgY2FzZSBCbGVuZE1vZGVDb2xvcjoKKyAgICAgICAg
bmVlZHNMdW1pbm9zaXR5SGVscGVyRnVuY3Rpb25zID0gdHJ1ZTsKKyAgICAgICAgYmxlbmRDb2xv
ckV4cHJlc3Npb24gPSAiY3NzX1NldEx1bShDcywgY3NzX0x1bShDYikpIjsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBCbGVuZE1vZGVMdW1pbm9zaXR5OgorICAgICAgICBuZWVkc0x1bWlub3Np
dHlIZWxwZXJGdW5jdGlvbnMgPSB0cnVlOworICAgICAgICBibGVuZENvbG9yRXhwcmVzc2lvbiA9
ICJjc3NfU2V0THVtKENiLCBjc3NfTHVtKENzKSkiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJsZW5kTW9kZUh1ZToKKyAgICBjYXNlIEJsZW5kTW9kZVNhdHVyYXRpb246CiAgICAgICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gU3RyaW5nOjpmb3JtYXQoU0hBREVSKAorICAgIGlmIChuZWVkc0x1bWlub3NpdHlIZWxw
ZXJGdW5jdGlvbnMpCisgICAgICAgIGJsZW5kRnVuY3Rpb25TdHJpbmcuYXBwZW5kKFNIQURFUigK
KyAgICAgICAgICAgIG1lZGl1bXAgZmxvYXQgY3NzX0x1bShtZWRpdW1wIHZlYzMgQykKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMC4zICogQy5yICsgMC41OSAqIEMuZyAr
IDAuMTEgKiBDLmI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtZWRpdW1wIHZlYzMgY3Nz
X0NsaXBDb2xvcihtZWRpdW1wIHZlYzMgQykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBtZWRpdW1wIGZsb2F0IEwgPSBjc3NfTHVtKEMpOworICAgICAgICAgICAgICAgIG1lZGl1bXAg
ZmxvYXQgbiA9IG1pbihtaW4oQy5yLCBDLmcpLCBDLmIpOworICAgICAgICAgICAgICAgIG1lZGl1
bXAgZmxvYXQgeCA9IG1heChtYXgoQy5yLCBDLmcpLCBDLmIpOworICAgICAgICAgICAgICAgIGlm
IChuIDwgMC4wKQorICAgICAgICAgICAgICAgICAgICBDID0gTCArICgoKEMgLSBMKSAqIEwpIC8g
KEwgLSBuKSk7CisgICAgICAgICAgICAgICAgaWYgKHggPiAxLjApCisgICAgICAgICAgICAgICAg
ICAgIEMgPSBMICsgKCgoQyAtIEwpICogKDEuMCAtIEwpIC8gKHggLSBMKSkpOworICAgICAgICAg
ICAgICAgIHJldHVybiBDOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWVkaXVtcCB2ZWMz
IGNzc19TZXRMdW0obWVkaXVtcCB2ZWMzIEMsIG1lZGl1bXAgZmxvYXQgbCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBDICs9IGwgLSBjc3NfTHVtKEMpOworICAgICAgICAgICAgICAg
IHJldHVybiBjc3NfQ2xpcENvbG9yKEMpOworICAgICAgICAgICAgfQorICAgICAgICApKTsKKwor
ICAgIGJsZW5kRnVuY3Rpb25TdHJpbmcuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KFNIQURFUigKICAg
ICAgICAgbWVkaXVtcCBmbG9hdCBjc3NfQmxlbmRDb21wb25lbnQobWVkaXVtcCBmbG9hdCBDYiwg
bWVkaXVtcCBmbG9hdCBDcykKICAgICAgICAgewogICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBD
bzsKQEAgLTQyNCw3ICs0NTYsOSBAQCBTdHJpbmcgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3Jh
bTo6YmxlbmRGdW5jdGlvblN0cmluZyhCbGVuZE1vZGUgYmxlbmRNb2RlKQogICAgICAgICB7CiAg
ICAgICAgICAgICByZXR1cm4gJXM7CiAgICAgICAgIH0KLSAgICApLCBibGVuZENvbXBvbmVudEV4
cHJlc3Npb24sIGJsZW5kQ29sb3JFeHByZXNzaW9uKTsKKyAgICApLCBibGVuZENvbXBvbmVudEV4
cHJlc3Npb24sIGJsZW5kQ29sb3JFeHByZXNzaW9uKSk7CisKKyAgICByZXR1cm4gYmxlbmRGdW5j
dGlvblN0cmluZzsKIH0KIAogU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmNv
bXBvc2l0ZUZ1bmN0aW9uU3RyaW5nKENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9y
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGJjYzg5YTZiYWE1ZTVmODVlOWIzOWZjMTQwMGQ1ZmE0MzkwNGI0N2EuLjgyMjY3
NjRjZWU2YmRiM2Y1NzZkMTBlZWMwNjdjNzY5MjU1MzU1NDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxMy0wMi0yNSAgTWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2hlbGFuZ2Vsb0B3ZWJr
aXQub3JnPgorCisgICAgICAgIFtDU1MgU2hhZGVyc10gSW1wbGVtZW50IGNvbG9yIGFuZCBsdW1p
bm9zaXR5IG5vbi1zZXBhcmFibGUgYmxlbmQgbW9kZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjIyNgorCisgICAgICAgIEFkZGVkIHJlbGV2YW50
IHRlc3RzIGZvciB0aGUgImNvbG9yIiBhbmQgImx1bWlub3NpdHkiIG5vbi1zZXBhcmFibGUgYmxl
bmQgbW9kZXMuCisgICAgICAgIFRoZXNlIHRlc3RzIGFyZSBjdXJyZW50bHkgc2tpcHBlZCBvbiBN
YWMgZHVlIHRvIGEgc2xpZ2h0IGNvbG9yIGRpZmZlcmVuY2U7IHBsZWFzZQorICAgICAgICBzZWUg
cmVsZXZhbnQgYnVnOiBodHRwOi8vd2Via2l0Lm9yZy9iLzEwNzQ4Ny4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20v
Y3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9u
c2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9m
aWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlu
b3NpdHktZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3Rv
bS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbDog
QWRkZWQuCisKIDIwMTMtMDItMjUgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW3NvdXBdICJUb28gbWFueSByZWRpcmVjdHMiIGVycm9yIGxvYWRp
bmcgY2hhdCBpbiBwbHVzLmdvb2dsZS5jb20KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xv
ci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20t
ZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDgwOTQ5NGNiZmI3ZjljZDZiN2U0ZjFkMjNhNGM0ZWVjYjg0OWM5YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1u
b25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzYg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxl
PlRlc3QgdGhhdCBibGVuZHMgdGhlIHNvdXJjZSBhbmQgdGhlIGJhY2tkcm9wIHdpdGggdGhlIGNv
bG9yIGJsZW5kIG1vZGUuPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAg
ICAgICAvKiBUaGVzZSBhcmUgZXhhY3RseSB0aGUgY29sb3IgdmFsdWVzIHdlIGV4cGVjdC4gU29t
ZSBwbGF0Zm9ybXMgbWF5IGhhdmUgc2xpZ2h0IGRpZmZlcmVudAorICAgICAgICAgICBjb2xvciBy
ZXN1bHQuICovCisgICAgICAgICNzb2xpZC1zb2xpZCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZ2IoMTA4LCAxNTcsIDI1NSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNhbHBoYS1zb2xp
ZCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTY3LCAxOTIsIDI0Mik7Cisg
ICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgICB9CisgICAgICAgICNzb2xpZC1hbHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZ2IoMTY5LCAxNDIsIDE2Nik7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNhbHBoYS1hbHBoYSB7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA1LCAxOTIsIDIwNCk7CisgICAg
ICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAg
ICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNvbGlkLXNv
bGlkIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJhbHBoYS1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBp
ZD0ic29saWQtYWxwaGEiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImFscGhhLWFscGhhIj48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9j
dXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1sIGIv
TGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJs
ZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MzNzA0MDBlMWI5OWIzZDQ4Nzkw
OTdkNzM4Mjk4MmEzNTBlYWY1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xv
ci5odG1sCkBAIC0wLDAgKzEsMTI5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0IHRoYXQgYmxlbmRzIHRoZSBzb3VyY2UgYW5kIHRo
ZSBiYWNrZHJvcCB3aXRoIHRoZSBjb2xvciBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB3aW5kb3cu
dGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJs
ZWQiLCAiMSIpOworICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJl
bmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+
CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgI3NvbGlkLXNvbGlkIHsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5MCUsIDUwJSwgMzAlKTsKKyAgICAgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAg
ICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1j
b2xvci5mcycpIGNvbG9yIHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDAuMiAwLjQgMC44IDEuMCk7
CisgICAgICAgIH0KKyAgICAgICAgI2FscGhhLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IHJnYmEoOTAlLCA1MCUsIDMwJSwgMC41KTsKKyAgICAgICAgICAgIHdpZHRoOiAx
MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAtd2Via2l0LWZp
bHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIGNv
bG9yIHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDAuMiAwLjQgMC44IDEuMCk7CisgICAgICAgIH0K
KyAgICAgICAgI3NvbGlkLWFscGhhIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJn
Yig5MCUsIDUwJSwgMzAlKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUg
bWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIGNvbG9yIHNvdXJjZS1hdG9wKSwg
bWl4X2NvbG9yIDAuMiAwLjQgMC44IDAuNSk7CisgICAgICAgIH0KKyAgICAgICAgI2FscGhhLWFs
cGhhIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAlLCA1MCUsIDMwJSwg
MC41KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAw
cHg7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4v
cmVzb3VyY2VzL21peC1jb2xvci5mcycpIGNvbG9yIHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDAu
MiAwLjQgMC44IDAuNSk7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8IS0tCisgICAgVGhlIGZvbGxvd2luZyBwcm9vZiBhcHBsaWVzIHRvIHRoZSBmaXJzdCBjYXNl
ICgjc29saWQtc29saWQpIHdoZXJlIGJvdGggdGhlIGJhY2tkcm9wIGFuZCB0aGUKKyAgICBzb3Vy
Y2UgYXJlIHNvbGlkLgorCisgICAgSW4gdGhpcyB0ZXN0IHRoZSBmb2xsb3dpbmcgY29tYmluYXRp
b25zIGFyZSBhbHNvIHRlc3RlZDoKKyAgICAgICAgQmFja2Ryb3Agd2l0aCAwLjUgYWxwaGEgYmxl
bmRlZCB3aXRoIHNvbGlkIHNvdXJjZQorICAgICAgICBTb2xpZCBiYWNrZHJvcCBibGVuZGVkIHdp
dGggc291cmNlIHdpdGggMC41IGFscGhhCisgICAgICAgIEJhY2tkcm9wIHdpdGggMC41IGJsZW5k
ZWQgd2l0aCBzb3VyY2Ugd2l0aCAwLjUgYWxwaGEKKyAgICBUaGUgdW5kZXJsYXlpbmcgcHJvb2Yg
b2YgdGhlIGFib3ZlIG1lbnRpb25lZCBjYXNlcyBpcyB0aGUgc2FtZTogdGhlIGNvbG9ycyBhcmUg
cHJlbXVsdGlwbGllZAorICAgIGFuZCB0aGVuIGJsZW5kZWQgdG9nZXRoZXIuCisKKyAgICBUaGUg
ZmluYWwgY29sb3Igb2YgI3NvbGlkLXNvbGlkIGRlcGVuZHMgb24gdGhlICJjb2xvciIgYmxlbmQg
bW9kZSwgd2hpY2ggaXMgYSBub24tc2VwYXJhYmxlCisgICAgYmxlbmQgbW9kZS4gVGhpcyBtZWFu
cyB0aGF0IGNvbG9ycyBhcmUgYmxlbmRlZCB0b2dldGhlciBhcyBhIHdob2xlLCBub3QgY29tcG9u
ZW50IGJ5IGNvbXBvbmVudC4KKworICAgIFRoZSBmb3JtdWxhIGZvciB0aGlzIGJsZW5kIG1vZGUg
aXM6CisgICAgICAgIENyID0gQihDYiwgQ3MpID0gU2V0THVtKENzLCBMdW0oQ2IpKQorCisgICAg
V2l0aDoKKyAgICAgICAgQ3I6IHRoZSByZXN1bHRpbmcgY29sb3IKKyAgICAgICAgQ2I6IHRoZSBi
YWNrZHJvcCBjb2xvciwgd2hpY2ggaXMgI3NvbGlkLXNvbGlkICgib3JpZ2luYWwgRE9NIGVsZW1l
bnQgY29sb3IiKQorICAgICAgICBDczogdGhlIHNvdXJjZSBjb2xvciwgd2hpY2ggaXMgbWl4X2Nv
bG9yCisgICAgICAgIEx1bShDYik6IHRoZSBsdW1pbm9zaXR5IG9mIENiLiBMdW1pbm9zaXR5IGZv
ciBjb2xvciBDIGlzIGdlbmVyYWxseSBkZWZpbmVkIGJ5CisgICAgICAgICAgIEx1bShDKTogMC4z
ICogQ3JlZCArIDAuNTkgKiBDZ3JlZW4gKyAwLjExICogQ2JsdWUKKyAgICAgICAgU2V0THVtKENz
LCBMdW0oQ2IpKTogdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgbHVtaW5vc2l0eS4KKworICAg
IFRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1bWlub3NpdHkgbCBvbiB0aGUgY29sb3IgQyBp
cyBnZW5lcmFsbHkgZGVmaW5lZCBieToKKworICAgICAgICBTZXRMdW0oQywgbCkKKyAgICAgICAg
ICAgIGQgPSBsIC0gTHVtKEMpCisgICAgICAgICAgICBDcmVkID0gQ3JlZCArIGQKKyAgICAgICAg
ICAgIENncmVlbiA9IENncmVlbiArIGQKKyAgICAgICAgICAgIENibHVlID0gQ2JsdWUgKyBkCisg
ICAgICAgICAgICByZXR1cm4gQ2xpcENvbG9yKEMpCisKKyAgICBBdCB0aGlzIHBvaW50IHRoZSBj
b2xvciBDIGhhcyB0byBiZSBjbGlwcGVkIGJldHdlZW4gWzAuLjFdICBieSB0aGUgQ2xpcENvbG9y
IGZ1bmN0aW9uLCB3aGljaCBpcworICAgIGdlbmVyYWxseSBkZWZpbmVkIGJ5OgorCisgICAgICAg
IENsaXBDb2xvcihDKQorICAgICAgICAgICAgbCA9IEx1bShDKQorICAgICAgICAgICAgbiA9IG1p
bihDcmVkLCBDZ3JlZW4sIENibHVlKQorICAgICAgICAgICAgeCA9IG1heChDcmVkLCBDZ3JlZW4s
IENibHVlKQorICAgICAgICAgICAgaWYgbiA8IDAuMAorICAgICAgICAgICAgICAgIENyZWQgPSBs
ICsgKCgoQ3JlZCAtIGwpICogbCkgLyAobCAtIG4pKQorICAgICAgICAgICAgICAgIENncmVlbiA9
IGwgKyAoKChDZ3JlZW4gLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgICAgICBDYmx1
ZSA9IGwgKyAoKChDYmx1ZSAtIGwpICogbCkgLyAobCAtIG4pKQorICAgICAgICAgICAgaWYgeCA+
IDEuMAorICAgICAgICAgICAgICAgIENyZWQgPSBsICsgKCgoQ3JlZCAtIGwpICogKDEgLSBsKSkg
LyAoeCAtIGwpKQorICAgICAgICAgICAgICAgIENncmVlbiA9IGwgKyAoKChDZ3JlZW4gLSBsKSAq
ICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDYmx1ZSA9IGwgKyAoKChDYmx1
ZSAtIGwpICogKDEgLSBsKSkgLyAoeCAtIGwpKQorICAgICAgICAgICAgcmV0dXJuIEMKKworICAg
IEluIHRoaXMgdGVzdCBjYXNlOgorICAgICAgICBMdW0oQ2IpID0gMC4zICogMC45ICsgMC41OSAq
IDAuNSArIDAuMTEgKiAwLjMKKyAgICAgICAgTHVtKENiKSA9IDAuMjcgKyAwLjI5NSArIDAuMDMz
CisgICAgICAgIEx1bShDYikgPSAwLjU5OAorCisgICAgICAgIEx1bShDcykgPSAwLjMgKiAwLjIg
KyAwLjU5ICogMC40ICsgMC4xMSAqIDAuOAorICAgICAgICBMdW0oQ3MpID0gMC4wNiArIDAuMjM2
ICsgMC4wODgKKyAgICAgICAgTHVtKENzKSA9IDAuMzg0CisKKyAgICAgICAgQ3IgPSBTZXRMdW0o
Q3MsIDAuNTk4KQorICAgICAgICAgICAgZCA9IDAuNTk4IC0gTHVtKENzKQorICAgICAgICAgICAg
ZCA9IDAuNTk4IC0gMC4zODQKKyAgICAgICAgICAgIGQgPSAwLjIxNAorICAgICAgICAgICAgQ3Jl
ZCA9IDAuMiArIDAuMjE0ID0gMC40MTQKKyAgICAgICAgICAgIEdyZWVuID0gMC40ICsgMC4yMTQg
PSAwLjYxNAorICAgICAgICAgICAgQ2JsdWUgPSAwLjggKyAwLjIxNCA9IDEuMDE0CisgICAgICAg
ICAgICByZXR1cm4gQ2xpcENvbG9yKDAuNDE0LCAwLjYxNCwgMS4wMTQpCisKKyAgICAgICAgQ2xp
cENvbG9yKDAuNDE0LCAwLjYxNCwgMS4wMTQpCisgICAgICAgICAgICBsID0gMC4zICogMC40MTQg
KyAwLjU5ICogMC42MTQgKyAwLjExICogMS4xMDE0ID0gMC4xMjQyICsgMC4zNjIyNiArIDAuMTIx
MTU0ID0gMC42MDc2MTQKKyAgICAgICAgICAgIG4gPSBtaW4oMC40MTQsIDAuNjE0LCAxLjAxNCkg
PSAwLjQxNAorICAgICAgICAgICAgeCA9IG1heCgwLjQxNCwgMC42MTQsIDEuMDE0KSA9IDEuMDE0
CisgICAgICAgICAgICB4ID4gMS4wCisgICAgICAgICAgICAgICAgQ3JlZCA9IDAuNjA3NjE0ICsg
KCgoMC40MTQgLSAwLjYwNzYxNCkgKiAoMSAtIDAuNjA3NjE0KSkgLyAoMS4wMTQgLSAwLjYwNzYx
NCkpID0gCisgICAgICAgICAgICAgICAgICAgICA9IDAuNjA3NjE0ICsgKCgtMC4xOTM2MTQgKiAw
LjM5MjM4NikgLyAwLjQwNjM4NikgPSAwLjYwNzYxNCAtICgwLjA3NTk3MTQyIC8gMC40MDYzODYp
ID0gMC42MDc2MTQgLSAwLjE4Njk0Mzk5ID0gMC40MjA2NzAwMQorICAgICAgICAgICAgICAgIENn
cmVlbiA9IDAuNjA3NjE0ICsgKCgoMC42MTQgLSAwLjYwNzYxNCkgKiAoMSAtIDAuNjA3NjE0KSkg
LyAoMS4wMTQgLSAwLjYwNzYxNCkpID0KKyAgICAgICAgICAgICAgICAgICAgICAgPSAwLjYwNzYx
NCArICgoMC4wMDMzODYgKiAwLjM5MjM4NikgLyAwLjQwNjM4NiA9IDAuNjA3NjE0ICsgKDAuMDAx
MzI4NjIgLyAwLjQwNjM4NikgPSAwLjYwNzYxNCArIDAuMDAzMjY5MzUgPSAwLjYxMDg4MzM1Cisg
ICAgICAgICAgICAgICAgQ2JsdWUgPSAwLjYwNzYxNCArICgoKDEuMDE0IC0gMC42MDc2MTQpICog
KDEgLSAwLjYwNzYxNCkpIC8gKDEuMDE0IC0gMC42MDc2MTQpID0KKyAgICAgICAgICAgICAgICAg
ICAgICA9IDAuNjA3NjE0ICsgKCgwLjQwNjM4NiAqIDAuMzkyMzg2KSAvIDAuNDA2Mzg2KSA9IDAu
NjA3NjE0ICsgKDAuMTU5NDYwMTggLyAwLjQwNjM4NikgPSAwLjYwNzYxNCArIDAuMzkyMzg2MDEg
PSAxLjAKKyAgICAgICAgICAgIHJldHVybiAoMC40MiwgMC42MSwgMS4wKQorCisgICAgVGhpcyB2
YWx1ZSBpcyBlcXVpdmFsZW50IHRvICgxMDgsIDE1NywgMjU1KSwgd2hpY2ggaXMgdGhlIGV4cGVj
dGVkIGNvbG9yLgorICAgIFRoaXMgaXMgdGhlIGV4YWN0IGNvbG9yIHZhbHVlLCBvdGhlciBwb3J0
cyBtaWdodCBleHBlcmllbmNlIHNsaWdodCBkaWZmZXJlbmNlcy4KKy0tPgorICAgIDxkaXYgaWQ9
InNvbGlkLXNvbGlkIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJhbHBoYS1zb2xpZCI+PC9kaXY+Cisg
ICAgPGRpdiBpZD0ic29saWQtYWxwaGEiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImFscGhhLWFscGhh
Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1p
bm9zaXR5LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1
c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgxZDk5ZDA4MmFiYzRkMTg5MWRlYWRlZmEyNmY2MzIxZDRlOTQ4NjkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3Rv
bS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWwgbGFuZz0iZW4iPgorPGhl
YWQ+CisgICAgPHRpdGxlPlRlc3QgdGhhdCBibGVuZHMgdGhlIHNvdXJjZSBhbmQgdGhlIGJhY2tk
cm9wIHdpdGggdGhlIGNvbG9yIGJsZW5kIG1vZGUuPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiPgorICAgICAgICAvKiBUaGVyZSBhcmUgZXhhY3RseSB0aGUgY29sb3IgdmFsdWVz
IHdlIGV4cGVjdC4gU29tZSBwbGF0Zm9ybXMgbWF5IGhhdmUgc2xpZ2h0IGRpZmZlcmVudAorICAg
ICAgICAgICBjb2xvciByZXN1bHQuICovCisgICAgICAgICNzb2xpZC1zb2xpZCB7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTgsIDMzLCAwKTsKKyAgICAgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAg
I2FscGhhLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxODQsIDE3
MiwgMTg0KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDog
MTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI3NvbGlkLWFscGhhIHsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHJnYigyMDMsIDEwMSwgNDkpOworICAgICAgICAgICAgd2lkdGg6IDEw
MHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjYWxw
aGEtYWxwaGEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxMywgMTgyLCAx
NzUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlk
PSJzb2xpZC1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBpZD0iYWxwaGEtc29saWQiPjwvZGl2Pgor
ICAgIDxkaXYgaWQ9InNvbGlkLWFscGhhIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJhbHBoYS1hbHBo
YSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVt
aW5vc2l0eS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmls
dGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZTk3YzAwZmQ4NTg3N2E2MWFiNGJiMjQ2ODY4YjBmY2ZkZTc2M2Y3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFy
YWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbApAQCAtMCwwICsxLDEyOCBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdCB0aGF0
IGJsZW5kcyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ryb3Agd2l0aCB0aGUgbHVtaW5vc2l0eSBi
bGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVu
Y2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQiLCAiMSIpOworICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAi
MSIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KKyAgICAgICAgI3NvbGlkLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IHJnYig5MCUsIDUwJSwgMzAlKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5v
bmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIGx1bWlub3NpdHkgc291cmNl
LWF0b3ApLCBtaXhfY29sb3IgMC4xIDAuMiAwLjQgMS4wKTsKKyAgICAgICAgfQorICAgICAgICAj
YWxwaGEtc29saWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MCUsIDUw
JSwgMzAlLCAwLjUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSBtaXgo
dXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbHVtaW5vc2l0eSBzb3VyY2UtYXRvcCks
IG1peF9jb2xvciAwLjIgMC40IDAuOCAxLjApOworICAgICAgICB9CisgICAgICAgICNzb2xpZC1h
bHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTAlLCA1MCUsIDMwJSk7
CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1cmwoJy4uL3Jlc291
cmNlcy9taXgtY29sb3IuZnMnKSBsdW1pbm9zaXR5IHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDAu
MiAwLjQgMC44IDAuNSk7CisgICAgICAgIH0KKyAgICAgICAgI2FscGhhLWFscGhhIHsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAlLCA1MCUsIDMwJSwgMC41KTsKKyAgICAg
ICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAg
ICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21p
eC1jb2xvci5mcycpIGx1bWlub3NpdHkgc291cmNlLWF0b3ApLCBtaXhfY29sb3IgMC4yIDAuNCAw
LjggMC41KTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzwhLS0K
KyAgICBUaGUgZm9sbG93aW5nIHByb29mIGFwcGxpZXMgdG8gdGhlIGZpcnN0IGNhc2UgKCNzb2xp
ZC1zb2xpZCkgd2hlcmUgYm90aCB0aGUgYmFja2Ryb3AgYW5kIHRoZQorICAgIHNvdXJjZSBhcmUg
c29saWQuCisKKyAgICBJbiB0aGlzIHRlc3QgdGhlIGZvbGxvd2luZyBjb21iaW5hdGlvbnMgYXJl
IGFsc28gdGVzdGVkOgorICAgICAgICBCYWNrZHJvcCB3aXRoIDAuNSBhbHBoYSBibGVuZGVkIHdp
dGggc29saWQgc291cmNlCisgICAgICAgIFNvbGlkIGJhY2tkcm9wIGJsZW5kZWQgd2l0aCBzb3Vy
Y2Ugd2l0aCAwLjUgYWxwaGEKKyAgICAgICAgQmFja2Ryb3Agd2l0aCAwLjUgYmxlbmRlZCB3aXRo
IHNvdXJjZSB3aXRoIDAuNSBhbHBoYQorICAgIFRoZSB1bmRlcmxheWluZyBwcm9vZiBvZiB0aGUg
YWJvdmUgbWVudGlvbmVkIGNhc2VzIGlzIHRoZSBzYW1lOiB0aGUgY29sb3JzIGFyZSBwcmVtdWx0
aXBsaWVkCisgICAgYW5kIHRoZW4gYmxlbmRlZCB0b2dldGhlci4KKworICAgIFRoZSBmaW5hbCBj
b2xvciBvZiAjc29saWQtc29saWQgZGVwZW5kcyBvbiB0aGUgImx1bWlub3NpdHkiIGJsZW5kIG1v
ZGUsIHdoaWNoIGlzIGEgbm9uLXNlcGFyYWJsZQorICAgIGJsZW5kIG1vZGUuIFRoaXMgbWVhbnMg
dGhhdCBjb2xvcnMgYXJlIGJsZW5kZWQgdG9nZXRoZXIgYXMgYSB3aG9sZSwgbm90IGNvbXBvbmVu
dCBieSBjb21wb25lbnQuCisKKyAgICBUaGUgZm9ybXVsYSBmb3IgdGhpcyBibGVuZCBtb2RlIGlz
OgorICAgICAgICBDciA9IEIoQ2IsIENzKSA9IFNldEx1bShDYiwgTHVtKENzKSkKKworICAgIFdp
dGg6CisgICAgICAgIENyOiB0aGUgcmVzdWx0aW5nIGNvbG9yCisgICAgICAgIENiOiB0aGUgYmFj
a2Ryb3AgY29sb3IsIHdoaWNoIGlzICNzb2xpZC1zb2xpZCAoIm9yaWdpbmFsIERPTSBlbGVtZW50
IGNvbG9yIikKKyAgICAgICAgQ3M6IHRoZSBzb3VyY2UgY29sb3IsIHdoaWNoIGlzIG1peF9jb2xv
cgorICAgICAgICBMdW0oQ3MpOiB0aGUgbHVtaW5vc2l0eSBvZiBDcy4gTHVtaW5vc2l0eSBmb3Ig
Y29sb3IgQyBpcyBnZW5lcmFsbHkgZGVmaW5lZCBieQorICAgICAgICAgICBMdW0oQyk6IDAuMyAq
IENyZWQgKyAwLjU5ICogQ2dyZWVuICsgMC4xMSAqIENibHVlCisgICAgICAgIFNldEx1bShDYiwg
THVtKENzKSk6IHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1bWlub3NpdHkuCisKKyAgICBU
aGUgZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNvbG9yIEMgaXMg
Z2VuZXJhbGx5IGRlZmluZWQgYnk6CisKKyAgICAgICAgU2V0THVtKEMsIGwpCisgICAgICAgICAg
ICBkID0gbCAtIEx1bShDKQorICAgICAgICAgICAgQ3JlZCA9IENyZWQgKyBkCisgICAgICAgICAg
ICBDZ3JlZW4gPSBDZ3JlZW4gKyBkCisgICAgICAgICAgICBDYmx1ZSA9IENibHVlICsgZAorICAg
ICAgICAgICAgcmV0dXJuIENsaXBDb2xvcihDKQorCisgICAgQXQgdGhpcyBwb2ludCB0aGUgY29s
b3IgQyBoYXMgdG8gYmUgY2xpcHBlZCBiZXR3ZWVuIFswLi4xXSAgYnkgdGhlIENsaXBDb2xvciBm
dW5jdGlvbiwgd2hpY2ggaXMKKyAgICBnZW5lcmFsbHkgZGVmaW5lZCBieToKKworICAgICAgICBD
bGlwQ29sb3IoQykKKyAgICAgICAgICAgIGwgPSBMdW0oQykKKyAgICAgICAgICAgIG4gPSBtaW4o
Q3JlZCwgQ2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIHggPSBtYXgoQ3JlZCwgQ2dyZWVuLCBD
Ymx1ZSkKKyAgICAgICAgICAgIGlmIG4gPCAwLjAKKyAgICAgICAgICAgICAgICBDcmVkID0gbCAr
ICgoKENyZWQgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgICAgICBDZ3JlZW4gPSBs
ICsgKCgoQ2dyZWVuIC0gbCkgKiBsKSAvIChsIC0gbikpCisgICAgICAgICAgICAgICAgQ2JsdWUg
PSBsICsgKCgoQ2JsdWUgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgIGlmIHggPiAx
LjAKKyAgICAgICAgICAgICAgICBDcmVkID0gbCArICgoKENyZWQgLSBsKSAqICgxIC0gbCkpIC8g
KHggLSBsKSkKKyAgICAgICAgICAgICAgICBDZ3JlZW4gPSBsICsgKCgoQ2dyZWVuIC0gbCkgKiAo
MSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAgICAgICAgQ2JsdWUgPSBsICsgKCgoQ2JsdWUg
LSBsKSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgIHJldHVybiBDCisKKyAgICBJ
biB0aGlzIHRlc3QgY2FzZToKKyAgICAgICAgTHVtKENiKSA9IDAuMyAqIDAuOSArIDAuNTkgKiAw
LjUgKyAwLjExICogMC4zCisgICAgICAgIEx1bShDYikgPSAwLjI3ICsgMC4yOTUgKyAwLjAzMwor
ICAgICAgICBMdW0oQ2IpID0gMC41OTgKKworICAgICAgICBMdW0oQ3MpID0gMC4zICogMC4xICsg
MC41OSAqIDAuMiArIDAuMTEgKiAwLjQKKyAgICAgICAgTHVtKENzKSA9IDAuMDMgKyAwLjExOCAr
IDAuMDQ0CisgICAgICAgIEx1bShDcykgPSAwLjE5MgorCisgICBDciA9IFNldEx1bShDYiwgMC4x
OTIpCisgICAgICAgIGQgPSAwLjE5MiAtIDAuNTk4CisgICAgICAgIGQgPSAwLjQwNgorICAgICAg
ICBDcmVkID0gMC45IC0gMC40MDYgPSAwLjQ5NAorICAgICAgICBDZ3JlZW4gPSAwLjUgLSAwLjQw
NiA9IDAuMDk0CisgICAgICAgIENibHVlID0gMC4zIC0gMC40MDYgPSAtMC4xMDYKKyAgICAgICAg
cmV0dXJuIENsaXBDb2xvcigwLjQ5NCwgMC4wOTQsIC0wLjEwNikKKworICAgIENsaXBDb2xvcigw
LjQ5NCwgMC4wOTQsIC0wLjEwNikKKyAgICAgICAgbCA9IDAuNDk0ICogMC4zICsgMC4wOTQgKiAw
LjU5IC0gMC4xMDYgKiAwLjExID0gMC4xNDgyICsgMC4wNTU0NiAtIDAuMDExNjYgPSAwLjE5Mgor
ICAgICAgICBuID0gbWluKDAuNDk0LCAwLjA5NCwgLTAuMTA2KSA9IC0wLjEwNgorICAgICAgICB4
ID0gbWF4KDAuNDk0LCAwLjA5NCwgLTAuMTA2KSA9IDAuNDk0CisgICAgICAgIG4gPCAwLjAKKyAg
ICAgICAgICAgIENyZWQgPSAwLjE5MiArICgoKDAuNDk0IC0gMC4xOTIpICogMC4xOTIpIC8gKDAu
MTkyICsgMC4xMDYpKSA9CisgICAgICAgICAgICAgICAgID0gMC4xOTIgKyAoMC4zMDIgKiAwLjE5
MikgLyAwLjI5OCA9IDAuMTkyICsgKDAuMDU3OTg0IC8gMC4yOTgpID0gMC4xOTIgKyAwLjE5NDU3
NzE4ID0gMC4zODY1NzcxOAorICAgICAgICAgICAgQ2dyZWVuID0gMC4xOTIgKyAoKCgwLjA5NCAt
IDAuMTkyKSAqIDAuMTkyKSAvICgwLjE5MiArIDAuMTA2KSkgPQorICAgICAgICAgICAgICAgICAg
ID0gMC4xOTIgKyAoLTAuMDk4ICogMC4xOTIpIC8gMC4yOTggPSAwLjE5MiAtICgwLjAxODgxNiAv
IDAuMjk4KSA9IDAuMTkyIC0gMC4wNjMxNDA5NCA9IDAuMTI4ODU5MDYKKyAgICAgICAgICAgIENi
bHVlID0gMC4xOTIgKyAoKCgtMC4xMDYgLSAwLjE5MikgKiAwLjE5MikgLyAoMC4xOTIgKyAwLjEw
NikpID0KKyAgICAgICAgICAgICAgICAgID0gMC4xOTIgKyAoLTAuMjk4ICogMC4xOTIpIC8gMC4y
OTggPSAwLjE5MiAtIDAuMTkyID0gMC4wCisgICAgICAgIHJldHVybiAoMC4zODY1NzcxOCwgMC4x
Mjg4NTkwNiwgMC4wMCkKKworICAgIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0byAoOTgsIDMz
LCAwKSwgd2hpY2ggaXMgdGhlIGV4cGVjdGVkIGNvbG9yLgorICAgIFRoaXMgaXMgdGhlIGV4YWN0
IGNvbG9yIHZhbHVlLCBvdGhlciBwb3J0cyBtaWdodCBleHBlcmllbmNlIHNsaWdodCBkaWZmZXJl
bmNlcy4KKy0tPgorICAgIDxkaXYgaWQ9InNvbGlkLXNvbGlkIj48L2Rpdj4KKyAgICA8ZGl2IGlk
PSJhbHBoYS1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBpZD0ic29saWQtYWxwaGEiPjwvZGl2Pgor
ICAgIDxkaXYgaWQ9ImFscGhhLWFscGhhIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNWZmOTJmN2YwMzQzODIy
NTdlOWI4YTU2MGZlNWI0OTgxNGMyNTQzYS4uOTdjYWY4YzQ0YzQ3MzIwNDhkM2VjN2U2MzZhM2Uy
OThmZTUyNDIxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTk0OSw4ICs5NDksMTEgQEAgZmFzdC9jYW52YXMvY2FudmFzLXF1YWRyYXRpYy1zYW1lLWVu
ZHBvaW50Lmh0bWwKIGNzczMvZmlsdGVycy9jb21wb3NpdGVkLWR1cmluZy10cmFuc2l0aW9uLWxh
eWVydHJlZS5odG1sCiAKICMgLS0tIEN1c3RvbSBGaWx0ZXJzIC0tLQotIyBUaGlzIHRlc3QgaXMg
Y3VycmVudGx5IHNraXBwZWQgb24gTWFjIGZvciBzbGlnaHQgY29sb3IgZGlmZmVyZW5jZXMsIHBs
ZWFzZSBzZWUgdGhlIHJlbGV2YW50IGJ1ZzogaHR0cDovL3dlYmtpdC5vcmcvYi8xMDc0ODcKKyMg
VGhlIGZvbGxvd2luZyAzIHRlc3RzIGFyZSBjdXJyZW50bHkgc2tpcHBlZCBvbiBNYWMgZm9yIHNs
aWdodCBjb2xvciBkaWZmZXJlbmNlcywKKyMgcGxlYXNlIHNlZSB0aGUgcmVsZXZhbnQgYnVnOiBo
dHRwOi8vd2Via2l0Lm9yZy9iLzEwNzQ4Nwogd2Via2l0Lm9yZy9iLzEwNzQ4NyBjc3MzL2ZpbHRl
cnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtZnJhY3Rpb25hbC1kZXN0aW5hdGlvbi1hbHBo
YS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTA3NDg3IGNzczMvZmlsdGVycy9jdXN0b20v
Y3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1sIFsgU2tpcCBd
Cit3ZWJraXQub3JnL2IvMTA3NDg3IGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1u
b25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5Lmh0bWwgWyBTa2lwIF0KIAogIyAtLS0g
VGV4dCAtLS0KIGZhc3QvZm9ybXMvdGV4dC1jb250cm9sLWludHJpbnNpYy13aWR0aHMuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190355</attachid>
            <date>2013-02-26 13:53:41 -0800</date>
            <delta_ts>2013-02-26 13:56:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106226-20130226134955.patch</filename>
            <type>text/plain</type>
            <size>21668</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU2Mjg0OTFhODJlZjQx
MDBjMGJlZGE3ZGJjNjhhZWRhZDQzYWU3MC4uYTUzYTc3OWMxYzRmNWU3NjM2YTNkYTYwOTY2ZjFj
ZDg3NzlmZmI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTI1ICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSBJbXBsZW1lbnQgY29sb3IgYW5kIGx1bWlub3NpdHkgbm9uLXNlcGFyYWJs
ZSBibGVuZCBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA2MjI2CisKKyAgICAgICAgQWRkZWQgdGhlIGZvbGxvd2luZyBHTFNMIGhlbHBlciBm
dW5jdGlvbnMgdG8gdGhlIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06CisKKyAgICAgICAg
ICAgIC0gY3NzX0x1bShDKTogcmV0dXJucyB0aGUgbHVtaW5vc2l0eSBmb3IgdGhlIGNvbG9yIEMK
KyAgICAgICAgICAgIC0gY3NzX0NsaXBDb2xvcihDKTogY2xpcHMgY29sb3IgQworICAgICAgICAg
ICAgLSBjc3NfU2V0THVtKEMsIGwpOiBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNvbG9y
IEMKKworICAgICAgICBUaGUgYWJvdmUgZnVuY3Rpb25zIGFyZSBiZWluZyB1c2VkIGZvciB0aGUg
ImNvbG9yIiBhbmQgImx1bWlub3NpdHkiIG5vbi1zZXBhcmFibGUKKyAgICAgICAgYmxlbmQgbW9k
ZXMsIHRoZSByZWxldmFudCBzcGVjIGZvciBzdWNoIG1vZGVzIGlzIGF0IFVSTDoKKyAgICAgICAg
aHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9GWFRGL3Jhd2ZpbGUvdGlwL2NvbXBvc2l0aW5nL2luZGV4
Lmh0bWwjYmxlbmRpbmdub25zZXBhcmFibGUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0czogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmls
dGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwKKyAgICAgICAgICAgICAgIGNz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1s
dW1pbm9zaXR5Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21G
aWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpibGVuZEZ1bmN0aW9uU3RyaW5nKToKKwogMjAxMy0wMi0y
NiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMTQzOTg2KTogZmFzdC9maWxlcy9yZXZva2UtYmxvYi11cmwuaHRtbCBhc3NlcnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZp
bHRlclZhbGlkYXRlZFByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcAppbmRleCBjYjU1YzVl
Mjc1NWY3ODFiYmM0YzY2OGJkN2EyMGYwMTAwM2MyNzdkLi41OGViZTM0ZDk2ZGY2NDUwNmEwZDk0
NGFlY2NjNGI4Mjk2NjdjNzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbS5jcHAKQEAgLTI5MSw2ICsyOTEsOCBAQCBTdHJpbmcgQ3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyhCbGVuZE1vZGUgYmxlbmRNb2RlKQog
ICAgIC8vIENiOiBpcyB0aGUgYmFja2Ryb3AgY29sb3IgaW4gY3NzX0JsZW5kQ29sb3IoKSBhbmQg
dGhlIGJhY2tkcm9wIGNvbG9yIGNvbXBvbmVudCBpbiBjc3NfQmxlbmRDb21wb25lbnQoKQogICAg
IGNvbnN0IGNoYXIqIGJsZW5kQ29sb3JFeHByZXNzaW9uID0gInZlYzMoY3NzX0JsZW5kQ29tcG9u
ZW50KENiLnIsIENzLnIpLCBjc3NfQmxlbmRDb21wb25lbnQoQ2IuZywgQ3MuZyksIGNzc19CbGVu
ZENvbXBvbmVudChDYi5iLCBDcy5iKSkiOwogICAgIGNvbnN0IGNoYXIqIGJsZW5kQ29tcG9uZW50
RXhwcmVzc2lvbiA9ICJDbyA9IDAuMDsiOworICAgIGJvb2wgbmVlZHNMdW1pbm9zaXR5SGVscGVy
RnVuY3Rpb25zID0gZmFsc2U7CisgICAgU3RyaW5nIGJsZW5kRnVuY3Rpb25TdHJpbmc7CiAgICAg
c3dpdGNoIChibGVuZE1vZGUpIHsKICAgICBjYXNlIEJsZW5kTW9kZU5vcm1hbDoKICAgICAgICAg
YmxlbmRDb2xvckV4cHJlc3Npb24gPSAiQ3MiOwpAQCAtNDA1LDE1ICs0MDcsNDYgQEAgU3RyaW5n
IEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmJsZW5kRnVuY3Rpb25TdHJpbmcoQmxlbmRN
b2RlIGJsZW5kTW9kZSkKICAgICAgICAgICAgICAgICBDbyA9IENiICsgKDIuMCAqIENzIC0gMS4w
KSAqIChEIC0gQ2IpOwogICAgICAgICApOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEJsZW5k
TW9kZUh1ZToKLSAgICBjYXNlIEJsZW5kTW9kZVNhdHVyYXRpb246CiAgICAgY2FzZSBCbGVuZE1v
ZGVDb2xvcjoKKyAgICAgICAgbmVlZHNMdW1pbm9zaXR5SGVscGVyRnVuY3Rpb25zID0gdHJ1ZTsK
KyAgICAgICAgYmxlbmRDb2xvckV4cHJlc3Npb24gPSAiY3NzX1NldEx1bShDcywgY3NzX0x1bShD
YikpIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVMdW1pbm9zaXR5OgorICAg
ICAgICBuZWVkc0x1bWlub3NpdHlIZWxwZXJGdW5jdGlvbnMgPSB0cnVlOworICAgICAgICBibGVu
ZENvbG9yRXhwcmVzc2lvbiA9ICJjc3NfU2V0THVtKENiLCBjc3NfTHVtKENzKSkiOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUh1ZToKKyAgICBjYXNlIEJsZW5kTW9kZVNhdHVy
YXRpb246CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoU0hBREVSKAorICAgIGlmIChu
ZWVkc0x1bWlub3NpdHlIZWxwZXJGdW5jdGlvbnMpIHsKKyAgICAgICAgYmxlbmRGdW5jdGlvblN0
cmluZy5hcHBlbmQoU0hBREVSKAorICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBjc3NfTHVtKG1l
ZGl1bXAgdmVjMyBDKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiAwLjMg
KiBDLnIgKyAwLjU5ICogQy5nICsgMC4xMSAqIEMuYjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIG1lZGl1bXAgdmVjMyBjc3NfQ2xpcENvbG9yKG1lZGl1bXAgdmVjMyBDKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIG1lZGl1bXAgZmxvYXQgTCA9IGNzc19MdW0oQyk7CisgICAg
ICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBuID0gbWluKG1pbihDLnIsIEMuZyksIEMuYik7Cisg
ICAgICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCB4ID0gbWF4KG1heChDLnIsIEMuZyksIEMuYik7
CisgICAgICAgICAgICAgICAgaWYgKG4gPCAwLjApCisgICAgICAgICAgICAgICAgICAgIEMgPSBM
ICsgKCgoQyAtIEwpICogTCkgLyAoTCAtIG4pKTsKKyAgICAgICAgICAgICAgICBpZiAoeCA+IDEu
MCkKKyAgICAgICAgICAgICAgICAgICAgQyA9IEwgKyAoKChDIC0gTCkgKiAoMS4wIC0gTCkgLyAo
eCAtIEwpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEM7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBtZWRpdW1wIHZlYzMgY3NzX1NldEx1bShtZWRpdW1wIHZlYzMgQywgbWVkaXVtcCBm
bG9hdCBsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEMgKz0gbCAtIGNzc19MdW0o
Qyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc19DbGlwQ29sb3IoQyk7CisgICAgICAgICAg
ICB9CisgICAgICAgICkpOworICAgIH0KKworICAgIGJsZW5kRnVuY3Rpb25TdHJpbmcuYXBwZW5k
KFN0cmluZzo6Zm9ybWF0KFNIQURFUigKICAgICAgICAgbWVkaXVtcCBmbG9hdCBjc3NfQmxlbmRD
b21wb25lbnQobWVkaXVtcCBmbG9hdCBDYiwgbWVkaXVtcCBmbG9hdCBDcykKICAgICAgICAgewog
ICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBDbzsKQEAgLTQyNCw3ICs0NTcsOSBAQCBTdHJpbmcg
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyhCbGVuZE1v
ZGUgYmxlbmRNb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gJXM7CiAgICAgICAg
IH0KLSAgICApLCBibGVuZENvbXBvbmVudEV4cHJlc3Npb24sIGJsZW5kQ29sb3JFeHByZXNzaW9u
KTsKKyAgICApLCBibGVuZENvbXBvbmVudEV4cHJlc3Npb24sIGJsZW5kQ29sb3JFeHByZXNzaW9u
KSk7CisKKyAgICByZXR1cm4gYmxlbmRGdW5jdGlvblN0cmluZzsKIH0KIAogU3RyaW5nIEN1c3Rv
bUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmNvbXBvc2l0ZUZ1bmN0aW9uU3RyaW5nKENvbXBvc2l0
ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY2YWE0YTQ2OGI0ZTJiN2Y1YzBi
Y2EyNWIwY2MwZTRmMmM0YTgzYmUuLmY1ZTI1OTc5NDU3MDYyZDA0OGY0NTEyYWU5MWJlZWIxNGZi
OGRhOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMi0yNSAgTWljaGVsYW5nZWxvIERl
IFNpbW9uZSAgPG1pY2hlbGFuZ2Vsb0B3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgU2hhZGVy
c10gSW1wbGVtZW50IGNvbG9yIGFuZCBsdW1pbm9zaXR5IG5vbi1zZXBhcmFibGUgYmxlbmQgbW9k
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjIy
NgorCisgICAgICAgIEFkZGVkIHJlbGV2YW50IHRlc3RzIGZvciB0aGUgImNvbG9yIiBhbmQgImx1
bWlub3NpdHkiIG5vbi1zZXBhcmFibGUgYmxlbmQgbW9kZXMuCisgICAgICAgIFRoZXNlIHRlc3Rz
IGFyZSBjdXJyZW50bHkgc2tpcHBlZCBvbiBNYWMgZHVlIHRvIGEgc2xpZ2h0IGNvbG9yIGRpZmZl
cmVuY2U7IHBsZWFzZQorICAgICAgICBzZWUgcmVsZXZhbnQgYnVnOiBodHRwOi8vd2Via2l0Lm9y
Zy9iLzEwNzQ4Ny4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxl
bmQtbW9kZS1jb2xvci1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRl
cnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3IuaHRt
bDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5v
bnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHktZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1i
bGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMjYgIFN0ZXBoZW4g
Q2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE5l
dyBiYXNlbGluZXMgZm9yIGNzczMtbW9kc2VsLTE1YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2Rl
LWNvbG9yLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1
c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3ItZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lOTYzYTYxNzk3NGEzYWFmMzIzYjIyNmZmMDNiZDdkMTczNDkyMmVhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmls
dGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSwzNiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
dGl0bGU+VGVzdCB0aGF0IGJsZW5kcyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ryb3Agd2l0aCB0
aGUgY29sb3IgYmxlbmQgbW9kZS48L3RpdGxlPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
CisgICAgICAgIC8qIFRoZXNlIGFyZSBleGFjdGx5IHRoZSBjb2xvciB2YWx1ZXMgd2UgZXhwZWN0
LiBTb21lIHBsYXRmb3JtcyBtYXkgaGF2ZSBzbGlnaHRseSBkaWZmZXJlbnQKKyAgICAgICAgICAg
Y29sb3IgcmVzdWx0LiAqLworICAgICAgICAjc29saWQtc29saWQgeworICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiKDEwOCwgMTU3LCAyNTUpOworICAgICAgICAgICAgd2lkdGg6IDEw
MHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjYWxw
aGEtc29saWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE2NywgMTkyLCAy
NDIpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgfQorICAgICAgICAjc29saWQtYWxwaGEgeworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiKDE2OSwgMTQyLCAxNjYpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4
OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjYWxwaGEt
YWxwaGEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNSwgMTkyLCAyMDQp
OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJz
b2xpZC1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBpZD0iYWxwaGEtc29saWQiPjwvZGl2PgorICAg
IDxkaXYgaWQ9InNvbGlkLWFscGhhIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJhbHBoYS1hbHBoYSI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Zp
bHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3Iu
aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25z
ZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzcwNDAwZTFiOTli
M2Q0ODc5MDk3ZDczODI5ODJhMzUwZWFmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1v
ZGUtY29sb3IuaHRtbApAQCAtMCwwICsxLDEyOSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdCB0aGF0IGJsZW5kcyB0aGUgc291cmNl
IGFuZCB0aGUgYmFja2Ryb3Agd2l0aCB0aGUgY29sb3IgYmxlbmQgbW9kZS48L3RpdGxlPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NDdXN0b21GaWx0
ZXJFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRl
UHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICNzb2xpZC1zb2xp
ZCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTAlLCA1MCUsIDMwJSk7Cisg
ICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1cmwoJy4uL3Jlc291cmNl
cy9taXgtY29sb3IuZnMnKSBjb2xvciBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjIgMC40IDAu
OCAxLjApOworICAgICAgICB9CisgICAgICAgICNhbHBoYS1zb2xpZCB7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDkwJSwgNTAlLCAzMCUsIDAuNSk7CisgICAgICAgICAgICB3
aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgLXdl
YmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3Iu
ZnMnKSBjb2xvciBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjIgMC40IDAuOCAxLjApOworICAg
ICAgICB9CisgICAgICAgICNzb2xpZC1hbHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZ2IoOTAlLCA1MCUsIDMwJSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3Rv
bShub25lIG1peCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBjb2xvciBzb3VyY2Ut
YXRvcCksIG1peF9jb2xvciAwLjIgMC40IDAuOCAwLjUpOworICAgICAgICB9CisgICAgICAgICNh
bHBoYS1hbHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDkwJSwgNTAl
LCAzMCUsIDAuNSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1
cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBjb2xvciBzb3VyY2UtYXRvcCksIG1peF9j
b2xvciAwLjIgMC40IDAuOCAwLjUpOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPCEtLQorICAgIFRoZSBmb2xsb3dpbmcgcHJvb2YgYXBwbGllcyB0byB0aGUgZmly
c3QgY2FzZSAoI3NvbGlkLXNvbGlkKSB3aGVyZSBib3RoIHRoZSBiYWNrZHJvcCBhbmQgdGhlCisg
ICAgc291cmNlIGFyZSBzb2xpZC4KKworICAgIEluIHRoaXMgdGVzdCB0aGUgZm9sbG93aW5nIGNv
bWJpbmF0aW9ucyBhcmUgYWxzbyB0ZXN0ZWQ6CisgICAgICAgIEJhY2tkcm9wIHdpdGggMC41IGFs
cGhhIGJsZW5kZWQgd2l0aCBzb2xpZCBzb3VyY2UKKyAgICAgICAgU29saWQgYmFja2Ryb3AgYmxl
bmRlZCB3aXRoIHNvdXJjZSB3aXRoIDAuNSBhbHBoYQorICAgICAgICBCYWNrZHJvcCB3aXRoIDAu
NSBibGVuZGVkIHdpdGggc291cmNlIHdpdGggMC41IGFscGhhCisgICAgVGhlIHVuZGVybGF5aW5n
IHByb29mIG9mIHRoZSBhYm92ZSBtZW50aW9uZWQgY2FzZXMgaXMgdGhlIHNhbWU6IHRoZSBjb2xv
cnMgYXJlIHByZW11bHRpcGxpZWQKKyAgICBhbmQgdGhlbiBibGVuZGVkIHRvZ2V0aGVyLgorCisg
ICAgVGhlIGZpbmFsIGNvbG9yIG9mICNzb2xpZC1zb2xpZCBkZXBlbmRzIG9uIHRoZSAiY29sb3Ii
IGJsZW5kIG1vZGUsIHdoaWNoIGlzIGEgbm9uLXNlcGFyYWJsZQorICAgIGJsZW5kIG1vZGUuIFRo
aXMgbWVhbnMgdGhhdCBjb2xvcnMgYXJlIGJsZW5kZWQgdG9nZXRoZXIgYXMgYSB3aG9sZSwgbm90
IGNvbXBvbmVudCBieSBjb21wb25lbnQuCisKKyAgICBUaGUgZm9ybXVsYSBmb3IgdGhpcyBibGVu
ZCBtb2RlIGlzOgorICAgICAgICBDciA9IEIoQ2IsIENzKSA9IFNldEx1bShDcywgTHVtKENiKSkK
KworICAgIFdpdGg6CisgICAgICAgIENyOiB0aGUgcmVzdWx0aW5nIGNvbG9yCisgICAgICAgIENi
OiB0aGUgYmFja2Ryb3AgY29sb3IsIHdoaWNoIGlzICNzb2xpZC1zb2xpZCAoIm9yaWdpbmFsIERP
TSBlbGVtZW50IGNvbG9yIikKKyAgICAgICAgQ3M6IHRoZSBzb3VyY2UgY29sb3IsIHdoaWNoIGlz
IG1peF9jb2xvcgorICAgICAgICBMdW0oQ2IpOiB0aGUgbHVtaW5vc2l0eSBvZiBDYi4gTHVtaW5v
c2l0eSBmb3IgY29sb3IgQyBpcyBnZW5lcmFsbHkgZGVmaW5lZCBieQorICAgICAgICAgICBMdW0o
Qyk6IDAuMyAqIENyZWQgKyAwLjU5ICogQ2dyZWVuICsgMC4xMSAqIENibHVlCisgICAgICAgIFNl
dEx1bShDcywgTHVtKENiKSk6IHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1bWlub3NpdHku
CisKKyAgICBUaGUgZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNv
bG9yIEMgaXMgZ2VuZXJhbGx5IGRlZmluZWQgYnk6CisKKyAgICAgICAgU2V0THVtKEMsIGwpCisg
ICAgICAgICAgICBkID0gbCAtIEx1bShDKQorICAgICAgICAgICAgQ3JlZCA9IENyZWQgKyBkCisg
ICAgICAgICAgICBDZ3JlZW4gPSBDZ3JlZW4gKyBkCisgICAgICAgICAgICBDYmx1ZSA9IENibHVl
ICsgZAorICAgICAgICAgICAgcmV0dXJuIENsaXBDb2xvcihDKQorCisgICAgQXQgdGhpcyBwb2lu
dCB0aGUgY29sb3IgQyBoYXMgdG8gYmUgY2xpcHBlZCBiZXR3ZWVuIFswLi4xXSAgYnkgdGhlIENs
aXBDb2xvciBmdW5jdGlvbiwgd2hpY2ggaXMKKyAgICBnZW5lcmFsbHkgZGVmaW5lZCBieToKKwor
ICAgICAgICBDbGlwQ29sb3IoQykKKyAgICAgICAgICAgIGwgPSBMdW0oQykKKyAgICAgICAgICAg
IG4gPSBtaW4oQ3JlZCwgQ2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIHggPSBtYXgoQ3JlZCwg
Q2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIGlmIG4gPCAwLjAKKyAgICAgICAgICAgICAgICBD
cmVkID0gbCArICgoKENyZWQgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgICAgICBD
Z3JlZW4gPSBsICsgKCgoQ2dyZWVuIC0gbCkgKiBsKSAvIChsIC0gbikpCisgICAgICAgICAgICAg
ICAgQ2JsdWUgPSBsICsgKCgoQ2JsdWUgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAg
IGlmIHggPiAxLjAKKyAgICAgICAgICAgICAgICBDcmVkID0gbCArICgoKENyZWQgLSBsKSAqICgx
IC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDZ3JlZW4gPSBsICsgKCgoQ2dyZWVu
IC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAgICAgICAgQ2JsdWUgPSBsICsg
KCgoQ2JsdWUgLSBsKSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgIHJldHVybiBD
CisKKyAgICBJbiB0aGlzIHRlc3QgY2FzZToKKyAgICAgICAgTHVtKENiKSA9IDAuMyAqIDAuOSAr
IDAuNTkgKiAwLjUgKyAwLjExICogMC4zCisgICAgICAgIEx1bShDYikgPSAwLjI3ICsgMC4yOTUg
KyAwLjAzMworICAgICAgICBMdW0oQ2IpID0gMC41OTgKKworICAgICAgICBMdW0oQ3MpID0gMC4z
ICogMC4yICsgMC41OSAqIDAuNCArIDAuMTEgKiAwLjgKKyAgICAgICAgTHVtKENzKSA9IDAuMDYg
KyAwLjIzNiArIDAuMDg4CisgICAgICAgIEx1bShDcykgPSAwLjM4NAorCisgICAgICAgIENyID0g
U2V0THVtKENzLCAwLjU5OCkKKyAgICAgICAgICAgIGQgPSAwLjU5OCAtIEx1bShDcykKKyAgICAg
ICAgICAgIGQgPSAwLjU5OCAtIDAuMzg0CisgICAgICAgICAgICBkID0gMC4yMTQKKyAgICAgICAg
ICAgIENyZWQgPSAwLjIgKyAwLjIxNCA9IDAuNDE0CisgICAgICAgICAgICBHcmVlbiA9IDAuNCAr
IDAuMjE0ID0gMC42MTQKKyAgICAgICAgICAgIENibHVlID0gMC44ICsgMC4yMTQgPSAxLjAxNAor
ICAgICAgICAgICAgcmV0dXJuIENsaXBDb2xvcigwLjQxNCwgMC42MTQsIDEuMDE0KQorCisgICAg
ICAgIENsaXBDb2xvcigwLjQxNCwgMC42MTQsIDEuMDE0KQorICAgICAgICAgICAgbCA9IDAuMyAq
IDAuNDE0ICsgMC41OSAqIDAuNjE0ICsgMC4xMSAqIDEuMTAxNCA9IDAuMTI0MiArIDAuMzYyMjYg
KyAwLjEyMTE1NCA9IDAuNjA3NjE0CisgICAgICAgICAgICBuID0gbWluKDAuNDE0LCAwLjYxNCwg
MS4wMTQpID0gMC40MTQKKyAgICAgICAgICAgIHggPSBtYXgoMC40MTQsIDAuNjE0LCAxLjAxNCkg
PSAxLjAxNAorICAgICAgICAgICAgeCA+IDEuMAorICAgICAgICAgICAgICAgIENyZWQgPSAwLjYw
NzYxNCArICgoKDAuNDE0IC0gMC42MDc2MTQpICogKDEgLSAwLjYwNzYxNCkpIC8gKDEuMDE0IC0g
MC42MDc2MTQpKSA9IAorICAgICAgICAgICAgICAgICAgICAgPSAwLjYwNzYxNCArICgoLTAuMTkz
NjE0ICogMC4zOTIzODYpIC8gMC40MDYzODYpID0gMC42MDc2MTQgLSAoMC4wNzU5NzE0MiAvIDAu
NDA2Mzg2KSA9IDAuNjA3NjE0IC0gMC4xODY5NDM5OSA9IDAuNDIwNjcwMDEKKyAgICAgICAgICAg
ICAgICBDZ3JlZW4gPSAwLjYwNzYxNCArICgoKDAuNjE0IC0gMC42MDc2MTQpICogKDEgLSAwLjYw
NzYxNCkpIC8gKDEuMDE0IC0gMC42MDc2MTQpKSA9CisgICAgICAgICAgICAgICAgICAgICAgID0g
MC42MDc2MTQgKyAoKDAuMDAzMzg2ICogMC4zOTIzODYpIC8gMC40MDYzODYgPSAwLjYwNzYxNCAr
ICgwLjAwMTMyODYyIC8gMC40MDYzODYpID0gMC42MDc2MTQgKyAwLjAwMzI2OTM1ID0gMC42MTA4
ODMzNQorICAgICAgICAgICAgICAgIENibHVlID0gMC42MDc2MTQgKyAoKCgxLjAxNCAtIDAuNjA3
NjE0KSAqICgxIC0gMC42MDc2MTQpKSAvICgxLjAxNCAtIDAuNjA3NjE0KSA9CisgICAgICAgICAg
ICAgICAgICAgICAgPSAwLjYwNzYxNCArICgoMC40MDYzODYgKiAwLjM5MjM4NikgLyAwLjQwNjM4
NikgPSAwLjYwNzYxNCArICgwLjE1OTQ2MDE4IC8gMC40MDYzODYpID0gMC42MDc2MTQgKyAwLjM5
MjM4NjAxID0gMS4wCisgICAgICAgICAgICByZXR1cm4gKDAuNDIsIDAuNjEsIDEuMCkKKworICAg
IFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0byAoMTA4LCAxNTcsIDI1NSksIHdoaWNoIGlzIHRo
ZSBleHBlY3RlZCBjb2xvci4KKyAgICBUaGlzIGlzIHRoZSBleGFjdCBjb2xvciB2YWx1ZSwgb3Ro
ZXIgcG9ydHMgbWlnaHQgZXhwZXJpZW5jZSBzbGlnaHQgZGlmZmVyZW5jZXMuCistLT4KKyAgICA8
ZGl2IGlkPSJzb2xpZC1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBpZD0iYWxwaGEtc29saWQiPjwv
ZGl2PgorICAgIDxkaXYgaWQ9InNvbGlkLWFscGhhIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJhbHBo
YS1hbHBoYSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1v
ZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1
c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHktZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDlhYWMzOGJkNTNhMTYxMWE1NjAzMTYwMGY2YmY4MDE3
MDA2ZDhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3Rv
bS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHktZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0IHRoYXQgYmxlbmRzIHRoZSBzb3VyY2UgYW5kIHRo
ZSBiYWNrZHJvcCB3aXRoIHRoZSBjb2xvciBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgLyogVGhlcmUgYXJlIGV4YWN0bHkgdGhlIGNvbG9y
IHZhbHVlcyB3ZSBleHBlY3QuIFNvbWUgcGxhdGZvcm1zIG1heSBoYXZlIHNsaWdodGx5IGRpZmZl
cmVudAorICAgICAgICAgICBjb2xvciByZXN1bHQuICovCisgICAgICAgICNzb2xpZC1zb2xpZCB7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTgsIDMzLCAwKTsKKyAgICAgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0K
KyAgICAgICAgI2FscGhhLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJn
YigxODQsIDE3MiwgMTg0KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI3NvbGlkLWFscGhhIHsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDMsIDEwMSwgNDkpOworICAgICAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAg
ICAgICAjYWxwaGEtYWxwaGEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIx
MywgMTgyLCAxNzUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8ZGl2IGlkPSJzb2xpZC1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBpZD0iYWxwaGEtc29saWQi
PjwvZGl2PgorICAgIDxkaXYgaWQ9InNvbGlkLWFscGhhIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJh
bHBoYS1hbHBoYSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5k
LW1vZGUtbHVtaW5vc2l0eS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9j
dXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZTk3YzAwZmQ4NTg3N2E2MWFiNGJiMjQ2ODY4YjBmY2ZkZTc2M2Y3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVy
LW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbApAQCAtMCwwICsxLDEyOCBA
QAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+
VGVzdCB0aGF0IGJsZW5kcyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ryb3Agd2l0aCB0aGUgbHVt
aW5vc2l0eSBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQiLCAiMSIpOworICAgICAg
ICAgICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVu
YWJsZWQiLCAiMSIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KKyAgICAgICAgI3NvbGlkLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IHJnYig5MCUsIDUwJSwgMzAlKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsK
KyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjog
Y3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIGx1bWlub3Np
dHkgc291cmNlLWF0b3ApLCBtaXhfY29sb3IgMC4xIDAuMiAwLjQgMS4wKTsKKyAgICAgICAgfQor
ICAgICAgICAjYWxwaGEtc29saWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdi
YSg5MCUsIDUwJSwgMzAlLCAwLjUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20o
bm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbHVtaW5vc2l0eSBzb3Vy
Y2UtYXRvcCksIG1peF9jb2xvciAwLjIgMC40IDAuOCAxLjApOworICAgICAgICB9CisgICAgICAg
ICNzb2xpZC1hbHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTAlLCA1
MCUsIDMwJSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6
IDEwMHB4OworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1cmwo
Jy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBsdW1pbm9zaXR5IHNvdXJjZS1hdG9wKSwgbWl4
X2NvbG9yIDAuMiAwLjQgMC44IDAuNSk7CisgICAgICAgIH0KKyAgICAgICAgI2FscGhhLWFscGhh
IHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAlLCA1MCUsIDMwJSwgMC41
KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVz
b3VyY2VzL21peC1jb2xvci5mcycpIGx1bWlub3NpdHkgc291cmNlLWF0b3ApLCBtaXhfY29sb3Ig
MC4yIDAuNCAwLjggMC41KTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzwhLS0KKyAgICBUaGUgZm9sbG93aW5nIHByb29mIGFwcGxpZXMgdG8gdGhlIGZpcnN0IGNh
c2UgKCNzb2xpZC1zb2xpZCkgd2hlcmUgYm90aCB0aGUgYmFja2Ryb3AgYW5kIHRoZQorICAgIHNv
dXJjZSBhcmUgc29saWQuCisKKyAgICBJbiB0aGlzIHRlc3QgdGhlIGZvbGxvd2luZyBjb21iaW5h
dGlvbnMgYXJlIGFsc28gdGVzdGVkOgorICAgICAgICBCYWNrZHJvcCB3aXRoIDAuNSBhbHBoYSBi
bGVuZGVkIHdpdGggc29saWQgc291cmNlCisgICAgICAgIFNvbGlkIGJhY2tkcm9wIGJsZW5kZWQg
d2l0aCBzb3VyY2Ugd2l0aCAwLjUgYWxwaGEKKyAgICAgICAgQmFja2Ryb3Agd2l0aCAwLjUgYmxl
bmRlZCB3aXRoIHNvdXJjZSB3aXRoIDAuNSBhbHBoYQorICAgIFRoZSB1bmRlcmxheWluZyBwcm9v
ZiBvZiB0aGUgYWJvdmUgbWVudGlvbmVkIGNhc2VzIGlzIHRoZSBzYW1lOiB0aGUgY29sb3JzIGFy
ZSBwcmVtdWx0aXBsaWVkCisgICAgYW5kIHRoZW4gYmxlbmRlZCB0b2dldGhlci4KKworICAgIFRo
ZSBmaW5hbCBjb2xvciBvZiAjc29saWQtc29saWQgZGVwZW5kcyBvbiB0aGUgImx1bWlub3NpdHki
IGJsZW5kIG1vZGUsIHdoaWNoIGlzIGEgbm9uLXNlcGFyYWJsZQorICAgIGJsZW5kIG1vZGUuIFRo
aXMgbWVhbnMgdGhhdCBjb2xvcnMgYXJlIGJsZW5kZWQgdG9nZXRoZXIgYXMgYSB3aG9sZSwgbm90
IGNvbXBvbmVudCBieSBjb21wb25lbnQuCisKKyAgICBUaGUgZm9ybXVsYSBmb3IgdGhpcyBibGVu
ZCBtb2RlIGlzOgorICAgICAgICBDciA9IEIoQ2IsIENzKSA9IFNldEx1bShDYiwgTHVtKENzKSkK
KworICAgIFdpdGg6CisgICAgICAgIENyOiB0aGUgcmVzdWx0aW5nIGNvbG9yCisgICAgICAgIENi
OiB0aGUgYmFja2Ryb3AgY29sb3IsIHdoaWNoIGlzICNzb2xpZC1zb2xpZCAoIm9yaWdpbmFsIERP
TSBlbGVtZW50IGNvbG9yIikKKyAgICAgICAgQ3M6IHRoZSBzb3VyY2UgY29sb3IsIHdoaWNoIGlz
IG1peF9jb2xvcgorICAgICAgICBMdW0oQ3MpOiB0aGUgbHVtaW5vc2l0eSBvZiBDcy4gTHVtaW5v
c2l0eSBmb3IgY29sb3IgQyBpcyBnZW5lcmFsbHkgZGVmaW5lZCBieQorICAgICAgICAgICBMdW0o
Qyk6IDAuMyAqIENyZWQgKyAwLjU5ICogQ2dyZWVuICsgMC4xMSAqIENibHVlCisgICAgICAgIFNl
dEx1bShDYiwgTHVtKENzKSk6IHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1bWlub3NpdHku
CisKKyAgICBUaGUgZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNv
bG9yIEMgaXMgZ2VuZXJhbGx5IGRlZmluZWQgYnk6CisKKyAgICAgICAgU2V0THVtKEMsIGwpCisg
ICAgICAgICAgICBkID0gbCAtIEx1bShDKQorICAgICAgICAgICAgQ3JlZCA9IENyZWQgKyBkCisg
ICAgICAgICAgICBDZ3JlZW4gPSBDZ3JlZW4gKyBkCisgICAgICAgICAgICBDYmx1ZSA9IENibHVl
ICsgZAorICAgICAgICAgICAgcmV0dXJuIENsaXBDb2xvcihDKQorCisgICAgQXQgdGhpcyBwb2lu
dCB0aGUgY29sb3IgQyBoYXMgdG8gYmUgY2xpcHBlZCBiZXR3ZWVuIFswLi4xXSAgYnkgdGhlIENs
aXBDb2xvciBmdW5jdGlvbiwgd2hpY2ggaXMKKyAgICBnZW5lcmFsbHkgZGVmaW5lZCBieToKKwor
ICAgICAgICBDbGlwQ29sb3IoQykKKyAgICAgICAgICAgIGwgPSBMdW0oQykKKyAgICAgICAgICAg
IG4gPSBtaW4oQ3JlZCwgQ2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIHggPSBtYXgoQ3JlZCwg
Q2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIGlmIG4gPCAwLjAKKyAgICAgICAgICAgICAgICBD
cmVkID0gbCArICgoKENyZWQgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgICAgICBD
Z3JlZW4gPSBsICsgKCgoQ2dyZWVuIC0gbCkgKiBsKSAvIChsIC0gbikpCisgICAgICAgICAgICAg
ICAgQ2JsdWUgPSBsICsgKCgoQ2JsdWUgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAg
IGlmIHggPiAxLjAKKyAgICAgICAgICAgICAgICBDcmVkID0gbCArICgoKENyZWQgLSBsKSAqICgx
IC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDZ3JlZW4gPSBsICsgKCgoQ2dyZWVu
IC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAgICAgICAgQ2JsdWUgPSBsICsg
KCgoQ2JsdWUgLSBsKSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgIHJldHVybiBD
CisKKyAgICBJbiB0aGlzIHRlc3QgY2FzZToKKyAgICAgICAgTHVtKENiKSA9IDAuMyAqIDAuOSAr
IDAuNTkgKiAwLjUgKyAwLjExICogMC4zCisgICAgICAgIEx1bShDYikgPSAwLjI3ICsgMC4yOTUg
KyAwLjAzMworICAgICAgICBMdW0oQ2IpID0gMC41OTgKKworICAgICAgICBMdW0oQ3MpID0gMC4z
ICogMC4xICsgMC41OSAqIDAuMiArIDAuMTEgKiAwLjQKKyAgICAgICAgTHVtKENzKSA9IDAuMDMg
KyAwLjExOCArIDAuMDQ0CisgICAgICAgIEx1bShDcykgPSAwLjE5MgorCisgICBDciA9IFNldEx1
bShDYiwgMC4xOTIpCisgICAgICAgIGQgPSAwLjE5MiAtIDAuNTk4CisgICAgICAgIGQgPSAwLjQw
NgorICAgICAgICBDcmVkID0gMC45IC0gMC40MDYgPSAwLjQ5NAorICAgICAgICBDZ3JlZW4gPSAw
LjUgLSAwLjQwNiA9IDAuMDk0CisgICAgICAgIENibHVlID0gMC4zIC0gMC40MDYgPSAtMC4xMDYK
KyAgICAgICAgcmV0dXJuIENsaXBDb2xvcigwLjQ5NCwgMC4wOTQsIC0wLjEwNikKKworICAgIENs
aXBDb2xvcigwLjQ5NCwgMC4wOTQsIC0wLjEwNikKKyAgICAgICAgbCA9IDAuNDk0ICogMC4zICsg
MC4wOTQgKiAwLjU5IC0gMC4xMDYgKiAwLjExID0gMC4xNDgyICsgMC4wNTU0NiAtIDAuMDExNjYg
PSAwLjE5MgorICAgICAgICBuID0gbWluKDAuNDk0LCAwLjA5NCwgLTAuMTA2KSA9IC0wLjEwNgor
ICAgICAgICB4ID0gbWF4KDAuNDk0LCAwLjA5NCwgLTAuMTA2KSA9IDAuNDk0CisgICAgICAgIG4g
PCAwLjAKKyAgICAgICAgICAgIENyZWQgPSAwLjE5MiArICgoKDAuNDk0IC0gMC4xOTIpICogMC4x
OTIpIC8gKDAuMTkyICsgMC4xMDYpKSA9CisgICAgICAgICAgICAgICAgID0gMC4xOTIgKyAoMC4z
MDIgKiAwLjE5MikgLyAwLjI5OCA9IDAuMTkyICsgKDAuMDU3OTg0IC8gMC4yOTgpID0gMC4xOTIg
KyAwLjE5NDU3NzE4ID0gMC4zODY1NzcxOAorICAgICAgICAgICAgQ2dyZWVuID0gMC4xOTIgKyAo
KCgwLjA5NCAtIDAuMTkyKSAqIDAuMTkyKSAvICgwLjE5MiArIDAuMTA2KSkgPQorICAgICAgICAg
ICAgICAgICAgID0gMC4xOTIgKyAoLTAuMDk4ICogMC4xOTIpIC8gMC4yOTggPSAwLjE5MiAtICgw
LjAxODgxNiAvIDAuMjk4KSA9IDAuMTkyIC0gMC4wNjMxNDA5NCA9IDAuMTI4ODU5MDYKKyAgICAg
ICAgICAgIENibHVlID0gMC4xOTIgKyAoKCgtMC4xMDYgLSAwLjE5MikgKiAwLjE5MikgLyAoMC4x
OTIgKyAwLjEwNikpID0KKyAgICAgICAgICAgICAgICAgID0gMC4xOTIgKyAoLTAuMjk4ICogMC4x
OTIpIC8gMC4yOTggPSAwLjE5MiAtIDAuMTkyID0gMC4wCisgICAgICAgIHJldHVybiAoMC4zODY1
NzcxOCwgMC4xMjg4NTkwNiwgMC4wMCkKKworICAgIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0
byAoOTgsIDMzLCAwKSwgd2hpY2ggaXMgdGhlIGV4cGVjdGVkIGNvbG9yLgorICAgIFRoaXMgaXMg
dGhlIGV4YWN0IGNvbG9yIHZhbHVlLCBvdGhlciBwb3J0cyBtaWdodCBleHBlcmllbmNlIHNsaWdo
dCBkaWZmZXJlbmNlcy4KKy0tPgorICAgIDxkaXYgaWQ9InNvbGlkLXNvbGlkIj48L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJhbHBoYS1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBpZD0ic29saWQtYWxwaGEi
PjwvZGl2PgorICAgIDxkaXYgaWQ9ImFscGhhLWFscGhhIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmRkMTU2
Mjk2ZTdlYzZmZmZiMDc0MDAwMTQ1OWJlMDllOWM5MDRlNi4uNTIyZWI0MGM5YTc3M2I2MDI5ZjMy
MmNmYjcwYjA0YzgwYWFkNTA0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTk0OSw4ICs5NDksMTEgQEAgZmFzdC9jYW52YXMvY2FudmFzLXF1YWRyYXRp
Yy1zYW1lLWVuZHBvaW50Lmh0bWwKIGNzczMvZmlsdGVycy9jb21wb3NpdGVkLWR1cmluZy10cmFu
c2l0aW9uLWxheWVydHJlZS5odG1sCiAKICMgLS0tIEN1c3RvbSBGaWx0ZXJzIC0tLQotIyBUaGlz
IHRlc3QgaXMgY3VycmVudGx5IHNraXBwZWQgb24gTWFjIGZvciBzbGlnaHQgY29sb3IgZGlmZmVy
ZW5jZXMsIHBsZWFzZSBzZWUgdGhlIHJlbGV2YW50IGJ1ZzogaHR0cDovL3dlYmtpdC5vcmcvYi8x
MDc0ODcKKyMgVGhlIGZvbGxvd2luZyAzIHRlc3RzIGFyZSBjdXJyZW50bHkgc2tpcHBlZCBvbiBN
YWMgZm9yIHNsaWdodCBjb2xvciBkaWZmZXJlbmNlcywKKyMgcGxlYXNlIHNlZSB0aGUgcmVsZXZh
bnQgYnVnOiBodHRwOi8vd2Via2l0Lm9yZy9iLzEwNzQ4Nwogd2Via2l0Lm9yZy9iLzEwNzQ4NyBj
c3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtZnJhY3Rpb25hbC1kZXN0aW5h
dGlvbi1hbHBoYS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTA3NDg3IGNzczMvZmlsdGVy
cy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1s
IFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTA3NDg3IGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9t
LWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5Lmh0bWwgWyBTa2lwIF0K
IAogIyAtLS0gVGV4dCAtLS0KIGZhc3QvZm9ybXMvdGV4dC1jb250cm9sLWludHJpbnNpYy13aWR0
aHMuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190357</attachid>
            <date>2013-02-26 13:56:37 -0800</date>
            <delta_ts>2013-02-26 13:59:19 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106226-20130226135251.patch</filename>
            <type>text/plain</type>
            <size>21668</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU2Mjg0OTFhODJlZjQx
MDBjMGJlZGE3ZGJjNjhhZWRhZDQzYWU3MC4uYTUzYTc3OWMxYzRmNWU3NjM2YTNkYTYwOTY2ZjFj
ZDg3NzlmZmI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTI1ICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSBJbXBsZW1lbnQgY29sb3IgYW5kIGx1bWlub3NpdHkgbm9uLXNlcGFyYWJs
ZSBibGVuZCBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA2MjI2CisKKyAgICAgICAgQWRkZWQgdGhlIGZvbGxvd2luZyBHTFNMIGhlbHBlciBm
dW5jdGlvbnMgdG8gdGhlIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06CisKKyAgICAgICAg
ICAgIC0gY3NzX0x1bShDKTogcmV0dXJucyB0aGUgbHVtaW5vc2l0eSBmb3IgdGhlIGNvbG9yIEMK
KyAgICAgICAgICAgIC0gY3NzX0NsaXBDb2xvcihDKTogY2xpcHMgY29sb3IgQworICAgICAgICAg
ICAgLSBjc3NfU2V0THVtKEMsIGwpOiBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNvbG9y
IEMKKworICAgICAgICBUaGUgYWJvdmUgZnVuY3Rpb25zIGFyZSBiZWluZyB1c2VkIGZvciB0aGUg
ImNvbG9yIiBhbmQgImx1bWlub3NpdHkiIG5vbi1zZXBhcmFibGUKKyAgICAgICAgYmxlbmQgbW9k
ZXMsIHRoZSByZWxldmFudCBzcGVjIGZvciBzdWNoIG1vZGVzIGlzIGF0IFVSTDoKKyAgICAgICAg
aHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9GWFRGL3Jhd2ZpbGUvdGlwL2NvbXBvc2l0aW5nL2luZGV4
Lmh0bWwjYmxlbmRpbmdub25zZXBhcmFibGUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0czogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmls
dGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwKKyAgICAgICAgICAgICAgIGNz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1s
dW1pbm9zaXR5Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21G
aWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpibGVuZEZ1bmN0aW9uU3RyaW5nKToKKwogMjAxMy0wMi0y
NiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMTQzOTg2KTogZmFzdC9maWxlcy9yZXZva2UtYmxvYi11cmwuaHRtbCBhc3NlcnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZp
bHRlclZhbGlkYXRlZFByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcAppbmRleCBjYjU1YzVl
Mjc1NWY3ODFiYmM0YzY2OGJkN2EyMGYwMTAwM2MyNzdkLi41OGViZTM0ZDk2ZGY2NDUwNmEwZDk0
NGFlY2NjNGI4Mjk2NjdjNzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbS5jcHAKQEAgLTI5MSw2ICsyOTEsOCBAQCBTdHJpbmcgQ3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyhCbGVuZE1vZGUgYmxlbmRNb2RlKQog
ICAgIC8vIENiOiBpcyB0aGUgYmFja2Ryb3AgY29sb3IgaW4gY3NzX0JsZW5kQ29sb3IoKSBhbmQg
dGhlIGJhY2tkcm9wIGNvbG9yIGNvbXBvbmVudCBpbiBjc3NfQmxlbmRDb21wb25lbnQoKQogICAg
IGNvbnN0IGNoYXIqIGJsZW5kQ29sb3JFeHByZXNzaW9uID0gInZlYzMoY3NzX0JsZW5kQ29tcG9u
ZW50KENiLnIsIENzLnIpLCBjc3NfQmxlbmRDb21wb25lbnQoQ2IuZywgQ3MuZyksIGNzc19CbGVu
ZENvbXBvbmVudChDYi5iLCBDcy5iKSkiOwogICAgIGNvbnN0IGNoYXIqIGJsZW5kQ29tcG9uZW50
RXhwcmVzc2lvbiA9ICJDbyA9IDAuMDsiOworICAgIGJvb2wgbmVlZHNMdW1pbm9zaXR5SGVscGVy
RnVuY3Rpb25zID0gZmFsc2U7CisgICAgU3RyaW5nIGJsZW5kRnVuY3Rpb25TdHJpbmc7CiAgICAg
c3dpdGNoIChibGVuZE1vZGUpIHsKICAgICBjYXNlIEJsZW5kTW9kZU5vcm1hbDoKICAgICAgICAg
YmxlbmRDb2xvckV4cHJlc3Npb24gPSAiQ3MiOwpAQCAtNDA1LDE1ICs0MDcsNDYgQEAgU3RyaW5n
IEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmJsZW5kRnVuY3Rpb25TdHJpbmcoQmxlbmRN
b2RlIGJsZW5kTW9kZSkKICAgICAgICAgICAgICAgICBDbyA9IENiICsgKDIuMCAqIENzIC0gMS4w
KSAqIChEIC0gQ2IpOwogICAgICAgICApOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEJsZW5k
TW9kZUh1ZToKLSAgICBjYXNlIEJsZW5kTW9kZVNhdHVyYXRpb246CiAgICAgY2FzZSBCbGVuZE1v
ZGVDb2xvcjoKKyAgICAgICAgbmVlZHNMdW1pbm9zaXR5SGVscGVyRnVuY3Rpb25zID0gdHJ1ZTsK
KyAgICAgICAgYmxlbmRDb2xvckV4cHJlc3Npb24gPSAiY3NzX1NldEx1bShDcywgY3NzX0x1bShD
YikpIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGVMdW1pbm9zaXR5OgorICAg
ICAgICBuZWVkc0x1bWlub3NpdHlIZWxwZXJGdW5jdGlvbnMgPSB0cnVlOworICAgICAgICBibGVu
ZENvbG9yRXhwcmVzc2lvbiA9ICJjc3NfU2V0THVtKENiLCBjc3NfTHVtKENzKSkiOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUh1ZToKKyAgICBjYXNlIEJsZW5kTW9kZVNhdHVy
YXRpb246CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKICAgICB9CiAKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoU0hBREVSKAorICAgIGlmIChu
ZWVkc0x1bWlub3NpdHlIZWxwZXJGdW5jdGlvbnMpIHsKKyAgICAgICAgYmxlbmRGdW5jdGlvblN0
cmluZy5hcHBlbmQoU0hBREVSKAorICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBjc3NfTHVtKG1l
ZGl1bXAgdmVjMyBDKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiAwLjMg
KiBDLnIgKyAwLjU5ICogQy5nICsgMC4xMSAqIEMuYjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIG1lZGl1bXAgdmVjMyBjc3NfQ2xpcENvbG9yKG1lZGl1bXAgdmVjMyBDKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIG1lZGl1bXAgZmxvYXQgTCA9IGNzc19MdW0oQyk7CisgICAg
ICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBuID0gbWluKG1pbihDLnIsIEMuZyksIEMuYik7Cisg
ICAgICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCB4ID0gbWF4KG1heChDLnIsIEMuZyksIEMuYik7
CisgICAgICAgICAgICAgICAgaWYgKG4gPCAwLjApCisgICAgICAgICAgICAgICAgICAgIEMgPSBM
ICsgKCgoQyAtIEwpICogTCkgLyAoTCAtIG4pKTsKKyAgICAgICAgICAgICAgICBpZiAoeCA+IDEu
MCkKKyAgICAgICAgICAgICAgICAgICAgQyA9IEwgKyAoKChDIC0gTCkgKiAoMS4wIC0gTCkgLyAo
eCAtIEwpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEM7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBtZWRpdW1wIHZlYzMgY3NzX1NldEx1bShtZWRpdW1wIHZlYzMgQywgbWVkaXVtcCBm
bG9hdCBsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEMgKz0gbCAtIGNzc19MdW0o
Qyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc19DbGlwQ29sb3IoQyk7CisgICAgICAgICAg
ICB9CisgICAgICAgICkpOworICAgIH0KKworICAgIGJsZW5kRnVuY3Rpb25TdHJpbmcuYXBwZW5k
KFN0cmluZzo6Zm9ybWF0KFNIQURFUigKICAgICAgICAgbWVkaXVtcCBmbG9hdCBjc3NfQmxlbmRD
b21wb25lbnQobWVkaXVtcCBmbG9hdCBDYiwgbWVkaXVtcCBmbG9hdCBDcykKICAgICAgICAgewog
ICAgICAgICAgICAgbWVkaXVtcCBmbG9hdCBDbzsKQEAgLTQyNCw3ICs0NTcsOSBAQCBTdHJpbmcg
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyhCbGVuZE1v
ZGUgYmxlbmRNb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gJXM7CiAgICAgICAg
IH0KLSAgICApLCBibGVuZENvbXBvbmVudEV4cHJlc3Npb24sIGJsZW5kQ29sb3JFeHByZXNzaW9u
KTsKKyAgICApLCBibGVuZENvbXBvbmVudEV4cHJlc3Npb24sIGJsZW5kQ29sb3JFeHByZXNzaW9u
KSk7CisKKyAgICByZXR1cm4gYmxlbmRGdW5jdGlvblN0cmluZzsKIH0KIAogU3RyaW5nIEN1c3Rv
bUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmNvbXBvc2l0ZUZ1bmN0aW9uU3RyaW5nKENvbXBvc2l0
ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY2YWE0YTQ2OGI0ZTJiN2Y1YzBi
Y2EyNWIwY2MwZTRmMmM0YTgzYmUuLmY1ZTI1OTc5NDU3MDYyZDA0OGY0NTEyYWU5MWJlZWIxNGZi
OGRhOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMi0yNSAgTWljaGVsYW5nZWxvIERl
IFNpbW9uZSAgPG1pY2hlbGFuZ2Vsb0B3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgU2hhZGVy
c10gSW1wbGVtZW50IGNvbG9yIGFuZCBsdW1pbm9zaXR5IG5vbi1zZXBhcmFibGUgYmxlbmQgbW9k
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjIy
NgorCisgICAgICAgIEFkZGVkIHJlbGV2YW50IHRlc3RzIGZvciB0aGUgImNvbG9yIiBhbmQgImx1
bWlub3NpdHkiIG5vbi1zZXBhcmFibGUgYmxlbmQgbW9kZXMuCisgICAgICAgIFRoZXNlIHRlc3Rz
IGFyZSBjdXJyZW50bHkgc2tpcHBlZCBvbiBNYWMgZHVlIHRvIGEgc2xpZ2h0IGNvbG9yIGRpZmZl
cmVuY2U7IHBsZWFzZQorICAgICAgICBzZWUgcmVsZXZhbnQgYnVnOiBodHRwOi8vd2Via2l0Lm9y
Zy9iLzEwNzQ4Ny4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxl
bmQtbW9kZS1jb2xvci1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRl
cnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3IuaHRt
bDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5v
bnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHktZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1i
bGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMjYgIFN0ZXBoZW4g
Q2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE5l
dyBiYXNlbGluZXMgZm9yIGNzczMtbW9kc2VsLTE1YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2Rl
LWNvbG9yLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1
c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3ItZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lOTYzYTYxNzk3NGEzYWFmMzIzYjIyNmZmMDNiZDdkMTczNDkyMmVhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmls
dGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSwzNiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8
dGl0bGU+VGVzdCB0aGF0IGJsZW5kcyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ryb3Agd2l0aCB0
aGUgY29sb3IgYmxlbmQgbW9kZS48L3RpdGxlPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
CisgICAgICAgIC8qIFRoZXNlIGFyZSBleGFjdGx5IHRoZSBjb2xvciB2YWx1ZXMgd2UgZXhwZWN0
LiBTb21lIHBsYXRmb3JtcyBtYXkgaGF2ZSBzbGlnaHRseSBkaWZmZXJlbnQKKyAgICAgICAgICAg
Y29sb3IgcmVzdWx0LiAqLworICAgICAgICAjc29saWQtc29saWQgeworICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiKDEwOCwgMTU3LCAyNTUpOworICAgICAgICAgICAgd2lkdGg6IDEw
MHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjYWxw
aGEtc29saWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE2NywgMTkyLCAy
NDIpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgfQorICAgICAgICAjc29saWQtYWxwaGEgeworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiKDE2OSwgMTQyLCAxNjYpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4
OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjYWxwaGEt
YWxwaGEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNSwgMTkyLCAyMDQp
OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJz
b2xpZC1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBpZD0iYWxwaGEtc29saWQiPjwvZGl2PgorICAg
IDxkaXYgaWQ9InNvbGlkLWFscGhhIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJhbHBoYS1hbHBoYSI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Zp
bHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3Iu
aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25z
ZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzcwNDAwZTFiOTli
M2Q0ODc5MDk3ZDczODI5ODJhMzUwZWFmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1v
ZGUtY29sb3IuaHRtbApAQCAtMCwwICsxLDEyOSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdCB0aGF0IGJsZW5kcyB0aGUgc291cmNl
IGFuZCB0aGUgYmFja2Ryb3Agd2l0aCB0aGUgY29sb3IgYmxlbmQgbW9kZS48L3RpdGxlPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NDdXN0b21GaWx0
ZXJFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRl
UHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICNzb2xpZC1zb2xp
ZCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTAlLCA1MCUsIDMwJSk7Cisg
ICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1cmwoJy4uL3Jlc291cmNl
cy9taXgtY29sb3IuZnMnKSBjb2xvciBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjIgMC40IDAu
OCAxLjApOworICAgICAgICB9CisgICAgICAgICNhbHBoYS1zb2xpZCB7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDkwJSwgNTAlLCAzMCUsIDAuNSk7CisgICAgICAgICAgICB3
aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgLXdl
YmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3Iu
ZnMnKSBjb2xvciBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjIgMC40IDAuOCAxLjApOworICAg
ICAgICB9CisgICAgICAgICNzb2xpZC1hbHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZ2IoOTAlLCA1MCUsIDMwJSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3Rv
bShub25lIG1peCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBjb2xvciBzb3VyY2Ut
YXRvcCksIG1peF9jb2xvciAwLjIgMC40IDAuOCAwLjUpOworICAgICAgICB9CisgICAgICAgICNh
bHBoYS1hbHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDkwJSwgNTAl
LCAzMCUsIDAuNSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1
cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBjb2xvciBzb3VyY2UtYXRvcCksIG1peF9j
b2xvciAwLjIgMC40IDAuOCAwLjUpOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPCEtLQorICAgIFRoZSBmb2xsb3dpbmcgcHJvb2YgYXBwbGllcyB0byB0aGUgZmly
c3QgY2FzZSAoI3NvbGlkLXNvbGlkKSB3aGVyZSBib3RoIHRoZSBiYWNrZHJvcCBhbmQgdGhlCisg
ICAgc291cmNlIGFyZSBzb2xpZC4KKworICAgIEluIHRoaXMgdGVzdCB0aGUgZm9sbG93aW5nIGNv
bWJpbmF0aW9ucyBhcmUgYWxzbyB0ZXN0ZWQ6CisgICAgICAgIEJhY2tkcm9wIHdpdGggMC41IGFs
cGhhIGJsZW5kZWQgd2l0aCBzb2xpZCBzb3VyY2UKKyAgICAgICAgU29saWQgYmFja2Ryb3AgYmxl
bmRlZCB3aXRoIHNvdXJjZSB3aXRoIDAuNSBhbHBoYQorICAgICAgICBCYWNrZHJvcCB3aXRoIDAu
NSBibGVuZGVkIHdpdGggc291cmNlIHdpdGggMC41IGFscGhhCisgICAgVGhlIHVuZGVybGF5aW5n
IHByb29mIG9mIHRoZSBhYm92ZSBtZW50aW9uZWQgY2FzZXMgaXMgdGhlIHNhbWU6IHRoZSBjb2xv
cnMgYXJlIHByZW11bHRpcGxpZWQKKyAgICBhbmQgdGhlbiBibGVuZGVkIHRvZ2V0aGVyLgorCisg
ICAgVGhlIGZpbmFsIGNvbG9yIG9mICNzb2xpZC1zb2xpZCBkZXBlbmRzIG9uIHRoZSAiY29sb3Ii
IGJsZW5kIG1vZGUsIHdoaWNoIGlzIGEgbm9uLXNlcGFyYWJsZQorICAgIGJsZW5kIG1vZGUuIFRo
aXMgbWVhbnMgdGhhdCBjb2xvcnMgYXJlIGJsZW5kZWQgdG9nZXRoZXIgYXMgYSB3aG9sZSwgbm90
IGNvbXBvbmVudCBieSBjb21wb25lbnQuCisKKyAgICBUaGUgZm9ybXVsYSBmb3IgdGhpcyBibGVu
ZCBtb2RlIGlzOgorICAgICAgICBDciA9IEIoQ2IsIENzKSA9IFNldEx1bShDcywgTHVtKENiKSkK
KworICAgIFdpdGg6CisgICAgICAgIENyOiB0aGUgcmVzdWx0aW5nIGNvbG9yCisgICAgICAgIENi
OiB0aGUgYmFja2Ryb3AgY29sb3IsIHdoaWNoIGlzICNzb2xpZC1zb2xpZCAoIm9yaWdpbmFsIERP
TSBlbGVtZW50IGNvbG9yIikKKyAgICAgICAgQ3M6IHRoZSBzb3VyY2UgY29sb3IsIHdoaWNoIGlz
IG1peF9jb2xvcgorICAgICAgICBMdW0oQ2IpOiB0aGUgbHVtaW5vc2l0eSBvZiBDYi4gTHVtaW5v
c2l0eSBmb3IgY29sb3IgQyBpcyBnZW5lcmFsbHkgZGVmaW5lZCBieQorICAgICAgICAgICBMdW0o
Qyk6IDAuMyAqIENyZWQgKyAwLjU5ICogQ2dyZWVuICsgMC4xMSAqIENibHVlCisgICAgICAgIFNl
dEx1bShDcywgTHVtKENiKSk6IHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1bWlub3NpdHku
CisKKyAgICBUaGUgZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNv
bG9yIEMgaXMgZ2VuZXJhbGx5IGRlZmluZWQgYnk6CisKKyAgICAgICAgU2V0THVtKEMsIGwpCisg
ICAgICAgICAgICBkID0gbCAtIEx1bShDKQorICAgICAgICAgICAgQ3JlZCA9IENyZWQgKyBkCisg
ICAgICAgICAgICBDZ3JlZW4gPSBDZ3JlZW4gKyBkCisgICAgICAgICAgICBDYmx1ZSA9IENibHVl
ICsgZAorICAgICAgICAgICAgcmV0dXJuIENsaXBDb2xvcihDKQorCisgICAgQXQgdGhpcyBwb2lu
dCB0aGUgY29sb3IgQyBoYXMgdG8gYmUgY2xpcHBlZCBiZXR3ZWVuIFswLi4xXSAgYnkgdGhlIENs
aXBDb2xvciBmdW5jdGlvbiwgd2hpY2ggaXMKKyAgICBnZW5lcmFsbHkgZGVmaW5lZCBieToKKwor
ICAgICAgICBDbGlwQ29sb3IoQykKKyAgICAgICAgICAgIGwgPSBMdW0oQykKKyAgICAgICAgICAg
IG4gPSBtaW4oQ3JlZCwgQ2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIHggPSBtYXgoQ3JlZCwg
Q2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIGlmIG4gPCAwLjAKKyAgICAgICAgICAgICAgICBD
cmVkID0gbCArICgoKENyZWQgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgICAgICBD
Z3JlZW4gPSBsICsgKCgoQ2dyZWVuIC0gbCkgKiBsKSAvIChsIC0gbikpCisgICAgICAgICAgICAg
ICAgQ2JsdWUgPSBsICsgKCgoQ2JsdWUgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAg
IGlmIHggPiAxLjAKKyAgICAgICAgICAgICAgICBDcmVkID0gbCArICgoKENyZWQgLSBsKSAqICgx
IC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDZ3JlZW4gPSBsICsgKCgoQ2dyZWVu
IC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAgICAgICAgQ2JsdWUgPSBsICsg
KCgoQ2JsdWUgLSBsKSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgIHJldHVybiBD
CisKKyAgICBJbiB0aGlzIHRlc3QgY2FzZToKKyAgICAgICAgTHVtKENiKSA9IDAuMyAqIDAuOSAr
IDAuNTkgKiAwLjUgKyAwLjExICogMC4zCisgICAgICAgIEx1bShDYikgPSAwLjI3ICsgMC4yOTUg
KyAwLjAzMworICAgICAgICBMdW0oQ2IpID0gMC41OTgKKworICAgICAgICBMdW0oQ3MpID0gMC4z
ICogMC4yICsgMC41OSAqIDAuNCArIDAuMTEgKiAwLjgKKyAgICAgICAgTHVtKENzKSA9IDAuMDYg
KyAwLjIzNiArIDAuMDg4CisgICAgICAgIEx1bShDcykgPSAwLjM4NAorCisgICAgICAgIENyID0g
U2V0THVtKENzLCAwLjU5OCkKKyAgICAgICAgICAgIGQgPSAwLjU5OCAtIEx1bShDcykKKyAgICAg
ICAgICAgIGQgPSAwLjU5OCAtIDAuMzg0CisgICAgICAgICAgICBkID0gMC4yMTQKKyAgICAgICAg
ICAgIENyZWQgPSAwLjIgKyAwLjIxNCA9IDAuNDE0CisgICAgICAgICAgICBHcmVlbiA9IDAuNCAr
IDAuMjE0ID0gMC42MTQKKyAgICAgICAgICAgIENibHVlID0gMC44ICsgMC4yMTQgPSAxLjAxNAor
ICAgICAgICAgICAgcmV0dXJuIENsaXBDb2xvcigwLjQxNCwgMC42MTQsIDEuMDE0KQorCisgICAg
ICAgIENsaXBDb2xvcigwLjQxNCwgMC42MTQsIDEuMDE0KQorICAgICAgICAgICAgbCA9IDAuMyAq
IDAuNDE0ICsgMC41OSAqIDAuNjE0ICsgMC4xMSAqIDEuMTAxNCA9IDAuMTI0MiArIDAuMzYyMjYg
KyAwLjEyMTE1NCA9IDAuNjA3NjE0CisgICAgICAgICAgICBuID0gbWluKDAuNDE0LCAwLjYxNCwg
MS4wMTQpID0gMC40MTQKKyAgICAgICAgICAgIHggPSBtYXgoMC40MTQsIDAuNjE0LCAxLjAxNCkg
PSAxLjAxNAorICAgICAgICAgICAgeCA+IDEuMAorICAgICAgICAgICAgICAgIENyZWQgPSAwLjYw
NzYxNCArICgoKDAuNDE0IC0gMC42MDc2MTQpICogKDEgLSAwLjYwNzYxNCkpIC8gKDEuMDE0IC0g
MC42MDc2MTQpKSA9IAorICAgICAgICAgICAgICAgICAgICAgPSAwLjYwNzYxNCArICgoLTAuMTkz
NjE0ICogMC4zOTIzODYpIC8gMC40MDYzODYpID0gMC42MDc2MTQgLSAoMC4wNzU5NzE0MiAvIDAu
NDA2Mzg2KSA9IDAuNjA3NjE0IC0gMC4xODY5NDM5OSA9IDAuNDIwNjcwMDEKKyAgICAgICAgICAg
ICAgICBDZ3JlZW4gPSAwLjYwNzYxNCArICgoKDAuNjE0IC0gMC42MDc2MTQpICogKDEgLSAwLjYw
NzYxNCkpIC8gKDEuMDE0IC0gMC42MDc2MTQpKSA9CisgICAgICAgICAgICAgICAgICAgICAgID0g
MC42MDc2MTQgKyAoKDAuMDAzMzg2ICogMC4zOTIzODYpIC8gMC40MDYzODYgPSAwLjYwNzYxNCAr
ICgwLjAwMTMyODYyIC8gMC40MDYzODYpID0gMC42MDc2MTQgKyAwLjAwMzI2OTM1ID0gMC42MTA4
ODMzNQorICAgICAgICAgICAgICAgIENibHVlID0gMC42MDc2MTQgKyAoKCgxLjAxNCAtIDAuNjA3
NjE0KSAqICgxIC0gMC42MDc2MTQpKSAvICgxLjAxNCAtIDAuNjA3NjE0KSA9CisgICAgICAgICAg
ICAgICAgICAgICAgPSAwLjYwNzYxNCArICgoMC40MDYzODYgKiAwLjM5MjM4NikgLyAwLjQwNjM4
NikgPSAwLjYwNzYxNCArICgwLjE1OTQ2MDE4IC8gMC40MDYzODYpID0gMC42MDc2MTQgKyAwLjM5
MjM4NjAxID0gMS4wCisgICAgICAgICAgICByZXR1cm4gKDAuNDIsIDAuNjEsIDEuMCkKKworICAg
IFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0byAoMTA4LCAxNTcsIDI1NSksIHdoaWNoIGlzIHRo
ZSBleHBlY3RlZCBjb2xvci4KKyAgICBUaGlzIGlzIHRoZSBleGFjdCBjb2xvciB2YWx1ZSwgb3Ro
ZXIgcG9ydHMgbWlnaHQgZXhwZXJpZW5jZSBzbGlnaHQgZGlmZmVyZW5jZXMuCistLT4KKyAgICA8
ZGl2IGlkPSJzb2xpZC1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBpZD0iYWxwaGEtc29saWQiPjwv
ZGl2PgorICAgIDxkaXYgaWQ9InNvbGlkLWFscGhhIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJhbHBo
YS1hbHBoYSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1v
ZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1
c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHktZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDlhYWMzOGJkNTNhMTYxMWE1NjAzMTYwMGY2YmY4MDE3
MDA2ZDhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3Rv
bS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHktZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0IHRoYXQgYmxlbmRzIHRoZSBzb3VyY2UgYW5kIHRo
ZSBiYWNrZHJvcCB3aXRoIHRoZSBjb2xvciBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgLyogVGhlcmUgYXJlIGV4YWN0bHkgdGhlIGNvbG9y
IHZhbHVlcyB3ZSBleHBlY3QuIFNvbWUgcGxhdGZvcm1zIG1heSBoYXZlIHNsaWdodGx5IGRpZmZl
cmVudAorICAgICAgICAgICBjb2xvciByZXN1bHQuICovCisgICAgICAgICNzb2xpZC1zb2xpZCB7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTgsIDMzLCAwKTsKKyAgICAgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0K
KyAgICAgICAgI2FscGhhLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJn
YigxODQsIDE3MiwgMTg0KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI3NvbGlkLWFscGhhIHsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDMsIDEwMSwgNDkpOworICAgICAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAg
ICAgICAjYWxwaGEtYWxwaGEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIx
MywgMTgyLCAxNzUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8ZGl2IGlkPSJzb2xpZC1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBpZD0iYWxwaGEtc29saWQi
PjwvZGl2PgorICAgIDxkaXYgaWQ9InNvbGlkLWFscGhhIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJh
bHBoYS1hbHBoYSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5k
LW1vZGUtbHVtaW5vc2l0eS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9j
dXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZTk3YzAwZmQ4NTg3N2E2MWFiNGJiMjQ2ODY4YjBmY2ZkZTc2M2Y3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVy
LW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbApAQCAtMCwwICsxLDEyOCBA
QAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+
VGVzdCB0aGF0IGJsZW5kcyB0aGUgc291cmNlIGFuZCB0aGUgYmFja2Ryb3Agd2l0aCB0aGUgbHVt
aW5vc2l0eSBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQiLCAiMSIpOworICAgICAg
ICAgICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVu
YWJsZWQiLCAiMSIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KKyAgICAgICAgI3NvbGlkLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IHJnYig5MCUsIDUwJSwgMzAlKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsK
KyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjog
Y3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIGx1bWlub3Np
dHkgc291cmNlLWF0b3ApLCBtaXhfY29sb3IgMC4xIDAuMiAwLjQgMS4wKTsKKyAgICAgICAgfQor
ICAgICAgICAjYWxwaGEtc29saWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdi
YSg5MCUsIDUwJSwgMzAlLCAwLjUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20o
bm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbHVtaW5vc2l0eSBzb3Vy
Y2UtYXRvcCksIG1peF9jb2xvciAwLjIgMC40IDAuOCAxLjApOworICAgICAgICB9CisgICAgICAg
ICNzb2xpZC1hbHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTAlLCA1
MCUsIDMwJSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6
IDEwMHB4OworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIG1peCh1cmwo
Jy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBsdW1pbm9zaXR5IHNvdXJjZS1hdG9wKSwgbWl4
X2NvbG9yIDAuMiAwLjQgMC44IDAuNSk7CisgICAgICAgIH0KKyAgICAgICAgI2FscGhhLWFscGhh
IHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAlLCA1MCUsIDMwJSwgMC41
KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVz
b3VyY2VzL21peC1jb2xvci5mcycpIGx1bWlub3NpdHkgc291cmNlLWF0b3ApLCBtaXhfY29sb3Ig
MC4yIDAuNCAwLjggMC41KTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzwhLS0KKyAgICBUaGUgZm9sbG93aW5nIHByb29mIGFwcGxpZXMgdG8gdGhlIGZpcnN0IGNh
c2UgKCNzb2xpZC1zb2xpZCkgd2hlcmUgYm90aCB0aGUgYmFja2Ryb3AgYW5kIHRoZQorICAgIHNv
dXJjZSBhcmUgc29saWQuCisKKyAgICBJbiB0aGlzIHRlc3QgdGhlIGZvbGxvd2luZyBjb21iaW5h
dGlvbnMgYXJlIGFsc28gdGVzdGVkOgorICAgICAgICBCYWNrZHJvcCB3aXRoIDAuNSBhbHBoYSBi
bGVuZGVkIHdpdGggc29saWQgc291cmNlCisgICAgICAgIFNvbGlkIGJhY2tkcm9wIGJsZW5kZWQg
d2l0aCBzb3VyY2Ugd2l0aCAwLjUgYWxwaGEKKyAgICAgICAgQmFja2Ryb3Agd2l0aCAwLjUgYmxl
bmRlZCB3aXRoIHNvdXJjZSB3aXRoIDAuNSBhbHBoYQorICAgIFRoZSB1bmRlcmxheWluZyBwcm9v
ZiBvZiB0aGUgYWJvdmUgbWVudGlvbmVkIGNhc2VzIGlzIHRoZSBzYW1lOiB0aGUgY29sb3JzIGFy
ZSBwcmVtdWx0aXBsaWVkCisgICAgYW5kIHRoZW4gYmxlbmRlZCB0b2dldGhlci4KKworICAgIFRo
ZSBmaW5hbCBjb2xvciBvZiAjc29saWQtc29saWQgZGVwZW5kcyBvbiB0aGUgImx1bWlub3NpdHki
IGJsZW5kIG1vZGUsIHdoaWNoIGlzIGEgbm9uLXNlcGFyYWJsZQorICAgIGJsZW5kIG1vZGUuIFRo
aXMgbWVhbnMgdGhhdCBjb2xvcnMgYXJlIGJsZW5kZWQgdG9nZXRoZXIgYXMgYSB3aG9sZSwgbm90
IGNvbXBvbmVudCBieSBjb21wb25lbnQuCisKKyAgICBUaGUgZm9ybXVsYSBmb3IgdGhpcyBibGVu
ZCBtb2RlIGlzOgorICAgICAgICBDciA9IEIoQ2IsIENzKSA9IFNldEx1bShDYiwgTHVtKENzKSkK
KworICAgIFdpdGg6CisgICAgICAgIENyOiB0aGUgcmVzdWx0aW5nIGNvbG9yCisgICAgICAgIENi
OiB0aGUgYmFja2Ryb3AgY29sb3IsIHdoaWNoIGlzICNzb2xpZC1zb2xpZCAoIm9yaWdpbmFsIERP
TSBlbGVtZW50IGNvbG9yIikKKyAgICAgICAgQ3M6IHRoZSBzb3VyY2UgY29sb3IsIHdoaWNoIGlz
IG1peF9jb2xvcgorICAgICAgICBMdW0oQ3MpOiB0aGUgbHVtaW5vc2l0eSBvZiBDcy4gTHVtaW5v
c2l0eSBmb3IgY29sb3IgQyBpcyBnZW5lcmFsbHkgZGVmaW5lZCBieQorICAgICAgICAgICBMdW0o
Qyk6IDAuMyAqIENyZWQgKyAwLjU5ICogQ2dyZWVuICsgMC4xMSAqIENibHVlCisgICAgICAgIFNl
dEx1bShDYiwgTHVtKENzKSk6IHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1bWlub3NpdHku
CisKKyAgICBUaGUgZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNv
bG9yIEMgaXMgZ2VuZXJhbGx5IGRlZmluZWQgYnk6CisKKyAgICAgICAgU2V0THVtKEMsIGwpCisg
ICAgICAgICAgICBkID0gbCAtIEx1bShDKQorICAgICAgICAgICAgQ3JlZCA9IENyZWQgKyBkCisg
ICAgICAgICAgICBDZ3JlZW4gPSBDZ3JlZW4gKyBkCisgICAgICAgICAgICBDYmx1ZSA9IENibHVl
ICsgZAorICAgICAgICAgICAgcmV0dXJuIENsaXBDb2xvcihDKQorCisgICAgQXQgdGhpcyBwb2lu
dCB0aGUgY29sb3IgQyBoYXMgdG8gYmUgY2xpcHBlZCBiZXR3ZWVuIFswLi4xXSAgYnkgdGhlIENs
aXBDb2xvciBmdW5jdGlvbiwgd2hpY2ggaXMKKyAgICBnZW5lcmFsbHkgZGVmaW5lZCBieToKKwor
ICAgICAgICBDbGlwQ29sb3IoQykKKyAgICAgICAgICAgIGwgPSBMdW0oQykKKyAgICAgICAgICAg
IG4gPSBtaW4oQ3JlZCwgQ2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIHggPSBtYXgoQ3JlZCwg
Q2dyZWVuLCBDYmx1ZSkKKyAgICAgICAgICAgIGlmIG4gPCAwLjAKKyAgICAgICAgICAgICAgICBD
cmVkID0gbCArICgoKENyZWQgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgICAgICBD
Z3JlZW4gPSBsICsgKCgoQ2dyZWVuIC0gbCkgKiBsKSAvIChsIC0gbikpCisgICAgICAgICAgICAg
ICAgQ2JsdWUgPSBsICsgKCgoQ2JsdWUgLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAg
IGlmIHggPiAxLjAKKyAgICAgICAgICAgICAgICBDcmVkID0gbCArICgoKENyZWQgLSBsKSAqICgx
IC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDZ3JlZW4gPSBsICsgKCgoQ2dyZWVu
IC0gbCkgKiAoMSAtIGwpKSAvICh4IC0gbCkpCisgICAgICAgICAgICAgICAgQ2JsdWUgPSBsICsg
KCgoQ2JsdWUgLSBsKSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgIHJldHVybiBD
CisKKyAgICBJbiB0aGlzIHRlc3QgY2FzZToKKyAgICAgICAgTHVtKENiKSA9IDAuMyAqIDAuOSAr
IDAuNTkgKiAwLjUgKyAwLjExICogMC4zCisgICAgICAgIEx1bShDYikgPSAwLjI3ICsgMC4yOTUg
KyAwLjAzMworICAgICAgICBMdW0oQ2IpID0gMC41OTgKKworICAgICAgICBMdW0oQ3MpID0gMC4z
ICogMC4xICsgMC41OSAqIDAuMiArIDAuMTEgKiAwLjQKKyAgICAgICAgTHVtKENzKSA9IDAuMDMg
KyAwLjExOCArIDAuMDQ0CisgICAgICAgIEx1bShDcykgPSAwLjE5MgorCisgICBDciA9IFNldEx1
bShDYiwgMC4xOTIpCisgICAgICAgIGQgPSAwLjE5MiAtIDAuNTk4CisgICAgICAgIGQgPSAwLjQw
NgorICAgICAgICBDcmVkID0gMC45IC0gMC40MDYgPSAwLjQ5NAorICAgICAgICBDZ3JlZW4gPSAw
LjUgLSAwLjQwNiA9IDAuMDk0CisgICAgICAgIENibHVlID0gMC4zIC0gMC40MDYgPSAtMC4xMDYK
KyAgICAgICAgcmV0dXJuIENsaXBDb2xvcigwLjQ5NCwgMC4wOTQsIC0wLjEwNikKKworICAgIENs
aXBDb2xvcigwLjQ5NCwgMC4wOTQsIC0wLjEwNikKKyAgICAgICAgbCA9IDAuNDk0ICogMC4zICsg
MC4wOTQgKiAwLjU5IC0gMC4xMDYgKiAwLjExID0gMC4xNDgyICsgMC4wNTU0NiAtIDAuMDExNjYg
PSAwLjE5MgorICAgICAgICBuID0gbWluKDAuNDk0LCAwLjA5NCwgLTAuMTA2KSA9IC0wLjEwNgor
ICAgICAgICB4ID0gbWF4KDAuNDk0LCAwLjA5NCwgLTAuMTA2KSA9IDAuNDk0CisgICAgICAgIG4g
PCAwLjAKKyAgICAgICAgICAgIENyZWQgPSAwLjE5MiArICgoKDAuNDk0IC0gMC4xOTIpICogMC4x
OTIpIC8gKDAuMTkyICsgMC4xMDYpKSA9CisgICAgICAgICAgICAgICAgID0gMC4xOTIgKyAoMC4z
MDIgKiAwLjE5MikgLyAwLjI5OCA9IDAuMTkyICsgKDAuMDU3OTg0IC8gMC4yOTgpID0gMC4xOTIg
KyAwLjE5NDU3NzE4ID0gMC4zODY1NzcxOAorICAgICAgICAgICAgQ2dyZWVuID0gMC4xOTIgKyAo
KCgwLjA5NCAtIDAuMTkyKSAqIDAuMTkyKSAvICgwLjE5MiArIDAuMTA2KSkgPQorICAgICAgICAg
ICAgICAgICAgID0gMC4xOTIgKyAoLTAuMDk4ICogMC4xOTIpIC8gMC4yOTggPSAwLjE5MiAtICgw
LjAxODgxNiAvIDAuMjk4KSA9IDAuMTkyIC0gMC4wNjMxNDA5NCA9IDAuMTI4ODU5MDYKKyAgICAg
ICAgICAgIENibHVlID0gMC4xOTIgKyAoKCgtMC4xMDYgLSAwLjE5MikgKiAwLjE5MikgLyAoMC4x
OTIgKyAwLjEwNikpID0KKyAgICAgICAgICAgICAgICAgID0gMC4xOTIgKyAoLTAuMjk4ICogMC4x
OTIpIC8gMC4yOTggPSAwLjE5MiAtIDAuMTkyID0gMC4wCisgICAgICAgIHJldHVybiAoMC4zODY1
NzcxOCwgMC4xMjg4NTkwNiwgMC4wMCkKKworICAgIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0
byAoOTgsIDMzLCAwKSwgd2hpY2ggaXMgdGhlIGV4cGVjdGVkIGNvbG9yLgorICAgIFRoaXMgaXMg
dGhlIGV4YWN0IGNvbG9yIHZhbHVlLCBvdGhlciBwb3J0cyBtaWdodCBleHBlcmllbmNlIHNsaWdo
dCBkaWZmZXJlbmNlcy4KKy0tPgorICAgIDxkaXYgaWQ9InNvbGlkLXNvbGlkIj48L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJhbHBoYS1zb2xpZCI+PC9kaXY+CisgICAgPGRpdiBpZD0ic29saWQtYWxwaGEi
PjwvZGl2PgorICAgIDxkaXYgaWQ9ImFscGhhLWFscGhhIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmRkMTU2
Mjk2ZTdlYzZmZmZiMDc0MDAwMTQ1OWJlMDllOWM5MDRlNi4uNTIyZWI0MGM5YTc3M2I2MDI5ZjMy
MmNmYjcwYjA0YzgwYWFkNTA0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTk0OSw4ICs5NDksMTEgQEAgZmFzdC9jYW52YXMvY2FudmFzLXF1YWRyYXRp
Yy1zYW1lLWVuZHBvaW50Lmh0bWwKIGNzczMvZmlsdGVycy9jb21wb3NpdGVkLWR1cmluZy10cmFu
c2l0aW9uLWxheWVydHJlZS5odG1sCiAKICMgLS0tIEN1c3RvbSBGaWx0ZXJzIC0tLQotIyBUaGlz
IHRlc3QgaXMgY3VycmVudGx5IHNraXBwZWQgb24gTWFjIGZvciBzbGlnaHQgY29sb3IgZGlmZmVy
ZW5jZXMsIHBsZWFzZSBzZWUgdGhlIHJlbGV2YW50IGJ1ZzogaHR0cDovL3dlYmtpdC5vcmcvYi8x
MDc0ODcKKyMgVGhlIGZvbGxvd2luZyAzIHRlc3RzIGFyZSBjdXJyZW50bHkgc2tpcHBlZCBvbiBN
YWMgZm9yIHNsaWdodCBjb2xvciBkaWZmZXJlbmNlcywKKyMgcGxlYXNlIHNlZSB0aGUgcmVsZXZh
bnQgYnVnOiBodHRwOi8vd2Via2l0Lm9yZy9iLzEwNzQ4Nwogd2Via2l0Lm9yZy9iLzEwNzQ4NyBj
c3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItYmxlbmQtZnJhY3Rpb25hbC1kZXN0aW5h
dGlvbi1hbHBoYS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTA3NDg3IGNzczMvZmlsdGVy
cy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1s
IFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTA3NDg3IGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9t
LWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1sdW1pbm9zaXR5Lmh0bWwgWyBTa2lwIF0K
IAogIyAtLS0gVGV4dCAtLS0KIGZhc3QvZm9ybXMvdGV4dC1jb250cm9sLWludHJpbnNpYy13aWR0
aHMuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190358</attachid>
            <date>2013-02-26 13:59:22 -0800</date>
            <delta_ts>2013-02-26 16:20:58 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106226-20130226135537.patch</filename>
            <type>text/plain</type>
            <size>21664</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU2Mjg0OTFhODJlZjQx
MDBjMGJlZGE3ZGJjNjhhZWRhZDQzYWU3MC4uM2RlOTE0MjdlYjc2ZTQ4YmRlYjJiYmJiZjFlMmE0
NjU5NjVjMjI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTI1ICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSBJbXBsZW1lbnQgY29sb3IgYW5kIGx1bWlub3NpdHkgbm9uLXNlcGFyYWJs
ZSBibGVuZCBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA2MjI2CisKKyAgICAgICAgQWRkZWQgdGhlIGZvbGxvd2luZyBHTFNMIGhlbHBlciBm
dW5jdGlvbnMgdG8gdGhlIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06CisKKyAgICAgICAg
ICAgIC0gY3NzX0x1bShDKTogcmV0dXJucyB0aGUgbHVtaW5vc2l0eSBmb3IgdGhlIGNvbG9yIEMK
KyAgICAgICAgICAgIC0gY3NzX0NsaXBDb2xvcihDKTogY2xpcHMgY29sb3IgQworICAgICAgICAg
ICAgLSBjc3NfU2V0THVtKEMsIGwpOiBzZXRzIHRoZSBsdW1pbm9zaXR5IGwgb24gdGhlIGNvbG9y
IEMKKworICAgICAgICBUaGUgYWJvdmUgZnVuY3Rpb25zIGFyZSBiZWluZyB1c2VkIGZvciB0aGUg
ImNvbG9yIiBhbmQgImx1bWlub3NpdHkiIG5vbi1zZXBhcmFibGUKKyAgICAgICAgYmxlbmQgbW9k
ZXMsIHRoZSByZWxldmFudCBzcGVjIGZvciBzdWNoIG1vZGVzIGlzIGF0IFVSTDoKKyAgICAgICAg
aHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9GWFRGL3Jhd2ZpbGUvdGlwL2NvbXBvc2l0aW5nL2luZGV4
Lmh0bWwjYmxlbmRpbmdub25zZXBhcmFibGUKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEph
Y2tzb24uCisKKyAgICAgICAgVGVzdHM6IGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRl
ci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1sCisgICAgICAgICAgICAgICBjc3Mz
L2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVt
aW5vc2l0eS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3Rv
bUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmls
dGVyVmFsaWRhdGVkUHJvZ3JhbTo6YmxlbmRGdW5jdGlvblN0cmluZyk6CisKIDIwMTMtMDItMjYg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjE0Mzk4Nik6IGZhc3QvZmlsZXMvcmV2b2tlLWJsb2ItdXJsLmh0bWwgYXNzZXJ0cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0
ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKaW5kZXggY2I1NWM1ZTI3
NTVmNzgxYmJjNGM2NjhiZDdhMjBmMDEwMDNjMjc3ZC4uNThlYmUzNGQ5NmRmNjQ1MDZhMGQ5NDRh
ZWNjYzRiODI5NjY3YzcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRl
ZFByb2dyYW0uY3BwCkBAIC0yOTEsNiArMjkxLDggQEAgU3RyaW5nIEN1c3RvbUZpbHRlclZhbGlk
YXRlZFByb2dyYW06OmJsZW5kRnVuY3Rpb25TdHJpbmcoQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAg
ICAvLyBDYjogaXMgdGhlIGJhY2tkcm9wIGNvbG9yIGluIGNzc19CbGVuZENvbG9yKCkgYW5kIHRo
ZSBiYWNrZHJvcCBjb2xvciBjb21wb25lbnQgaW4gY3NzX0JsZW5kQ29tcG9uZW50KCkKICAgICBj
b25zdCBjaGFyKiBibGVuZENvbG9yRXhwcmVzc2lvbiA9ICJ2ZWMzKGNzc19CbGVuZENvbXBvbmVu
dChDYi5yLCBDcy5yKSwgY3NzX0JsZW5kQ29tcG9uZW50KENiLmcsIENzLmcpLCBjc3NfQmxlbmRD
b21wb25lbnQoQ2IuYiwgQ3MuYikpIjsKICAgICBjb25zdCBjaGFyKiBibGVuZENvbXBvbmVudEV4
cHJlc3Npb24gPSAiQ28gPSAwLjA7IjsKKyAgICBib29sIG5lZWRzTHVtaW5vc2l0eUhlbHBlckZ1
bmN0aW9ucyA9IGZhbHNlOworICAgIFN0cmluZyBibGVuZEZ1bmN0aW9uU3RyaW5nOwogICAgIHN3
aXRjaCAoYmxlbmRNb2RlKSB7CiAgICAgY2FzZSBCbGVuZE1vZGVOb3JtYWw6CiAgICAgICAgIGJs
ZW5kQ29sb3JFeHByZXNzaW9uID0gIkNzIjsKQEAgLTQwNSwxNSArNDA3LDQ2IEBAIFN0cmluZyBD
dXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpibGVuZEZ1bmN0aW9uU3RyaW5nKEJsZW5kTW9k
ZSBibGVuZE1vZGUpCiAgICAgICAgICAgICAgICAgQ28gPSBDYiArICgyLjAgKiBDcyAtIDEuMCkg
KiAoRCAtIENiKTsKICAgICAgICAgKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCbGVuZE1v
ZGVIdWU6Ci0gICAgY2FzZSBCbGVuZE1vZGVTYXR1cmF0aW9uOgogICAgIGNhc2UgQmxlbmRNb2Rl
Q29sb3I6CisgICAgICAgIG5lZWRzTHVtaW5vc2l0eUhlbHBlckZ1bmN0aW9ucyA9IHRydWU7Cisg
ICAgICAgIGJsZW5kQ29sb3JFeHByZXNzaW9uID0gImNzc19TZXRMdW0oQ3MsIGNzc19MdW0oQ2Ip
KSI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlTHVtaW5vc2l0eToKKyAgICAg
ICAgbmVlZHNMdW1pbm9zaXR5SGVscGVyRnVuY3Rpb25zID0gdHJ1ZTsKKyAgICAgICAgYmxlbmRD
b2xvckV4cHJlc3Npb24gPSAiY3NzX1NldEx1bShDYiwgY3NzX0x1bShDcykpIjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVIdWU6CisgICAgY2FzZSBCbGVuZE1vZGVTYXR1cmF0
aW9uOgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAgICAgfQogCi0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KFNIQURFUigKKyAgICBpZiAobmVl
ZHNMdW1pbm9zaXR5SGVscGVyRnVuY3Rpb25zKSB7CisgICAgICAgIGJsZW5kRnVuY3Rpb25TdHJp
bmcuYXBwZW5kKFNIQURFUigKKyAgICAgICAgICAgIG1lZGl1bXAgZmxvYXQgY3NzX0x1bShtZWRp
dW1wIHZlYzMgQykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMC4zICog
Qy5yICsgMC41OSAqIEMuZyArIDAuMTEgKiBDLmI7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBtZWRpdW1wIHZlYzMgY3NzX0NsaXBDb2xvcihtZWRpdW1wIHZlYzMgQykKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBtZWRpdW1wIGZsb2F0IEwgPSBjc3NfTHVtKEMpOworICAgICAg
ICAgICAgICAgIG1lZGl1bXAgZmxvYXQgbiA9IG1pbihtaW4oQy5yLCBDLmcpLCBDLmIpOworICAg
ICAgICAgICAgICAgIG1lZGl1bXAgZmxvYXQgeCA9IG1heChtYXgoQy5yLCBDLmcpLCBDLmIpOwor
ICAgICAgICAgICAgICAgIGlmIChuIDwgMC4wKQorICAgICAgICAgICAgICAgICAgICBDID0gTCAr
ICgoKEMgLSBMKSAqIEwpIC8gKEwgLSBuKSk7CisgICAgICAgICAgICAgICAgaWYgKHggPiAxLjAp
CisgICAgICAgICAgICAgICAgICAgIEMgPSBMICsgKCgoQyAtIEwpICogKDEuMCAtIEwpIC8gKHgg
LSBMKSkpOworICAgICAgICAgICAgICAgIHJldHVybiBDOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgbWVkaXVtcCB2ZWMzIGNzc19TZXRMdW0obWVkaXVtcCB2ZWMzIEMsIG1lZGl1bXAgZmxv
YXQgbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDICs9IGwgLSBjc3NfTHVtKEMp
OworICAgICAgICAgICAgICAgIHJldHVybiBjc3NfQ2xpcENvbG9yKEMpOworICAgICAgICAgICAg
fQorICAgICAgICApKTsKKyAgICB9CisKKyAgICBibGVuZEZ1bmN0aW9uU3RyaW5nLmFwcGVuZChT
dHJpbmc6OmZvcm1hdChTSEFERVIoCiAgICAgICAgIG1lZGl1bXAgZmxvYXQgY3NzX0JsZW5kQ29t
cG9uZW50KG1lZGl1bXAgZmxvYXQgQ2IsIG1lZGl1bXAgZmxvYXQgQ3MpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIG1lZGl1bXAgZmxvYXQgQ287CkBAIC00MjQsNyArNDU3LDkgQEAgU3RyaW5nIEN1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OmJsZW5kRnVuY3Rpb25TdHJpbmcoQmxlbmRNb2Rl
IGJsZW5kTW9kZSkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuICVzOwogICAgICAgICB9
Ci0gICAgKSwgYmxlbmRDb21wb25lbnRFeHByZXNzaW9uLCBibGVuZENvbG9yRXhwcmVzc2lvbik7
CisgICAgKSwgYmxlbmRDb21wb25lbnRFeHByZXNzaW9uLCBibGVuZENvbG9yRXhwcmVzc2lvbikp
OworCisgICAgcmV0dXJuIGJsZW5kRnVuY3Rpb25TdHJpbmc7CiB9CiAKIFN0cmluZyBDdXN0b21G
aWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpjb21wb3NpdGVGdW5jdGlvblN0cmluZyhDb21wb3NpdGVP
cGVyYXRvciBjb21wb3NpdGVPcGVyYXRvcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NmFhNGE0NjhiNGUyYjdmNWMwYmNh
MjViMGNjMGU0ZjJjNGE4M2JlLi44NGE4ZWE2OThlZTMwNDFiODc0YzUzMGI4ZDA2NzdjZDVjYTc3
OTA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDItMjUgIE1pY2hlbGFuZ2VsbyBEZSBT
aW1vbmUgIDxtaWNoZWxhbmdlbG9Ad2Via2l0Lm9yZz4KKworICAgICAgICBbQ1NTIFNoYWRlcnNd
IEltcGxlbWVudCBjb2xvciBhbmQgbHVtaW5vc2l0eSBub24tc2VwYXJhYmxlIGJsZW5kIG1vZGVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYyMjYK
KworICAgICAgICBBZGRlZCByZWxldmFudCB0ZXN0cyBmb3IgdGhlICJjb2xvciIgYW5kICJsdW1p
bm9zaXR5IiBub24tc2VwYXJhYmxlIGJsZW5kIG1vZGVzLgorICAgICAgICBUaGVzZSB0ZXN0cyBh
cmUgY3VycmVudGx5IHNraXBwZWQgb24gTWFjIGR1ZSB0byBhIHNsaWdodCBjb2xvciBkaWZmZXJl
bmNlOyBwbGVhc2UKKyAgICAgICAgc2VlIHJlbGV2YW50IGJ1ZzogaHR0cDovL3dlYmtpdC5vcmcv
Yi8xMDc0ODcuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAg
ICogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1t
b2RlLWNvbG9yLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9j
dXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2Vw
YXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5k
LW1vZGUtbHVtaW5vc2l0eS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0yNiAgU3RlcGhlbiBDaGVu
bmV5ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gTmV3IGJh
c2VsaW5lcyBmb3IgY3NzMy1tb2RzZWwtMTVjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29s
b3ItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9t
LWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci1leHBlY3RlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU5NjNhNjE3OTc0YTNhYWYzMjNiMjI2ZmYwM2JkN2QxNzM0OTIyZWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXIt
bm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtY29sb3ItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM2
IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRs
ZT5UZXN0IHRoYXQgYmxlbmRzIHRoZSBzb3VyY2UgYW5kIHRoZSBiYWNrZHJvcCB3aXRoIHRoZSBj
b2xvciBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAg
ICAgICAgLyogVGhlc2UgYXJlIGV4YWN0bHkgdGhlIGNvbG9yIHZhbHVlcyB3ZSBleHBlY3QuIFNv
bWUgcGxhdGZvcm1zIG1heSBoYXZlIHNsaWdodGx5IGRpZmZlcmVudAorICAgICAgICAgICBjb2xv
ciByZXN1bHQuICovCisgICAgICAgICNzb2xpZC1zb2xpZCB7CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZ2IoMTA4LCAxNTcsIDI1NSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNhbHBoYS1z
b2xpZCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTY3LCAxOTIsIDI0Mik7
CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgICAgICB9CisgICAgICAgICNzb2xpZC1hbHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZ2IoMTY5LCAxNDIsIDE2Nik7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNhbHBoYS1hbHBo
YSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA1LCAxOTIsIDIwNCk7Cisg
ICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNvbGlk
LXNvbGlkIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJhbHBoYS1zb2xpZCI+PC9kaXY+CisgICAgPGRp
diBpZD0ic29saWQtYWxwaGEiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImFscGhhLWFscGhhIj48L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVy
cy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1jb2xvci5odG1s
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFy
YWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MzNzA0MDBlMWI5OWIzZDQ4
NzkwOTdkNzM4Mjk4MmEzNTBlYWY1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1j
b2xvci5odG1sCkBAIC0wLDAgKzEsMTI5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sIGxhbmc9
ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0IHRoYXQgYmxlbmRzIHRoZSBzb3VyY2UgYW5k
IHRoZSBiYWNrZHJvcCB3aXRoIHRoZSBjb2xvciBibGVuZCBtb2RlLjwvdGl0bGU+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVu
YWJsZWQiLCAiMSIpOworICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVm
ZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgI3NvbGlkLXNvbGlkIHsK
KyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5MCUsIDUwJSwgMzAlKTsKKyAgICAg
ICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAg
ICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21p
eC1jb2xvci5mcycpIGNvbG9yIHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDAuMiAwLjQgMC44IDEu
MCk7CisgICAgICAgIH0KKyAgICAgICAgI2FscGhhLXNvbGlkIHsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHJnYmEoOTAlLCA1MCUsIDMwJSwgMC41KTsKKyAgICAgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAtd2Via2l0
LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycp
IGNvbG9yIHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDAuMiAwLjQgMC44IDEuMCk7CisgICAgICAg
IH0KKyAgICAgICAgI3NvbGlkLWFscGhhIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IHJnYig5MCUsIDUwJSwgMzAlKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5v
bmUgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIGNvbG9yIHNvdXJjZS1hdG9w
KSwgbWl4X2NvbG9yIDAuMiAwLjQgMC44IDAuNSk7CisgICAgICAgIH0KKyAgICAgICAgI2FscGhh
LWFscGhhIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTAlLCA1MCUsIDMw
JSwgMC41KTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDog
MTAwcHg7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgn
Li4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIGNvbG9yIHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9y
IDAuMiAwLjQgMC44IDAuNSk7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8IS0tCisgICAgVGhlIGZvbGxvd2luZyBwcm9vZiBhcHBsaWVzIHRvIHRoZSBmaXJzdCBj
YXNlICgjc29saWQtc29saWQpIHdoZXJlIGJvdGggdGhlIGJhY2tkcm9wIGFuZCB0aGUKKyAgICBz
b3VyY2UgYXJlIHNvbGlkLgorCisgICAgSW4gdGhpcyB0ZXN0IHRoZSBmb2xsb3dpbmcgY29tYmlu
YXRpb25zIGFyZSBhbHNvIHRlc3RlZDoKKyAgICAgICAgQmFja2Ryb3Agd2l0aCAwLjUgYWxwaGEg
YmxlbmRlZCB3aXRoIHNvbGlkIHNvdXJjZQorICAgICAgICBTb2xpZCBiYWNrZHJvcCBibGVuZGVk
IHdpdGggc291cmNlIHdpdGggMC41IGFscGhhCisgICAgICAgIEJhY2tkcm9wIHdpdGggMC41IGJs
ZW5kZWQgd2l0aCBzb3VyY2Ugd2l0aCAwLjUgYWxwaGEKKyAgICBUaGUgdW5kZXJsYXlpbmcgcHJv
b2Ygb2YgdGhlIGFib3ZlIG1lbnRpb25lZCBjYXNlcyBpcyB0aGUgc2FtZTogdGhlIGNvbG9ycyBh
cmUgcHJlbXVsdGlwbGllZAorICAgIGFuZCB0aGVuIGJsZW5kZWQgdG9nZXRoZXIuCisKKyAgICBU
aGUgZmluYWwgY29sb3Igb2YgI3NvbGlkLXNvbGlkIGRlcGVuZHMgb24gdGhlICJjb2xvciIgYmxl
bmQgbW9kZSwgd2hpY2ggaXMgYSBub24tc2VwYXJhYmxlCisgICAgYmxlbmQgbW9kZS4gVGhpcyBt
ZWFucyB0aGF0IGNvbG9ycyBhcmUgYmxlbmRlZCB0b2dldGhlciBhcyBhIHdob2xlLCBub3QgY29t
cG9uZW50IGJ5IGNvbXBvbmVudC4KKworICAgIFRoZSBmb3JtdWxhIGZvciB0aGlzIGJsZW5kIG1v
ZGUgaXM6CisgICAgICAgIENyID0gQihDYiwgQ3MpID0gU2V0THVtKENzLCBMdW0oQ2IpKQorCisg
ICAgV2l0aDoKKyAgICAgICAgQ3I6IHRoZSByZXN1bHRpbmcgY29sb3IKKyAgICAgICAgQ2I6IHRo
ZSBiYWNrZHJvcCBjb2xvciwgd2hpY2ggaXMgI3NvbGlkLXNvbGlkICgib3JpZ2luYWwgRE9NIGVs
ZW1lbnQgY29sb3IiKQorICAgICAgICBDczogdGhlIHNvdXJjZSBjb2xvciwgd2hpY2ggaXMgbWl4
X2NvbG9yCisgICAgICAgIEx1bShDYik6IHRoZSBsdW1pbm9zaXR5IG9mIENiLiBMdW1pbm9zaXR5
IGZvciBjb2xvciBDIGlzIGdlbmVyYWxseSBkZWZpbmVkIGJ5CisgICAgICAgICAgIEx1bShDKTog
MC4zICogQ3JlZCArIDAuNTkgKiBDZ3JlZW4gKyAwLjExICogQ2JsdWUKKyAgICAgICAgU2V0THVt
KENzLCBMdW0oQ2IpKTogdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgbHVtaW5vc2l0eS4KKwor
ICAgIFRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1bWlub3NpdHkgbCBvbiB0aGUgY29sb3Ig
QyBpcyBnZW5lcmFsbHkgZGVmaW5lZCBieToKKworICAgICAgICBTZXRMdW0oQywgbCkKKyAgICAg
ICAgICAgIGQgPSBsIC0gTHVtKEMpCisgICAgICAgICAgICBDcmVkID0gQ3JlZCArIGQKKyAgICAg
ICAgICAgIENncmVlbiA9IENncmVlbiArIGQKKyAgICAgICAgICAgIENibHVlID0gQ2JsdWUgKyBk
CisgICAgICAgICAgICByZXR1cm4gQ2xpcENvbG9yKEMpCisKKyAgICBBdCB0aGlzIHBvaW50IHRo
ZSBjb2xvciBDIGhhcyB0byBiZSBjbGlwcGVkIGJldHdlZW4gWzAuLjFdICBieSB0aGUgQ2xpcENv
bG9yIGZ1bmN0aW9uLCB3aGljaCBpcworICAgIGdlbmVyYWxseSBkZWZpbmVkIGJ5OgorCisgICAg
ICAgIENsaXBDb2xvcihDKQorICAgICAgICAgICAgbCA9IEx1bShDKQorICAgICAgICAgICAgbiA9
IG1pbihDcmVkLCBDZ3JlZW4sIENibHVlKQorICAgICAgICAgICAgeCA9IG1heChDcmVkLCBDZ3Jl
ZW4sIENibHVlKQorICAgICAgICAgICAgaWYgbiA8IDAuMAorICAgICAgICAgICAgICAgIENyZWQg
PSBsICsgKCgoQ3JlZCAtIGwpICogbCkgLyAobCAtIG4pKQorICAgICAgICAgICAgICAgIENncmVl
biA9IGwgKyAoKChDZ3JlZW4gLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgICAgICBD
Ymx1ZSA9IGwgKyAoKChDYmx1ZSAtIGwpICogbCkgLyAobCAtIG4pKQorICAgICAgICAgICAgaWYg
eCA+IDEuMAorICAgICAgICAgICAgICAgIENyZWQgPSBsICsgKCgoQ3JlZCAtIGwpICogKDEgLSBs
KSkgLyAoeCAtIGwpKQorICAgICAgICAgICAgICAgIENncmVlbiA9IGwgKyAoKChDZ3JlZW4gLSBs
KSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDYmx1ZSA9IGwgKyAoKChD
Ymx1ZSAtIGwpICogKDEgLSBsKSkgLyAoeCAtIGwpKQorICAgICAgICAgICAgcmV0dXJuIEMKKwor
ICAgIEluIHRoaXMgdGVzdCBjYXNlOgorICAgICAgICBMdW0oQ2IpID0gMC4zICogMC45ICsgMC41
OSAqIDAuNSArIDAuMTEgKiAwLjMKKyAgICAgICAgTHVtKENiKSA9IDAuMjcgKyAwLjI5NSArIDAu
MDMzCisgICAgICAgIEx1bShDYikgPSAwLjU5OAorCisgICAgICAgIEx1bShDcykgPSAwLjMgKiAw
LjIgKyAwLjU5ICogMC40ICsgMC4xMSAqIDAuOAorICAgICAgICBMdW0oQ3MpID0gMC4wNiArIDAu
MjM2ICsgMC4wODgKKyAgICAgICAgTHVtKENzKSA9IDAuMzg0CisKKyAgICAgICAgQ3IgPSBTZXRM
dW0oQ3MsIDAuNTk4KQorICAgICAgICAgICAgZCA9IDAuNTk4IC0gTHVtKENzKQorICAgICAgICAg
ICAgZCA9IDAuNTk4IC0gMC4zODQKKyAgICAgICAgICAgIGQgPSAwLjIxNAorICAgICAgICAgICAg
Q3JlZCA9IDAuMiArIDAuMjE0ID0gMC40MTQKKyAgICAgICAgICAgIEdyZWVuID0gMC40ICsgMC4y
MTQgPSAwLjYxNAorICAgICAgICAgICAgQ2JsdWUgPSAwLjggKyAwLjIxNCA9IDEuMDE0CisgICAg
ICAgICAgICByZXR1cm4gQ2xpcENvbG9yKDAuNDE0LCAwLjYxNCwgMS4wMTQpCisKKyAgICAgICAg
Q2xpcENvbG9yKDAuNDE0LCAwLjYxNCwgMS4wMTQpCisgICAgICAgICAgICBsID0gMC4zICogMC40
MTQgKyAwLjU5ICogMC42MTQgKyAwLjExICogMS4xMDE0ID0gMC4xMjQyICsgMC4zNjIyNiArIDAu
MTIxMTU0ID0gMC42MDc2MTQKKyAgICAgICAgICAgIG4gPSBtaW4oMC40MTQsIDAuNjE0LCAxLjAx
NCkgPSAwLjQxNAorICAgICAgICAgICAgeCA9IG1heCgwLjQxNCwgMC42MTQsIDEuMDE0KSA9IDEu
MDE0CisgICAgICAgICAgICB4ID4gMS4wCisgICAgICAgICAgICAgICAgQ3JlZCA9IDAuNjA3NjE0
ICsgKCgoMC40MTQgLSAwLjYwNzYxNCkgKiAoMSAtIDAuNjA3NjE0KSkgLyAoMS4wMTQgLSAwLjYw
NzYxNCkpID0gCisgICAgICAgICAgICAgICAgICAgICA9IDAuNjA3NjE0ICsgKCgtMC4xOTM2MTQg
KiAwLjM5MjM4NikgLyAwLjQwNjM4NikgPSAwLjYwNzYxNCAtICgwLjA3NTk3MTQyIC8gMC40MDYz
ODYpID0gMC42MDc2MTQgLSAwLjE4Njk0Mzk5ID0gMC40MjA2NzAwMQorICAgICAgICAgICAgICAg
IENncmVlbiA9IDAuNjA3NjE0ICsgKCgoMC42MTQgLSAwLjYwNzYxNCkgKiAoMSAtIDAuNjA3NjE0
KSkgLyAoMS4wMTQgLSAwLjYwNzYxNCkpID0KKyAgICAgICAgICAgICAgICAgICAgICAgPSAwLjYw
NzYxNCArICgoMC4wMDMzODYgKiAwLjM5MjM4NikgLyAwLjQwNjM4NiA9IDAuNjA3NjE0ICsgKDAu
MDAxMzI4NjIgLyAwLjQwNjM4NikgPSAwLjYwNzYxNCArIDAuMDAzMjY5MzUgPSAwLjYxMDg4MzM1
CisgICAgICAgICAgICAgICAgQ2JsdWUgPSAwLjYwNzYxNCArICgoKDEuMDE0IC0gMC42MDc2MTQp
ICogKDEgLSAwLjYwNzYxNCkpIC8gKDEuMDE0IC0gMC42MDc2MTQpID0KKyAgICAgICAgICAgICAg
ICAgICAgICA9IDAuNjA3NjE0ICsgKCgwLjQwNjM4NiAqIDAuMzkyMzg2KSAvIDAuNDA2Mzg2KSA9
IDAuNjA3NjE0ICsgKDAuMTU5NDYwMTggLyAwLjQwNjM4NikgPSAwLjYwNzYxNCArIDAuMzkyMzg2
MDEgPSAxLjAKKyAgICAgICAgICAgIHJldHVybiAoMC40MiwgMC42MSwgMS4wKQorCisgICAgVGhp
cyB2YWx1ZSBpcyBlcXVpdmFsZW50IHRvICgxMDgsIDE1NywgMjU1KSwgd2hpY2ggaXMgdGhlIGV4
cGVjdGVkIGNvbG9yLgorICAgIFRoaXMgaXMgdGhlIGV4YWN0IGNvbG9yIHZhbHVlLCBvdGhlciBw
b3J0cyBtaWdodCBleHBlcmllbmNlIHNsaWdodCBkaWZmZXJlbmNlcy4KKy0tPgorICAgIDxkaXYg
aWQ9InNvbGlkLXNvbGlkIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJhbHBoYS1zb2xpZCI+PC9kaXY+
CisgICAgPGRpdiBpZD0ic29saWQtYWxwaGEiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImFscGhhLWFs
cGhhIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9kZS1s
dW1pbm9zaXR5LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9t
L2N1c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS1leHBlY3Rl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkwOWFhYzM4YmQ1M2ExNjExYTU2MDMxNjAwZjZiZjgwMTcwMDZk
OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1
c3RvbS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWwgbGFuZz0iZW4iPgor
PGhlYWQ+CisgICAgPHRpdGxlPlRlc3QgdGhhdCBibGVuZHMgdGhlIHNvdXJjZSBhbmQgdGhlIGJh
Y2tkcm9wIHdpdGggdGhlIGNvbG9yIGJsZW5kIG1vZGUuPC90aXRsZT4KKyAgICA8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgorICAgICAgICAvKiBUaGVyZSBhcmUgZXhhY3RseSB0aGUgY29sb3IgdmFs
dWVzIHdlIGV4cGVjdC4gU29tZSBwbGF0Zm9ybXMgbWF5IGhhdmUgc2xpZ2h0bHkgZGlmZmVyZW50
CisgICAgICAgICAgIGNvbG9yIHJlc3VsdC4gKi8KKyAgICAgICAgI3NvbGlkLXNvbGlkIHsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5OCwgMzMsIDApOworICAgICAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAg
ICAgICAjYWxwaGEtc29saWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4
NCwgMTcyLCAxODQpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjc29saWQtYWxwaGEgeworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwMywgMTAxLCA0OSk7CisgICAgICAgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAg
ICNhbHBoYS1hbHBoYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjEzLCAx
ODIsIDE3NSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6
IDEwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxk
aXYgaWQ9InNvbGlkLXNvbGlkIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJhbHBoYS1zb2xpZCI+PC9k
aXY+CisgICAgPGRpdiBpZD0ic29saWQtYWxwaGEiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImFscGhh
LWFscGhhIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ub25zZXBhcmFibGUtYmxlbmQtbW9k
ZS1sdW1pbm9zaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3Rv
bS1maWx0ZXItbm9uc2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVlOTdjMDBmZDg1ODc3YTYxYWI0YmIyNDY4NjhiMGZjZmRlNzYzZjcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItbm9u
c2VwYXJhYmxlLWJsZW5kLW1vZGUtbHVtaW5vc2l0eS5odG1sCkBAIC0wLDAgKzEsMTI4IEBACis8
IURPQ1RZUEUgSFRNTD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0
IHRoYXQgYmxlbmRzIHRoZSBzb3VyY2UgYW5kIHRoZSBiYWNrZHJvcCB3aXRoIHRoZSBsdW1pbm9z
aXR5IGJsZW5kIG1vZGUuPC90aXRsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJl
ZmVyZW5jZSgiV2ViS2l0Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxl
ZCIsICIxIik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorICAgICAgICAjc29saWQtc29saWQgeworICAgICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmdiKDkwJSwgNTAlLCAzMCUpOworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAg
ICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0
b20obm9uZSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbHVtaW5vc2l0eSBz
b3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjEgMC4yIDAuNCAxLjApOworICAgICAgICB9CisgICAg
ICAgICNhbHBoYS1zb2xpZCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDkw
JSwgNTAlLCAzMCUsIDAuNSk7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAg
ICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25l
IG1peCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBsdW1pbm9zaXR5IHNvdXJjZS1h
dG9wKSwgbWl4X2NvbG9yIDAuMiAwLjQgMC44IDEuMCk7CisgICAgICAgIH0KKyAgICAgICAgI3Nv
bGlkLWFscGhhIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig5MCUsIDUwJSwg
MzAlKTsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAw
cHg7CisgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgbWl4KHVybCgnLi4v
cmVzb3VyY2VzL21peC1jb2xvci5mcycpIGx1bWlub3NpdHkgc291cmNlLWF0b3ApLCBtaXhfY29s
b3IgMC4yIDAuNCAwLjggMC41KTsKKyAgICAgICAgfQorICAgICAgICAjYWxwaGEtYWxwaGEgewor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MCUsIDUwJSwgMzAlLCAwLjUpOwor
ICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSBtaXgodXJsKCcuLi9yZXNvdXJj
ZXMvbWl4LWNvbG9yLmZzJykgbHVtaW5vc2l0eSBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAwLjIg
MC40IDAuOCAwLjUpOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PCEtLQorICAgIFRoZSBmb2xsb3dpbmcgcHJvb2YgYXBwbGllcyB0byB0aGUgZmlyc3QgY2FzZSAo
I3NvbGlkLXNvbGlkKSB3aGVyZSBib3RoIHRoZSBiYWNrZHJvcCBhbmQgdGhlCisgICAgc291cmNl
IGFyZSBzb2xpZC4KKworICAgIEluIHRoaXMgdGVzdCB0aGUgZm9sbG93aW5nIGNvbWJpbmF0aW9u
cyBhcmUgYWxzbyB0ZXN0ZWQ6CisgICAgICAgIEJhY2tkcm9wIHdpdGggMC41IGFscGhhIGJsZW5k
ZWQgd2l0aCBzb2xpZCBzb3VyY2UKKyAgICAgICAgU29saWQgYmFja2Ryb3AgYmxlbmRlZCB3aXRo
IHNvdXJjZSB3aXRoIDAuNSBhbHBoYQorICAgICAgICBCYWNrZHJvcCB3aXRoIDAuNSBibGVuZGVk
IHdpdGggc291cmNlIHdpdGggMC41IGFscGhhCisgICAgVGhlIHVuZGVybGF5aW5nIHByb29mIG9m
IHRoZSBhYm92ZSBtZW50aW9uZWQgY2FzZXMgaXMgdGhlIHNhbWU6IHRoZSBjb2xvcnMgYXJlIHBy
ZW11bHRpcGxpZWQKKyAgICBhbmQgdGhlbiBibGVuZGVkIHRvZ2V0aGVyLgorCisgICAgVGhlIGZp
bmFsIGNvbG9yIG9mICNzb2xpZC1zb2xpZCBkZXBlbmRzIG9uIHRoZSAibHVtaW5vc2l0eSIgYmxl
bmQgbW9kZSwgd2hpY2ggaXMgYSBub24tc2VwYXJhYmxlCisgICAgYmxlbmQgbW9kZS4gVGhpcyBt
ZWFucyB0aGF0IGNvbG9ycyBhcmUgYmxlbmRlZCB0b2dldGhlciBhcyBhIHdob2xlLCBub3QgY29t
cG9uZW50IGJ5IGNvbXBvbmVudC4KKworICAgIFRoZSBmb3JtdWxhIGZvciB0aGlzIGJsZW5kIG1v
ZGUgaXM6CisgICAgICAgIENyID0gQihDYiwgQ3MpID0gU2V0THVtKENiLCBMdW0oQ3MpKQorCisg
ICAgV2l0aDoKKyAgICAgICAgQ3I6IHRoZSByZXN1bHRpbmcgY29sb3IKKyAgICAgICAgQ2I6IHRo
ZSBiYWNrZHJvcCBjb2xvciwgd2hpY2ggaXMgI3NvbGlkLXNvbGlkICgib3JpZ2luYWwgRE9NIGVs
ZW1lbnQgY29sb3IiKQorICAgICAgICBDczogdGhlIHNvdXJjZSBjb2xvciwgd2hpY2ggaXMgbWl4
X2NvbG9yCisgICAgICAgIEx1bShDcyk6IHRoZSBsdW1pbm9zaXR5IG9mIENzLiBMdW1pbm9zaXR5
IGZvciBjb2xvciBDIGlzIGdlbmVyYWxseSBkZWZpbmVkIGJ5CisgICAgICAgICAgIEx1bShDKTog
MC4zICogQ3JlZCArIDAuNTkgKiBDZ3JlZW4gKyAwLjExICogQ2JsdWUKKyAgICAgICAgU2V0THVt
KENiLCBMdW0oQ3MpKTogdGhlIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgbHVtaW5vc2l0eS4KKwor
ICAgIFRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGx1bWlub3NpdHkgbCBvbiB0aGUgY29sb3Ig
QyBpcyBnZW5lcmFsbHkgZGVmaW5lZCBieToKKworICAgICAgICBTZXRMdW0oQywgbCkKKyAgICAg
ICAgICAgIGQgPSBsIC0gTHVtKEMpCisgICAgICAgICAgICBDcmVkID0gQ3JlZCArIGQKKyAgICAg
ICAgICAgIENncmVlbiA9IENncmVlbiArIGQKKyAgICAgICAgICAgIENibHVlID0gQ2JsdWUgKyBk
CisgICAgICAgICAgICByZXR1cm4gQ2xpcENvbG9yKEMpCisKKyAgICBBdCB0aGlzIHBvaW50IHRo
ZSBjb2xvciBDIGhhcyB0byBiZSBjbGlwcGVkIGJldHdlZW4gWzAuLjFdICBieSB0aGUgQ2xpcENv
bG9yIGZ1bmN0aW9uLCB3aGljaCBpcworICAgIGdlbmVyYWxseSBkZWZpbmVkIGJ5OgorCisgICAg
ICAgIENsaXBDb2xvcihDKQorICAgICAgICAgICAgbCA9IEx1bShDKQorICAgICAgICAgICAgbiA9
IG1pbihDcmVkLCBDZ3JlZW4sIENibHVlKQorICAgICAgICAgICAgeCA9IG1heChDcmVkLCBDZ3Jl
ZW4sIENibHVlKQorICAgICAgICAgICAgaWYgbiA8IDAuMAorICAgICAgICAgICAgICAgIENyZWQg
PSBsICsgKCgoQ3JlZCAtIGwpICogbCkgLyAobCAtIG4pKQorICAgICAgICAgICAgICAgIENncmVl
biA9IGwgKyAoKChDZ3JlZW4gLSBsKSAqIGwpIC8gKGwgLSBuKSkKKyAgICAgICAgICAgICAgICBD
Ymx1ZSA9IGwgKyAoKChDYmx1ZSAtIGwpICogbCkgLyAobCAtIG4pKQorICAgICAgICAgICAgaWYg
eCA+IDEuMAorICAgICAgICAgICAgICAgIENyZWQgPSBsICsgKCgoQ3JlZCAtIGwpICogKDEgLSBs
KSkgLyAoeCAtIGwpKQorICAgICAgICAgICAgICAgIENncmVlbiA9IGwgKyAoKChDZ3JlZW4gLSBs
KSAqICgxIC0gbCkpIC8gKHggLSBsKSkKKyAgICAgICAgICAgICAgICBDYmx1ZSA9IGwgKyAoKChD
Ymx1ZSAtIGwpICogKDEgLSBsKSkgLyAoeCAtIGwpKQorICAgICAgICAgICAgcmV0dXJuIEMKKwor
ICAgIEluIHRoaXMgdGVzdCBjYXNlOgorICAgICAgICBMdW0oQ2IpID0gMC4zICogMC45ICsgMC41
OSAqIDAuNSArIDAuMTEgKiAwLjMKKyAgICAgICAgTHVtKENiKSA9IDAuMjcgKyAwLjI5NSArIDAu
MDMzCisgICAgICAgIEx1bShDYikgPSAwLjU5OAorCisgICAgICAgIEx1bShDcykgPSAwLjMgKiAw
LjEgKyAwLjU5ICogMC4yICsgMC4xMSAqIDAuNAorICAgICAgICBMdW0oQ3MpID0gMC4wMyArIDAu
MTE4ICsgMC4wNDQKKyAgICAgICAgTHVtKENzKSA9IDAuMTkyCisKKyAgIENyID0gU2V0THVtKENi
LCAwLjE5MikKKyAgICAgICAgZCA9IDAuMTkyIC0gMC41OTgKKyAgICAgICAgZCA9IDAuNDA2Cisg
ICAgICAgIENyZWQgPSAwLjkgLSAwLjQwNiA9IDAuNDk0CisgICAgICAgIENncmVlbiA9IDAuNSAt
IDAuNDA2ID0gMC4wOTQKKyAgICAgICAgQ2JsdWUgPSAwLjMgLSAwLjQwNiA9IC0wLjEwNgorICAg
ICAgICByZXR1cm4gQ2xpcENvbG9yKDAuNDk0LCAwLjA5NCwgLTAuMTA2KQorCisgICAgQ2xpcENv
bG9yKDAuNDk0LCAwLjA5NCwgLTAuMTA2KQorICAgICAgICBsID0gMC40OTQgKiAwLjMgKyAwLjA5
NCAqIDAuNTkgLSAwLjEwNiAqIDAuMTEgPSAwLjE0ODIgKyAwLjA1NTQ2IC0gMC4wMTE2NiA9IDAu
MTkyCisgICAgICAgIG4gPSBtaW4oMC40OTQsIDAuMDk0LCAtMC4xMDYpID0gLTAuMTA2CisgICAg
ICAgIHggPSBtYXgoMC40OTQsIDAuMDk0LCAtMC4xMDYpID0gMC40OTQKKyAgICAgICAgbiA8IDAu
MAorICAgICAgICAgICAgQ3JlZCA9IDAuMTkyICsgKCgoMC40OTQgLSAwLjE5MikgKiAwLjE5Mikg
LyAoMC4xOTIgKyAwLjEwNikpID0KKyAgICAgICAgICAgICAgICAgPSAwLjE5MiArICgwLjMwMiAq
IDAuMTkyKSAvIDAuMjk4ID0gMC4xOTIgKyAoMC4wNTc5ODQgLyAwLjI5OCkgPSAwLjE5MiArIDAu
MTk0NTc3MTggPSAwLjM4NjU3NzE4CisgICAgICAgICAgICBDZ3JlZW4gPSAwLjE5MiArICgoKDAu
MDk0IC0gMC4xOTIpICogMC4xOTIpIC8gKDAuMTkyICsgMC4xMDYpKSA9CisgICAgICAgICAgICAg
ICAgICAgPSAwLjE5MiArICgtMC4wOTggKiAwLjE5MikgLyAwLjI5OCA9IDAuMTkyIC0gKDAuMDE4
ODE2IC8gMC4yOTgpID0gMC4xOTIgLSAwLjA2MzE0MDk0ID0gMC4xMjg4NTkwNgorICAgICAgICAg
ICAgQ2JsdWUgPSAwLjE5MiArICgoKC0wLjEwNiAtIDAuMTkyKSAqIDAuMTkyKSAvICgwLjE5MiAr
IDAuMTA2KSkgPQorICAgICAgICAgICAgICAgICAgPSAwLjE5MiArICgtMC4yOTggKiAwLjE5Mikg
LyAwLjI5OCA9IDAuMTkyIC0gMC4xOTIgPSAwLjAKKyAgICAgICAgcmV0dXJuICgwLjM4NjU3NzE4
LCAwLjEyODg1OTA2LCAwLjAwKQorCisgICAgVGhpcyB2YWx1ZSBpcyBlcXVpdmFsZW50IHRvICg5
OCwgMzMsIDApLCB3aGljaCBpcyB0aGUgZXhwZWN0ZWQgY29sb3IuCisgICAgVGhpcyBpcyB0aGUg
ZXhhY3QgY29sb3IgdmFsdWUsIG90aGVyIHBvcnRzIG1pZ2h0IGV4cGVyaWVuY2Ugc2xpZ2h0IGRp
ZmZlcmVuY2VzLgorLS0+CisgICAgPGRpdiBpZD0ic29saWQtc29saWQiPjwvZGl2PgorICAgIDxk
aXYgaWQ9ImFscGhhLXNvbGlkIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzb2xpZC1hbHBoYSI+PC9k
aXY+CisgICAgPGRpdiBpZD0iYWxwaGEtYWxwaGEiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyZGQxNTYyOTZl
N2VjNmZmZmIwNzQwMDAxNDU5YmUwOWU5YzkwNGU2Li41MjJlYjQwYzlhNzczYjYwMjlmMzIyY2Zi
NzBiMDRjODBhYWQ1MDRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtOTQ5LDggKzk0OSwxMSBAQCBmYXN0L2NhbnZhcy9jYW52YXMtcXVhZHJhdGljLXNh
bWUtZW5kcG9pbnQuaHRtbAogY3NzMy9maWx0ZXJzL2NvbXBvc2l0ZWQtZHVyaW5nLXRyYW5zaXRp
b24tbGF5ZXJ0cmVlLmh0bWwKIAogIyAtLS0gQ3VzdG9tIEZpbHRlcnMgLS0tCi0jIFRoaXMgdGVz
dCBpcyBjdXJyZW50bHkgc2tpcHBlZCBvbiBNYWMgZm9yIHNsaWdodCBjb2xvciBkaWZmZXJlbmNl
cywgcGxlYXNlIHNlZSB0aGUgcmVsZXZhbnQgYnVnOiBodHRwOi8vd2Via2l0Lm9yZy9iLzEwNzQ4
NworIyBUaGUgZm9sbG93aW5nIDMgdGVzdHMgYXJlIGN1cnJlbnRseSBza2lwcGVkIG9uIE1hYyBm
b3Igc2xpZ2h0IGNvbG9yIGRpZmZlcmVuY2VzLAorIyBwbGVhc2Ugc2VlIHRoZSByZWxldmFudCBi
dWc6IGh0dHA6Ly93ZWJraXQub3JnL2IvMTA3NDg3CiB3ZWJraXQub3JnL2IvMTA3NDg3IGNzczMv
ZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci1ibGVuZC1mcmFjdGlvbmFsLWRlc3RpbmF0aW9u
LWFscGhhLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMDc0ODcgY3NzMy9maWx0ZXJzL2N1
c3RvbS9jdXN0b20tZmlsdGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWNvbG9yLmh0bWwgWyBT
a2lwIF0KK3dlYmtpdC5vcmcvYi8xMDc0ODcgY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmls
dGVyLW5vbnNlcGFyYWJsZS1ibGVuZC1tb2RlLWx1bWlub3NpdHkuaHRtbCBbIFNraXAgXQogCiAj
IC0tLSBUZXh0IC0tLQogZmFzdC9mb3Jtcy90ZXh0LWNvbnRyb2wtaW50cmluc2ljLXdpZHRocy5o
dG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>