<?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>109825</bug_id>
          
          <creation_ts>2013-02-14 06:36:50 -0800</creation_ts>
          <short_desc>[Text Autosizing] Combine narrow descendants of a cluster into groups that should be autosized with the same multiplier.</short_desc>
          <delta_ts>2013-02-19 04:47:13 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>109573</dependson>
          <blocked>107300</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anton Vayvod">avayvod</reporter>
          <assigned_to name="Anton Vayvod">avayvod</assigned_to>
          <cc>eric</cc>
    
    <cc>johnme</cc>
    
    <cc>kenneth</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>833027</commentid>
    <comment_count>0</comment_count>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-14 06:36:50 -0800</bug_when>
    <thetext>[Text Autosizing] Combine narrow descendants of a cluster into groups that should be autosized with the same multiplier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833032</commentid>
    <comment_count>1</comment_count>
      <attachid>188339</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-14 06:47:30 -0800</bug_when>
    <thetext>Created attachment 188339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835058</commentid>
    <comment_count>2</comment_count>
      <attachid>188339</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-17 16:21:06 -0800</bug_when>
    <thetext>Comment on attachment 188339
Patch

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

Useful addition, and code looks good (with nits), though I have this nagging feeling that CompareIndicesByWidthDifference/getNarrowDescendantsGroupedByDifferenceFromParentTextWidth is slightly overcomplicated.
Julien/Kenneth, what do you think?

&gt; Source/WebCore/ChangeLog:29
&gt; +            different groups if the difference between their deltas is greater than 100 (in CSS

That description doesn&apos;t seem quite right - if the deltas were [320, 400, 480], then those would all be the same group, right?

&gt; Source/WebCore/rendering/TextAutosizer.cpp:579
&gt; +void TextAutosizer::getNarrowDescendantsGroupedByDifferenceFromParentTextWidth(const TextAutosizingClusterInfo&amp; parentClusterInfo, Vector&lt;Vector&lt;TextAutosizingClusterInfo&gt; &gt;&amp; groups)

Nit: I wonder if this should return a Vector&lt;Vector&lt;TextAutosizingClusterInfo*&gt; &gt; to avoid copying the clusterinfos; they&apos;re moderately heavyweight, as they each contain a vector, though I guess in practice at this stage descendants are guaranteed to have empty narrowDescendants vectors so it&apos;s probably fine.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:585
&gt; +    const float maxDifferenceWithinGroup = 100;

Probably want to explain the purpose of this constant, and mention that it was empirically determined. (might also be clearer to move it down to the bottom next to where it gets used?)

&gt; Source/WebCore/rendering/TextAutosizer.cpp:588
&gt; +    differencesFromParentTextWidth.reserveInitialCapacity(clusterInfos.size());

Nit: it doesn&apos;t seem necessary to actually compute the differences. Directly sorting and grouping the cluster widths should be exactly equivalent to sorting and grouping the differences (except you&apos;d need to sort in the opposite order). Though if you want to compress clusterInfos to a Vector of floats anyway in order to make the sort comparisons cheaper, then I guess you may as well use (parentTextWidth - clusterWidth) rather than just clusterWidth. So do what feels best.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:595
&gt; +        float parentTextWidth = parentClusterInfo.blockContainingAllText-&gt;contentLogicalWidth();

Move this out of the loop.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:603
&gt; +            groups.append(Vector&lt;TextAutosizingClusterInfo&gt;());

Nit: Move this out of the loop (then instead of the repeated if, you just have if (!clusterIndices); and you could remove that if too by returning early towards the beginning of this function if narrowDescendants is empty). You might also want to change this to groups.grow(1) for conciseness.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:606
&gt; +        const TextAutosizingClusterInfo&amp; currentClusterInfo = clusterInfos[currentIndex];

Redundant variable.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:613
&gt; +                groups.append(Vector&lt;TextAutosizingClusterInfo&gt;());

Nit: you could do groups.grow(groups.size() + 1), but I&apos;m fine with this if you prefer.

&gt; LayoutTests/fast/text-autosizing/narrow-descendants-combined.html:24
&gt;      &lt;div style=&quot;width: 320px&quot;&gt;

Perhaps additionally add a 240px one, to show that 240 and 400 get grouped together because of the 320px one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835478</commentid>
    <comment_count>3</comment_count>
      <attachid>188887</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-18 07:42:12 -0800</bug_when>
    <thetext>Created attachment 188887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835479</commentid>
    <comment_count>4</comment_count>
      <attachid>188339</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-18 07:47:45 -0800</bug_when>
    <thetext>Comment on attachment 188339
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:29
&gt;&gt; +            different groups if the difference between their deltas is greater than 100 (in CSS
&gt; 
&gt; That description doesn&apos;t seem quite right - if the deltas were [320, 400, 480], then those would all be the same group, right?

Right, rephrased according to the new implementation.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:579
&gt;&gt; +void TextAutosizer::getNarrowDescendantsGroupedByDifferenceFromParentTextWidth(const TextAutosizingClusterInfo&amp; parentClusterInfo, Vector&lt;Vector&lt;TextAutosizingClusterInfo&gt; &gt;&amp; groups)
&gt; 
&gt; Nit: I wonder if this should return a Vector&lt;Vector&lt;TextAutosizingClusterInfo*&gt; &gt; to avoid copying the clusterinfos; they&apos;re moderately heavyweight, as they each contain a vector, though I guess in practice at this stage descendants are guaranteed to have empty narrowDescendants vectors so it&apos;s probably fine.

I&apos;d rather change it to Vector&lt;Vector&lt;TextAutosizingClusterInfo*&gt; &gt; in the following patch since narrowDescendants of clusterInfo&apos;s here are empty and changing to pointers will touch much unrelated code.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:585
&gt;&gt; +    const float maxDifferenceWithinGroup = 100;
&gt; 
&gt; Probably want to explain the purpose of this constant, and mention that it was empirically determined. (might also be clearer to move it down to the bottom next to where it gets used?)

Done.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:588
&gt;&gt; +    differencesFromParentTextWidth.reserveInitialCapacity(clusterInfos.size());
&gt; 
&gt; Nit: it doesn&apos;t seem necessary to actually compute the differences. Directly sorting and grouping the cluster widths should be exactly equivalent to sorting and grouping the differences (except you&apos;d need to sort in the opposite order). Though if you want to compress clusterInfos to a Vector of floats anyway in order to make the sort comparisons cheaper, then I guess you may as well use (parentTextWidth - clusterWidth) rather than just clusterWidth. So do what feels best.

Done. Sorting by the width now. The code is much simpler.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:595
&gt;&gt; +        float parentTextWidth = parentClusterInfo.blockContainingAllText-&gt;contentLogicalWidth();
&gt; 
&gt; Move this out of the loop.

Done.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:603
&gt;&gt; +            groups.append(Vector&lt;TextAutosizingClusterInfo&gt;());
&gt; 
&gt; Nit: Move this out of the loop (then instead of the repeated if, you just have if (!clusterIndices); and you could remove that if too by returning early towards the beginning of this function if narrowDescendants is empty). You might also want to change this to groups.grow(1) for conciseness.

Done.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:606
&gt;&gt; +        const TextAutosizingClusterInfo&amp; currentClusterInfo = clusterInfos[currentIndex];
&gt; 
&gt; Redundant variable.

Done.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:613
&gt;&gt; +                groups.append(Vector&lt;TextAutosizingClusterInfo&gt;());
&gt; 
&gt; Nit: you could do groups.grow(groups.size() + 1), but I&apos;m fine with this if you prefer.

Done.

&gt;&gt; LayoutTests/fast/text-autosizing/narrow-descendants-combined.html:24
&gt;&gt;      &lt;div style=&quot;width: 320px&quot;&gt;
&gt; 
&gt; Perhaps additionally add a 240px one, to show that 240 and 400 get grouped together because of the 320px one?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835506</commentid>
    <comment_count>5</comment_count>
      <attachid>188887</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-18 08:24:49 -0800</bug_when>
    <thetext>Comment on attachment 188887
Patch

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

&gt; Source/WebCore/rendering/TextAutosizer.cpp:564
&gt; +bool greaterClusterInfoRootWidth(const TextAutosizingClusterInfo&amp; first, const TextAutosizingClusterInfo&amp; second)

I am not convinced about this name... what about something with compare... people are used to compare methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835507</commentid>
    <comment_count>6</comment_count>
      <attachid>188893</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-18 08:27:37 -0800</bug_when>
    <thetext>Created attachment 188893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835508</commentid>
    <comment_count>7</comment_count>
      <attachid>188887</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-18 08:28:45 -0800</bug_when>
    <thetext>Comment on attachment 188887
Patch

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

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:564
&gt;&gt; +bool greaterClusterInfoRootWidth(const TextAutosizingClusterInfo&amp; first, const TextAutosizingClusterInfo&amp; second)
&gt; 
&gt; I am not convinced about this name... what about something with compare... people are used to compare methods

Ok, done. Do I need to reflect in the name that the method compares values in the descending order or will a comment suffice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835516</commentid>
    <comment_count>8</comment_count>
      <attachid>188893</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-18 08:44:47 -0800</bug_when>
    <thetext>Comment on attachment 188893
Patch

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

Much simpler now, thanks. Looks good with teensy nits.

&gt; I&apos;d rather change it to Vector&lt;Vector&lt;TextAutosizingClusterInfo*&gt; &gt; in the
&gt; following patch since narrowDescendants of clusterInfo&apos;s here are empty and
&gt; changing to pointers will touch much unrelated code.

Oh, I&apos;d forgotten that these get passed to processCompositeCluster. Definitely fine to keep it as non-pointers then.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:565
&gt; +bool compareClusterInfosByRootWidth(const TextAutosizingClusterInfo&amp; first, const TextAutosizingClusterInfo&amp; second)

Hmm, how about just &quot;clusterWiderThan&quot;? Kenneth, what do you think?

&gt; Source/WebCore/rendering/TextAutosizer.cpp:585
&gt; +    // this value, the next element should start a new group.

Nit: s/value/empirically determined value/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835651</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-18 11:21:42 -0800</bug_when>
    <thetext>
&gt; Hmm, how about just &quot;clusterWiderThan&quot;? Kenneth, what do you think?

Sounds good

or clusterWiderThanComparisonFn()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835659</commentid>
    <comment_count>10</comment_count>
      <attachid>188924</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-18 11:38:04 -0800</bug_when>
    <thetext>Created attachment 188924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836244</commentid>
    <comment_count>11</comment_count>
      <attachid>188924</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 04:47:08 -0800</bug_when>
    <thetext>Comment on attachment 188924
Patch

Clearing flags on attachment: 188924

Committed r143318: &lt;http://trac.webkit.org/changeset/143318&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836245</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 04:47:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188339</attachid>
            <date>2013-02-14 06:47:30 -0800</date>
            <delta_ts>2013-02-18 08:27:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109825-20130214144357.patch</filename>
            <type>text/plain</type>
            <size>11264</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDEzZGNjMjYzMjg4YzA3
ZmE4YjkyZDMyMTNmMDRhNjZlZGJhNmNiMC4uMTIyZGI1ZWFjYTFiNzlkN2JiMTJhOWJmMjk1YjBh
Yjg4MGM3Y2M1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAyLTE0ICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVGV4dCBBdXRvc2l6
aW5nXSBDb21iaW5lIG5hcnJvdyBkZXNjZW5kYW50cyBvZiBhIGNsdXN0ZXIgaW50byBncm91cHMg
dGhhdCBzaG91bGQgYmUgYXV0b3NpemVkIHdpdGggdGhlIHNhbWUgbXVsdGlwbGllci4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTgyNQorCisgICAg
ICAgIEVuaGFuY2VtZW50IG9mIHRoZSBhcHByb2FjaCBpbnRyb2R1Y2VkIGluIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1NzMuCisgICAgICAgIEluc3RlYWQgb2Yg
dXNpbmcgdGhlIHNhbWUgdGV4dCBzaXplIG11bHRpcGxpZXIgZm9yIGFsbCBuYXJyb3cgZGVzY2Vu
ZGFudHMgb2YgYW55IGF1dG9zaXppbmcKKyAgICAgICAgY2x1c3RlciwgZ3JvdXAgdGhlIGRlc2Nl
bmRhbnRzIGJ5IGhvdyBtdWNoIG5hcnJvd2VyIHRoZXkgYXJlIHRoYW4gdGhlIGNsdXN0ZXIncwor
ICAgICAgICB8YmxvY2tDb250YWluaW5nQWxsVGV4dHwgYW5kIHByb2Nlc3MgZWFjaCBncm91cCBz
ZXBhcmF0ZWx5IHdpdGggYSBkaWZmZXJlbnQgbXVsdGlwbGllciBmb3IKKyAgICAgICAgZWFjaCBv
bmUuCisgICAgICAgIEZvciBleGFtcGxlLCB3ZSB3YW50IG5lc3RlZCBjb21tZW50cyBvbiB0aGUg
cGFnZSB0byBiZSBhdXRvc2l6ZWQgYXMgYSBncm91cCBidXQgc2VwYXJhdGVseQorICAgICAgICBm
cm9tIGEgc2lkZWJhciBvbiB0aGUgc2FtZSBwYWdlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGV4aXN0aW5nIHRlc3QgdG8gdmVy
aWZ5IHRoZSBwYXRjaC4KKworICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVySW50ZXJuYWwp
OgorCisgICAgICAgICAgICBTcGxpdHMgdGhlIG5hcnJvdyBkZXNjZW5kYW50cyBvZiB0aGUgYXV0
b3NpemluZyBjbHVzdGVyIGludG8gZ3JvdXBzIGJlZm9yZSBwcm9jZXNzaW5nCisgICAgICAgICAg
ICBlYWNoIGdyb3VwIGluZGl2aWR1YWxseS4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9z
aXplcjo6Z2V0TmFycm93RGVzY2VuZGFudHNHcm91cGVkQnlEaWZmZXJlbmNlRnJvbVBhcmVudFRl
eHRXaWR0aCk6CisKKyAgICAgICAgICAgIFNvcnRzIHRoZSBuYXJyb3cgZGVzY2VuZGFudHMgb2Yg
dGhlIGdpdmVuIGNsdXN0ZXIgaW50byBncm91cHMsIGNvbWJpbmluZyB0aGVtIGJ5IHRoZQorICAg
ICAgICAgICAgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aWR0aCBvZiB0aGUgY2x1c3RlcidzIHxi
bG9ja0NvbnRhaW5pbmdBbGxUZXh0fCBhbmQgdGhlIHdpZHRoIG9mCisgICAgICAgICAgICB0aGUg
ZGVzY2VuZGFudC4gSWYgdGhpcyBkaWZmZXJlbmNlIGlzIGNhbGxlZCB8ZGVsdGF8LCB0d28gZGVz
Y2VuZGFudHMgYmVsb25nIHRvCisgICAgICAgICAgICBkaWZmZXJlbnQgZ3JvdXBzIGlmIHRoZSBk
aWZmZXJlbmNlIGJldHdlZW4gdGhlaXIgZGVsdGFzIGlzIGdyZWF0ZXIgdGhhbiAxMDAgKGluIENT
UworICAgICAgICAgICAgdW5pdHMpLgorCisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6
ZXIuaDoKKworICAgICAgICAgICAgTmV3IG1ldGhvZCBkZWZpbml0aW9ucy4KKwogMjAxMy0wMi0x
NCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBkb24ndCBjcmVhdGUgc3RhdGljIGxvY2FsIHN0cmluZyBmb3IgcHJvZ3JhbSBs
aXRlcmFsIGluIEluc3BlY3RvclRpbWVsaW5lQWdlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9UZXh0QXV0b3NpemVyLmNwcAppbmRleCAzNDI2MzdhYWFiZWZhNWMxZGU2MjU0ZWQ2YTAzNzVk
OTYxMjM5NzM1Li41ZDA2NDFiOGFhOTZkOTgxYTNhNjk3ZWFkN2VkZDk3OWFlNzAzODAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCkBAIC0xNDksNyArMTQ5
LDEwIEBAIHZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NsdXN0ZXJJbnRlcm5hbChUZXh0QXV0
b3NpemluZ0NsdXN0ZXJJbmZvJiBjbHVzdGVySW5mCiAKICAgICBwcm9jZXNzQ29udGFpbmVyKG11
bHRpcGxpZXIsIGNvbnRhaW5lciwgY2x1c3RlckluZm8sIHN1YnRyZWVSb290LCB3aW5kb3dJbmZv
KTsKIAotICAgIHByb2Nlc3NDb21wb3NpdGVDbHVzdGVyKGNsdXN0ZXJJbmZvLm5hcnJvd0Rlc2Nl
bmRhbnRzLCB3aW5kb3dJbmZvKTsKKyAgICBWZWN0b3I8VmVjdG9yPFRleHRBdXRvc2l6aW5nQ2x1
c3RlckluZm8+ID4gbmFycm93RGVzY2VuZGFudHNHcm91cHM7CisgICAgZ2V0TmFycm93RGVzY2Vu
ZGFudHNHcm91cGVkQnlEaWZmZXJlbmNlRnJvbVBhcmVudFRleHRXaWR0aChjbHVzdGVySW5mbywg
bmFycm93RGVzY2VuZGFudHNHcm91cHMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFy
cm93RGVzY2VuZGFudHNHcm91cHMuc2l6ZSgpOyArK2kpCisgICAgICAgIHByb2Nlc3NDb21wb3Np
dGVDbHVzdGVyKG5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBzW2ldLCB3aW5kb3dJbmZvKTsKIH0KIAog
dm9pZCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzQ2x1c3RlcihUZXh0QXV0b3NpemluZ0NsdXN0ZXJJ
bmZvJiBjbHVzdGVySW5mbywgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgUmVuZGVyT2JqZWN0KiBz
dWJ0cmVlUm9vdCwgY29uc3QgVGV4dEF1dG9zaXppbmdXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKQpA
QCAtNTU2LDYgKzU1OSw2MiBAQCBjb25zdCBSZW5kZXJPYmplY3QqIFRleHRBdXRvc2l6ZXI6OmZp
bmRGaXJzdFRleHRMZWFmTm90SW5DbHVzdGVyKGNvbnN0IFJlbmRlck9iagogICAgIHJldHVybiAw
OwogfQogCituYW1lc3BhY2UgeworCitjbGFzcyBDb21wYXJlSW5kaWNlc0J5V2lkdGhEaWZmZXJl
bmNlIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBDb21wYXJlSW5kaWNlc0J5V2lkdGhEaWZmZXJl
bmNlKGNvbnN0IFZlY3RvcjxmbG9hdD4mIGRpZmZzKTogbV9kaWZmcyhkaWZmcykgeyB9CisKKyAg
ICBib29sIG9wZXJhdG9yKCkoc2l6ZV90IGluZGV4MSwgc2l6ZV90IGluZGV4MikgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2RpZmZzW2luZGV4MV0gPCBtX2RpZmZzW2luZGV4Ml07Cisg
ICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0IFZlY3RvcjxmbG9hdD4mIG1fZGlmZnM7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZQorCit2b2lkIFRleHRBdXRvc2l6ZXI6OmdldE5hcnJvd0Rlc2NlbmRh
bnRzR3JvdXBlZEJ5RGlmZmVyZW5jZUZyb21QYXJlbnRUZXh0V2lkdGgoY29uc3QgVGV4dEF1dG9z
aXppbmdDbHVzdGVySW5mbyYgcGFyZW50Q2x1c3RlckluZm8sIFZlY3RvcjxWZWN0b3I8VGV4dEF1
dG9zaXppbmdDbHVzdGVySW5mbz4gPiYgZ3JvdXBzKQoreworICAgIEFTU0VSVChwYXJlbnRDbHVz
dGVySW5mby5ibG9ja0NvbnRhaW5pbmdBbGxUZXh0KTsKKyAgICBBU1NFUlQoZ3JvdXBzLmlzRW1w
dHkoKSk7CisKKyAgICBjb25zdCBWZWN0b3I8VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbz4mIGNs
dXN0ZXJJbmZvcyA9IHBhcmVudENsdXN0ZXJJbmZvLm5hcnJvd0Rlc2NlbmRhbnRzOworICAgIGNv
bnN0IGZsb2F0IG1heERpZmZlcmVuY2VXaXRoaW5Hcm91cCA9IDEwMDsKKworICAgIFZlY3Rvcjxm
bG9hdD4gZGlmZmVyZW5jZXNGcm9tUGFyZW50VGV4dFdpZHRoOworICAgIGRpZmZlcmVuY2VzRnJv
bVBhcmVudFRleHRXaWR0aC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNsdXN0ZXJJbmZvcy5zaXpl
KCkpOworCisgICAgVmVjdG9yPHNpemVfdD4gY2x1c3RlckluZGljZXM7CisgICAgY2x1c3Rlcklu
ZGljZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjbHVzdGVySW5mb3Muc2l6ZSgpKTsKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2x1c3RlckluZm9zLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIGZsb2F0IGNsdXN0ZXJXaWR0aCA9IGNsdXN0ZXJJbmZvc1tpXS5yb290LT5jb250ZW50TG9n
aWNhbFdpZHRoKCk7CisgICAgICAgIGZsb2F0IHBhcmVudFRleHRXaWR0aCA9IHBhcmVudENsdXN0
ZXJJbmZvLmJsb2NrQ29udGFpbmluZ0FsbFRleHQtPmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKKyAg
ICAgICAgZGlmZmVyZW5jZXNGcm9tUGFyZW50VGV4dFdpZHRoLmFwcGVuZChwYXJlbnRUZXh0V2lk
dGggLSBjbHVzdGVyV2lkdGgpOworICAgICAgICBjbHVzdGVySW5kaWNlcy5hcHBlbmQoaSk7Cisg
ICAgfQorICAgIHN0ZDo6c29ydChjbHVzdGVySW5kaWNlcy5iZWdpbigpLCBjbHVzdGVySW5kaWNl
cy5lbmQoKSwgQ29tcGFyZUluZGljZXNCeVdpZHRoRGlmZmVyZW5jZShkaWZmZXJlbmNlc0Zyb21Q
YXJlbnRUZXh0V2lkdGgpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2x1c3Rlcklu
ZGljZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGdyb3Vwcy5pc0VtcHR5KCkpCisgICAg
ICAgICAgICBncm91cHMuYXBwZW5kKFZlY3RvcjxUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvPigp
KTsKKworICAgICAgICBzaXplX3QgY3VycmVudEluZGV4ID0gY2x1c3RlckluZGljZXNbaV07Cisg
ICAgICAgIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8mIGN1cnJlbnRDbHVzdGVySW5m
byA9IGNsdXN0ZXJJbmZvc1tjdXJyZW50SW5kZXhdOworICAgICAgICBncm91cHMubGFzdCgpLmFw
cGVuZChjdXJyZW50Q2x1c3RlckluZm8pOworCisgICAgICAgIGlmIChpICsgMSA8IGNsdXN0ZXJJ
bmRpY2VzLnNpemUoKSkgeworICAgICAgICAgICAgZmxvYXQgY3VycmVudFdpZHRoRGlmZmVyZW5j
ZSA9IGRpZmZlcmVuY2VzRnJvbVBhcmVudFRleHRXaWR0aFtjdXJyZW50SW5kZXhdOworICAgICAg
ICAgICAgZmxvYXQgbmV4dFdpZHRoRGlmZmVyZW5jZSA9IGRpZmZlcmVuY2VzRnJvbVBhcmVudFRl
eHRXaWR0aFtjbHVzdGVySW5kaWNlc1tpICsgMV1dOworICAgICAgICAgICAgaWYgKG5leHRXaWR0
aERpZmZlcmVuY2UgLSBjdXJyZW50V2lkdGhEaWZmZXJlbmNlID4gbWF4RGlmZmVyZW5jZVdpdGhp
bkdyb3VwKQorICAgICAgICAgICAgICAgIGdyb3Vwcy5hcHBlbmQoVmVjdG9yPFRleHRBdXRvc2l6
aW5nQ2x1c3RlckluZm8+KCkpOworICAgICAgICB9CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKaW5kZXggNjQ5NWEzMDJiMDg3ZTc3Yzc4MDhl
YWIyMTNmMzYyZWVjM2ZiYmE3Yi4uOTZmMjY5MGRkYWM5NTZlZDgwMmRlNWE0ZmI2ZDM2YWZhMzIw
MGZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oCkBAIC05MSw2
ICs5MSwxMSBAQCBwcml2YXRlOgogICAgIC8vIGJlbG9uZyB0byBhbnkgY2x1c3Rlci4KICAgICBz
dGF0aWMgY29uc3QgUmVuZGVyT2JqZWN0KiBmaW5kRmlyc3RUZXh0TGVhZk5vdEluQ2x1c3Rlcihj
b25zdCBSZW5kZXJPYmplY3QqLCBzaXplX3QmIGRlcHRoLCBUcmF2ZXJzYWxEaXJlY3Rpb24pOwog
CisgICAgLy8gUmV0dXJucyBncm91cHMgb2YgbmFycm93IGRlc2NlbmRhbnRzIG9mIGEgZ2l2ZW4g
YXV0b3NpemluZyBjbHVzdGVyLiBUaGUgZ3JvdXBzIGFyZSBjb21iaW5lZAorICAgIC8vIGJ5IHRo
ZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHdpZHRoIG9mIHRoZSBkZXNjZW5kYW50IGFuZCB0aGUg
d2lkdGggb2YgdGhlIHBhcmVudCBjbHVzdGVyJ3MKKyAgICAvLyB8YmxvY2tDb250YWluaW5nQWxs
VGV4dHwuCisgICAgc3RhdGljIHZvaWQgZ2V0TmFycm93RGVzY2VuZGFudHNHcm91cGVkQnlEaWZm
ZXJlbmNlRnJvbVBhcmVudFRleHRXaWR0aChjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZv
JiBwYXJlbnRDbHVzdGVySW5mbywgVmVjdG9yPFZlY3RvcjxUZXh0QXV0b3NpemluZ0NsdXN0ZXJJ
bmZvPiA+Jik7CisKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKIH07CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NTll
YzQ4MjQ5MGZjNmUyYjU2ODY0MjUxOTU1N2VlNmVmNGE3Mzc5Li45MTE4N2VlODE5NGYzMWUyODBj
MGIxMzIyMjdmN2ZkMTRkNDRkMzRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDItMTQg
IEFudG9uIFZheXZvZCAgPGF2YXl2b2RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtUZXh0IEF1
dG9zaXppbmddIENvbWJpbmUgbmFycm93IGRlc2NlbmRhbnRzIG9mIGEgY2x1c3RlciBpbnRvIGdy
b3VwcyB0aGF0IHNob3VsZCBiZSBhdXRvc2l6ZWQgd2l0aCB0aGUgc2FtZSBtdWx0aXBsaWVyLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5ODI1CisK
KyAgICAgICAgVmVyaWZ5IHRoYXQgbmFycm93IGRlc2NlbmRhbnRzIGFyZSBncm91cGVkIGFuZCBh
dXRvc2l6ZWQgc2VwYXJhdGVseSBhY2NvcmRpbmcgdG8gdGhlCisgICAgICAgIGRpZmZlcmVuY2Ug
YmV0d2VlbiB0aGUgZGVzY2VuZGFudCdzIHdpZHRoIGFuZCB0aGUgd2lkdGggb2YgaXRzIGVuY2xv
c2luZyBjbHVzdGVyJ3MKKyAgICAgICAgfGJsb2NrQ29udGFpbmluZ0FsbFRleHR8LgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC90ZXh0LWF1
dG9zaXppbmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLWV4cGVjdGVkLmh0bWw6CisgICAg
ICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLmh0
bWw6CisKIDIwMTMtMDItMTQgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHVyaUZvckZpbGUgYW5kIGZpbGVGb3JV
UkkgbWV0aG9kcyBmcm9tIEZpbGVTeXN0ZW1NYXBwaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uYXJyb3ctZGVzY2Vu
ZGFudHMtY29tYmluZWQtZXhwZWN0ZWQuaHRtbAppbmRleCA0OGZjMjRiNWRhODdlMjU0MDAwOWRi
YTA5Mzc4ZDM0NmQyOGFmZGVmLi4xMjM3YWVlNTZmNGI1ODliYWY3ZDZlOTFhNjYwYWM0MTUxZmIy
NmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uYXJyb3ct
ZGVzY2VuZGFudHMtY29tYmluZWQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy9uYXJyb3ctZGVzY2VuZGFudHMtY29tYmluZWQtZXhwZWN0ZWQuaHRt
bApAQCAtMTMsMTMgKzEzLDE1IEBAIGJvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsgb3Zl
cmZsb3cteTogaGlkZGVuOyB9CiAKIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMS4yNXJlbSI+CiAg
ICAgPGRpdiBzdHlsZT0id2lkdGg6IDMyMHB4Ij4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBi
ZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmluZWQg
d2l0aCBpdHMgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0MDBweC4K
KyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBm
b250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCB0aGUgbGFzdCBuYXJyb3cgc2libGluZyBh
bmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguCiAgICAgPC9kaXY+Ci0gICAgPGRpdiBzdHls
ZT0id2lkdGg6IDQwMHB4Ij4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQg
dG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCBpdHMgbmFy
cm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0MDBweC4KKyAgICA8ZGl2IHN0
eWxlPSJ3aWR0aDogNTYwcHg7IGZvbnQtc2l6ZTogMS43NXJlbSI+CisgICAgICAgIFRoaXMgdGV4
dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDI4cHggY29tcHV0ZWQgZm9udC1zaXplIGFzIGl0IGlz
IGNvbWJpbmVkIGludG8gYSBzZXBhcmF0ZSBncm91cCBmcm9tIGl0cyB0d28gc2libGluZ3Mgc2lu
Y2UgaXQncyBzaWduaWZpY2FudGx5IHdpZGVyLjxicj4KKyAgICAgICAgTG9yZW0gaXBzdW0gZG9s
b3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9k
IHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLgogICAg
IDwvZGl2PgotICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyNDBweCI+Ci0gICAgICAgIFRoaXMgdGV4
dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDIwcHggY29tcHV0ZWQgZm9udC1zaXplIGFzIGl0IGlz
IGNvbWJpbmVkIHdpdGggaXRzIG5hcnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGgg
aXMgNDAwcHguCisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KKyAgICAgICAgVGhpcyB0
ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQg
aXMgY29tYmluZWQgd2l0aCB0aGUgZmlyc3QgbmFycm93IHNpYmxpbmcgYW5kIHRoZSBtYXhpbXVt
IHdpZHRoIGlzIDQwMHB4Ljxicj4KKyAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQs
IGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNp
ZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLgogICAgIDwvZGl2PgogPC9k
aXY+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJv
dy1kZXNjZW5kYW50cy1jb21iaW5lZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9z
aXppbmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLmh0bWwKaW5kZXggNWFhYzM2YjZiNjgy
MDU2MTVjOTA3MjY0OTQzNDYxZjU0ZDg1ODYwOS4uZjU0NjQyYmVjZTQ0ZGUwOGVjZGE5MDgyZDNk
NzJmMzk5MjJkNmQxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXpp
bmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0LWF1dG9zaXppbmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLmh0bWwKQEAgLTIy
LDEzICsyMiwxNSBAQCBpZiAod2luZG93LmludGVybmFscykgewogCiA8ZGl2PgogICAgIDxkaXYg
c3R5bGU9IndpZHRoOiAzMjBweCI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3Np
emVkIHRvIDIwcHggY29tcHV0ZWQgZm9udC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggaXRz
IG5hcnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguCisgICAgICAg
IFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDIwcHggY29tcHV0ZWQgZm9udC1zaXpl
IGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggdGhlIGxhc3QgbmFycm93IHNpYmxpbmcgYW5kIHRoZSBt
YXhpbXVtIHdpZHRoIGlzIDQwMHB4LgogICAgIDwvZGl2PgotICAgIDxkaXYgc3R5bGU9IndpZHRo
OiA0MDBweCI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDIwcHgg
Y29tcHV0ZWQgZm9udC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggaXRzIG5hcnJvdyBzaWJs
aW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguCisgICAgPGRpdiBzdHlsZT0id2lk
dGg6IDU2MHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjhw
eCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgaW50byBhIHNlcGFyYXRlIGdy
b3VwIGZyb20gaXRzIHR3byBzaWJsaW5ncyBzaW5jZSBpdCdzIHNpZ25pZmljYW50bHkgd2lkZXIu
PGJyPgorICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRp
cGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3Jl
IGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCiAgICAgPC9kaXY+Ci0gICAgPGRpdiBzdHlsZT0id2lk
dGg6IDI0MHB4Ij4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBw
eCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCBpdHMgbmFycm93IHNp
YmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0MDBweC4KKyAgICA8ZGl2IHN0eWxlPSJ3
aWR0aDogNDAwcHgiPgorICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byAy
MHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBpdCBpcyBjb21iaW5lZCB3aXRoIHRoZSBmaXJzdCBu
YXJyb3cgc2libGluZyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguPGJyPgorICAgICAg
ICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxp
dCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBt
YWduYSBhbGlxdWEuCiAgICAgPC9kaXY+CiA8L2Rpdj4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188887</attachid>
            <date>2013-02-18 07:42:12 -0800</date>
            <delta_ts>2013-02-18 11:37:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109825-20130218153835.patch</filename>
            <type>text/plain</type>
            <size>10637</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExNmI0ZjljMzRhMGEw
Njc4YWE1MzJkMTczYjcwY2MzNGNmNzEzMy4uNzNlZjIxMzBmNmRlNmQ0YjBmYTc5NTFlNDVmNjdj
OGM0NmJmZjQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAyLTE0ICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVGV4dCBBdXRvc2l6
aW5nXSBDb21iaW5lIG5hcnJvdyBkZXNjZW5kYW50cyBvZiBhIGNsdXN0ZXIgaW50byBncm91cHMg
dGhhdCBzaG91bGQgYmUgYXV0b3NpemVkIHdpdGggdGhlIHNhbWUgbXVsdGlwbGllci4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTgyNQorCisgICAg
ICAgIEVuaGFuY2VtZW50IG9mIHRoZSBhcHByb2FjaCBpbnRyb2R1Y2VkIGluIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1NzMuCisgICAgICAgIEluc3RlYWQgb2Yg
dXNpbmcgdGhlIHNhbWUgdGV4dCBzaXplIG11bHRpcGxpZXIgZm9yIGFsbCBuYXJyb3cgZGVzY2Vu
ZGFudHMgb2YgYW55IGF1dG9zaXppbmcKKyAgICAgICAgY2x1c3RlciwgZ3JvdXAgdGhlIGRlc2Nl
bmRhbnRzIGJ5IGhvdyBtdWNoIG5hcnJvd2VyIHRoZXkgYXJlIHRoYW4gdGhlIGNsdXN0ZXIncwor
ICAgICAgICB8YmxvY2tDb250YWluaW5nQWxsVGV4dHwgYW5kIHByb2Nlc3MgZWFjaCBncm91cCBz
ZXBhcmF0ZWx5IHdpdGggYSBkaWZmZXJlbnQgbXVsdGlwbGllciBmb3IKKyAgICAgICAgZWFjaCBv
bmUuCisgICAgICAgIEZvciBleGFtcGxlLCB3ZSB3YW50IG5lc3RlZCBjb21tZW50cyBvbiB0aGUg
cGFnZSB0byBiZSBhdXRvc2l6ZWQgYXMgYSBncm91cCBidXQgc2VwYXJhdGVseQorICAgICAgICBm
cm9tIGEgc2lkZWJhciBvbiB0aGUgc2FtZSBwYWdlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGV4aXN0aW5nIHRlc3QgdG8gdmVy
aWZ5IHRoZSBwYXRjaC4KKworICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVySW50ZXJuYWwp
OgorCisgICAgICAgICAgICBTcGxpdHMgdGhlIG5hcnJvdyBkZXNjZW5kYW50cyBvZiB0aGUgYXV0
b3NpemluZyBjbHVzdGVyIGludG8gZ3JvdXBzIGJlZm9yZSBwcm9jZXNzaW5nCisgICAgICAgICAg
ICBlYWNoIGdyb3VwIGluZGl2aWR1YWxseS4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9z
aXplcjo6Z2V0TmFycm93RGVzY2VuZGFudHNHcm91cGVkQnlXaWR0aCk6CisKKyAgICAgICAgICAg
IFNvcnRzIHRoZSBuYXJyb3cgZGVzY2VuZGFudHMgb2YgdGhlIGdpdmVuIGNsdXN0ZXIgaW50byBn
cm91cHMsIGNvbWJpbmluZyB0aGVtIGJ5IHRoZQorICAgICAgICAgICAgZGlmZmVyZW5jZSBiZXR3
ZWVuIHRoZWlyIGNvbnRlbnQgd2lkdGhzLiBJZiBzb3J0ZWQgYnkgd2lkdGgsIHR3byBjb25zZWN1
dGl2ZSBub2RlcworICAgICAgICAgICAgYmVsb25nIHRvIHRoZSBzYW1lIGdyb3VwIGlmIHRoZWly
IHdpZHRoIGRpZmZlcmVuY2UgaXMgbm8gZ3JlYXRlciB0aGFuIDEwMCBDU1MgdW5pdHMuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oOgorCisgICAgICAgICAgICBOZXcgbWV0
aG9kIGRlZmluaXRpb25zLgorCiAyMDEzLTAyLTE3ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGJ1aWxkZml4IGZvciAhVVNF
KExJQlhNTCkgYnVpbGRzIGFmdGVyIHIxNDMxMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dEF1dG9zaXplci5jcHAKaW5kZXggMzQyNjM3YWFhYmVmYTVjMWRlNjI1NGVkNmEwMzc1ZDk2
MTIzOTczNS4uZWUyYmJjMzk1M2Q1MzdmMzI1NGNjMmQ0ZDMwNDVkNGZkN2U0YzViYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtMTQ5LDcgKzE0OSwx
MCBAQCB2b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVySW50ZXJuYWwoVGV4dEF1dG9z
aXppbmdDbHVzdGVySW5mbyYgY2x1c3RlckluZgogCiAgICAgcHJvY2Vzc0NvbnRhaW5lcihtdWx0
aXBsaWVyLCBjb250YWluZXIsIGNsdXN0ZXJJbmZvLCBzdWJ0cmVlUm9vdCwgd2luZG93SW5mbyk7
CiAKLSAgICBwcm9jZXNzQ29tcG9zaXRlQ2x1c3RlcihjbHVzdGVySW5mby5uYXJyb3dEZXNjZW5k
YW50cywgd2luZG93SW5mbyk7CisgICAgVmVjdG9yPFZlY3RvcjxUZXh0QXV0b3NpemluZ0NsdXN0
ZXJJbmZvPiA+IG5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBzOworICAgIGdldE5hcnJvd0Rlc2NlbmRh
bnRzR3JvdXBlZEJ5V2lkdGgoY2x1c3RlckluZm8sIG5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBzKTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBzLnNpemUo
KTsgKytpKQorICAgICAgICBwcm9jZXNzQ29tcG9zaXRlQ2x1c3RlcihuYXJyb3dEZXNjZW5kYW50
c0dyb3Vwc1tpXSwgd2luZG93SW5mbyk7CiB9CiAKIHZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vz
c0NsdXN0ZXIoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyYgY2x1c3RlckluZm8sIFJlbmRlckJs
b2NrKiBjb250YWluZXIsIFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QsIGNvbnN0IFRleHRBdXRv
c2l6aW5nV2luZG93SW5mbyYgd2luZG93SW5mbykKQEAgLTU1Niw2ICs1NTksNDIgQEAgY29uc3Qg
UmVuZGVyT2JqZWN0KiBUZXh0QXV0b3NpemVyOjpmaW5kRmlyc3RUZXh0TGVhZk5vdEluQ2x1c3Rl
cihjb25zdCBSZW5kZXJPYmoKICAgICByZXR1cm4gMDsKIH0KIAorbmFtZXNwYWNlIHsKKworYm9v
bCBncmVhdGVyQ2x1c3RlckluZm9Sb290V2lkdGgoY29uc3QgVGV4dEF1dG9zaXppbmdDbHVzdGVy
SW5mbyYgZmlyc3QsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8mIHNlY29uZCkKK3sK
KyAgICByZXR1cm4gZmlyc3Qucm9vdC0+Y29udGVudExvZ2ljYWxXaWR0aCgpID4gc2Vjb25kLnJv
b3QtPmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKK30KKworfSAvLyBuYW1lc3BhY2UKKwordm9pZCBU
ZXh0QXV0b3NpemVyOjpnZXROYXJyb3dEZXNjZW5kYW50c0dyb3VwZWRCeVdpZHRoKGNvbnN0IFRl
eHRBdXRvc2l6aW5nQ2x1c3RlckluZm8mIHBhcmVudENsdXN0ZXJJbmZvLCBWZWN0b3I8VmVjdG9y
PFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8+ID4mIGdyb3VwcykKK3sKKyAgICBBU1NFUlQocGFy
ZW50Q2x1c3RlckluZm8uYmxvY2tDb250YWluaW5nQWxsVGV4dCk7CisgICAgQVNTRVJUKGdyb3Vw
cy5pc0VtcHR5KCkpOworCisgICAgVmVjdG9yPFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8+IGNs
dXN0ZXJJbmZvcyhwYXJlbnRDbHVzdGVySW5mby5uYXJyb3dEZXNjZW5kYW50cyk7CisgICAgaWYg
KGNsdXN0ZXJJbmZvcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHN0ZDo6c29y
dChjbHVzdGVySW5mb3MuYmVnaW4oKSwgY2x1c3RlckluZm9zLmVuZCgpLCAmZ3JlYXRlckNsdXN0
ZXJJbmZvUm9vdFdpZHRoKTsKKyAgICBncm91cHMuZ3JvdygxKTsKKworICAgIC8vIElmIHRoZSB3
aWR0aCBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGNvbnNlY3V0aXZlIGVsZW1lbnRzIG9mIHxjbHVz
dGVySW5mb3N8IGlzIGdyZWF0ZXIgdGhhbgorICAgIC8vIHRoaXMgdmFsdWUsIHRoZSBuZXh0IGVs
ZW1lbnQgc2hvdWxkIHN0YXJ0IGEgbmV3IGdyb3VwLgorICAgIGNvbnN0IGZsb2F0IG1heFdpZHRo
RGlmZmVyZW5jZVdpdGhpbkdyb3VwID0gMTAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
Y2x1c3RlckluZm9zLnNpemUoKTsgKytpKSB7CisgICAgICAgIGdyb3Vwcy5sYXN0KCkuYXBwZW5k
KGNsdXN0ZXJJbmZvc1tpXSk7CisKKyAgICAgICAgaWYgKGkgKyAxIDwgY2x1c3RlckluZm9zLnNp
emUoKSkgeworICAgICAgICAgICAgZmxvYXQgY3VycmVudFdpZHRoID0gY2x1c3RlckluZm9zW2ld
LnJvb3QtPmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKKyAgICAgICAgICAgIGZsb2F0IG5leHRXaWR0
aCA9IGNsdXN0ZXJJbmZvc1tpICsgMV0ucm9vdC0+Y29udGVudExvZ2ljYWxXaWR0aCgpOworICAg
ICAgICAgICAgaWYgKGN1cnJlbnRXaWR0aCAtIG5leHRXaWR0aCA+IG1heFdpZHRoRGlmZmVyZW5j
ZVdpdGhpbkdyb3VwKQorICAgICAgICAgICAgICAgIGdyb3Vwcy5ncm93KGdyb3Vwcy5zaXplKCkg
KyAxKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFRFWFRfQVVUT1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dEF1dG9zaXplci5oCmluZGV4IDY0OTVhMzAyYjA4N2U3N2M3ODA4ZWFiMjEzZjM2MmVlYzNm
YmJhN2IuLmJiMzhiYWE4NmM3ZTY0NDRmZWU3M2ZlZmM3Nzk0ZTgwZmUyZWM4NGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAtOTEsNiArOTEsMTEgQEAgcHJp
dmF0ZToKICAgICAvLyBiZWxvbmcgdG8gYW55IGNsdXN0ZXIuCiAgICAgc3RhdGljIGNvbnN0IFJl
bmRlck9iamVjdCogZmluZEZpcnN0VGV4dExlYWZOb3RJbkNsdXN0ZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0Kiwgc2l6ZV90JiBkZXB0aCwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKIAorICAgIC8vIFJldHVy
bnMgZ3JvdXBzIG9mIG5hcnJvdyBkZXNjZW5kYW50cyBvZiBhIGdpdmVuIGF1dG9zaXppbmcgY2x1
c3Rlci4gVGhlIGdyb3VwcyBhcmUgY29tYmluZWQKKyAgICAvLyBieSB0aGUgZGlmZmVyZW5jZSBi
ZXR3ZWVuIHRoZSB3aWR0aCBvZiB0aGUgZGVzY2VuZGFudCBhbmQgdGhlIHdpZHRoIG9mIHRoZSBw
YXJlbnQgY2x1c3RlcidzCisgICAgLy8gfGJsb2NrQ29udGFpbmluZ0FsbFRleHR8LgorICAgIHN0
YXRpYyB2b2lkIGdldE5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBlZEJ5V2lkdGgoY29uc3QgVGV4dEF1
dG9zaXppbmdDbHVzdGVySW5mbyYgcGFyZW50Q2x1c3RlckluZm8sIFZlY3RvcjxWZWN0b3I8VGV4
dEF1dG9zaXppbmdDbHVzdGVySW5mbz4gPiYpOworCiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7
CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggOTE4ZjhmY2IzZjE1ODJkMGUxNjJkZjAyOThlYzcxNTQ0YzA0OGZkZS4u
YjI5M2JmOTFlODNjNzRmNDk0M2I0YzdhZGY2YmQxYzlkZmQ5Y2M0YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEzLTAyLTE0ICBBbnRvbiBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbVGV4dCBBdXRvc2l6aW5nXSBDb21iaW5lIG5hcnJvdyBkZXNjZW5kYW50cyBv
ZiBhIGNsdXN0ZXIgaW50byBncm91cHMgdGhhdCBzaG91bGQgYmUgYXV0b3NpemVkIHdpdGggdGhl
IHNhbWUgbXVsdGlwbGllci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwOTgyNQorCisgICAgICAgIFZlcmlmeSB0aGF0IG5hcnJvdyBkZXNjZW5kYW50
cyBhcmUgZ3JvdXBlZCBhbmQgYXV0b3NpemVkIHNlcGFyYXRlbHkgYWNjb3JkaW5nIHRvIHRoZQor
ICAgICAgICBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGRlc2NlbmRhbnQncyB3aWR0aCBhbmQgdGhl
IHdpZHRoIG9mIGl0cyBlbmNsb3NpbmcgY2x1c3RlcidzCisgICAgICAgIHxibG9ja0NvbnRhaW5p
bmdBbGxUZXh0fC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21iaW5lZC1l
eHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNj
ZW5kYW50cy1jb21iaW5lZC5odG1sOgorCiAyMDEzLTAyLTE3ICBDaHJpc3RvcGhlIER1bWV6ICA8
Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEVGTCBnYXJk
ZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uYXJy
b3ctZGVzY2VuZGFudHMtY29tYmluZWQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21iaW5lZC1leHBlY3RlZC5odG1s
CmluZGV4IDQ4ZmMyNGI1ZGE4N2UyNTQwMDA5ZGJhMDkzNzhkMzQ2ZDI4YWZkZWYuLjM0NzJiMzhi
NDFiNjJiZmUzMjMxYjMyYjFkYmE0NmExN2FiZGE0MjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21iaW5lZC1leHBlY3Rl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNj
ZW5kYW50cy1jb21iaW5lZC1leHBlY3RlZC5odG1sCkBAIC0xMiwxNCArMTIsMTkgQEAgYm9keSB7
IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KIDxib2R5Pgog
CiA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDEuMjVyZW0iPgorICAgIDxkaXYgc3R5bGU9IndpZHRo
OiAyNDBweCI+CisgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDIwcHgg
Y29tcHV0ZWQgZm9udC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggdGhlIG5leHQgYW5kIHRo
ZSBsYXN0IG5hcnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguCisg
ICAgPC9kaXY+CiAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDMyMHB4Ij4KLSAgICAgICAgVGhpcyB0
ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQg
aXMgY29tYmluZWQgd2l0aCBpdHMgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0
aCBpcyA0MDBweC4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBw
eCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCB0aGUgZmlyc3QgYW5k
IHRoZSBsYXN0IG5hcnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHgu
CiAgICAgPC9kaXY+Ci0gICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KLSAgICAgICAgVGhp
cyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMg
aXQgaXMgY29tYmluZWQgd2l0aCBpdHMgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3
aWR0aCBpcyA0MDBweC4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTYwcHg7IGZvbnQtc2l6ZTog
MS43NXJlbSI+CisgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDI4cHgg
Y29tcHV0ZWQgZm9udC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIGludG8gYSBzZXBhcmF0ZSBncm91
cCBmcm9tIGl0cyB0d28gc2libGluZ3Mgc2luY2UgaXQncyBzaWduaWZpY2FudGx5IHdpZGVyLjxi
cj4KKyAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBp
c2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBl
dCBkb2xvcmUgbWFnbmEgYWxpcXVhLgogICAgIDwvZGl2PgotICAgIDxkaXYgc3R5bGU9IndpZHRo
OiAyNDBweCI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDIwcHgg
Y29tcHV0ZWQgZm9udC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggaXRzIG5hcnJvdyBzaWJs
aW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguCisgICAgPGRpdiBzdHlsZT0id2lk
dGg6IDQwMHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBw
eCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCB0aGUgZmlyc3QgYW5k
IHRoZSBzZWNvbmQgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0MDBw
eC48YnI+CisgICAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBh
ZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJv
cmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4KICAgICA8L2Rpdj4KIDwvZGl2PgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uYXJyb3ctZGVzY2VuZGFudHMt
Y29tYmluZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1k
ZXNjZW5kYW50cy1jb21iaW5lZC5odG1sCmluZGV4IDVhYWMzNmI2YjY4MjA1NjE1YzkwNzI2NDk0
MzQ2MWY1NGQ4NTg2MDkuLjQ3MjBlNjFmMjIwODg4YWEzZmI1MjQ3Y2I5MDVjZjZmYmM0YTc4NjYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNj
ZW5kYW50cy1jb21iaW5lZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21iaW5lZC5odG1sCkBAIC0yMSwxNCArMjEsMTkgQEAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKIDxib2R5PgogCiA8ZGl2PgorICAgIDxkaXYgc3R5bGU9
IndpZHRoOiAyNDBweCI+CisgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRv
IDIwcHggY29tcHV0ZWQgZm9udC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggdGhlIG5leHQg
YW5kIHRoZSBsYXN0IG5hcnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAw
cHguCisgICAgPC9kaXY+CiAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDMyMHB4Ij4KLSAgICAgICAg
VGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUg
YXMgaXQgaXMgY29tYmluZWQgd2l0aCBpdHMgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11
bSB3aWR0aCBpcyA0MDBweC4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQg
dG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCB0aGUgZmly
c3QgYW5kIHRoZSBsYXN0IG5hcnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMg
NDAwcHguCiAgICAgPC9kaXY+Ci0gICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KLSAgICAg
ICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNp
emUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCBpdHMgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4
aW11bSB3aWR0aCBpcyA0MDBweC4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTYwcHgiPgorICAg
ICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byAyOHB4IGNvbXB1dGVkIGZvbnQt
c2l6ZSBhcyBpdCBpcyBjb21iaW5lZCBpbnRvIGEgc2VwYXJhdGUgZ3JvdXAgZnJvbSBpdHMgdHdv
IHNpYmxpbmdzIHNpbmNlIGl0J3Mgc2lnbmlmaWNhbnRseSB3aWRlci48YnI+CisgICAgICAgIExv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBz
ZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25h
IGFsaXF1YS4KICAgICA8L2Rpdj4KLSAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjQwcHgiPgotICAg
ICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byAyMHB4IGNvbXB1dGVkIGZvbnQt
c2l6ZSBhcyBpdCBpcyBjb21iaW5lZCB3aXRoIGl0cyBuYXJyb3cgc2libGluZ3MgYW5kIHRoZSBt
YXhpbXVtIHdpZHRoIGlzIDQwMHB4LgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MDBweCI+Cisg
ICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDIwcHggY29tcHV0ZWQgZm9u
dC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggdGhlIGZpcnN0IGFuZCB0aGUgc2Vjb25kIG5h
cnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguPGJyPgorICAgICAg
ICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxp
dCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBt
YWduYSBhbGlxdWEuCiAgICAgPC9kaXY+CiA8L2Rpdj4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188893</attachid>
            <date>2013-02-18 08:27:37 -0800</date>
            <delta_ts>2013-02-18 11:38:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109825-20130218162400.patch</filename>
            <type>text/plain</type>
            <size>10720</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExNmI0ZjljMzRhMGEw
Njc4YWE1MzJkMTczYjcwY2MzNGNmNzEzMy4uNzNlZjIxMzBmNmRlNmQ0YjBmYTc5NTFlNDVmNjdj
OGM0NmJmZjQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAyLTE0ICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVGV4dCBBdXRvc2l6
aW5nXSBDb21iaW5lIG5hcnJvdyBkZXNjZW5kYW50cyBvZiBhIGNsdXN0ZXIgaW50byBncm91cHMg
dGhhdCBzaG91bGQgYmUgYXV0b3NpemVkIHdpdGggdGhlIHNhbWUgbXVsdGlwbGllci4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTgyNQorCisgICAg
ICAgIEVuaGFuY2VtZW50IG9mIHRoZSBhcHByb2FjaCBpbnRyb2R1Y2VkIGluIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1NzMuCisgICAgICAgIEluc3RlYWQgb2Yg
dXNpbmcgdGhlIHNhbWUgdGV4dCBzaXplIG11bHRpcGxpZXIgZm9yIGFsbCBuYXJyb3cgZGVzY2Vu
ZGFudHMgb2YgYW55IGF1dG9zaXppbmcKKyAgICAgICAgY2x1c3RlciwgZ3JvdXAgdGhlIGRlc2Nl
bmRhbnRzIGJ5IGhvdyBtdWNoIG5hcnJvd2VyIHRoZXkgYXJlIHRoYW4gdGhlIGNsdXN0ZXIncwor
ICAgICAgICB8YmxvY2tDb250YWluaW5nQWxsVGV4dHwgYW5kIHByb2Nlc3MgZWFjaCBncm91cCBz
ZXBhcmF0ZWx5IHdpdGggYSBkaWZmZXJlbnQgbXVsdGlwbGllciBmb3IKKyAgICAgICAgZWFjaCBv
bmUuCisgICAgICAgIEZvciBleGFtcGxlLCB3ZSB3YW50IG5lc3RlZCBjb21tZW50cyBvbiB0aGUg
cGFnZSB0byBiZSBhdXRvc2l6ZWQgYXMgYSBncm91cCBidXQgc2VwYXJhdGVseQorICAgICAgICBm
cm9tIGEgc2lkZWJhciBvbiB0aGUgc2FtZSBwYWdlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGV4aXN0aW5nIHRlc3QgdG8gdmVy
aWZ5IHRoZSBwYXRjaC4KKworICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVySW50ZXJuYWwp
OgorCisgICAgICAgICAgICBTcGxpdHMgdGhlIG5hcnJvdyBkZXNjZW5kYW50cyBvZiB0aGUgYXV0
b3NpemluZyBjbHVzdGVyIGludG8gZ3JvdXBzIGJlZm9yZSBwcm9jZXNzaW5nCisgICAgICAgICAg
ICBlYWNoIGdyb3VwIGluZGl2aWR1YWxseS4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9z
aXplcjo6Z2V0TmFycm93RGVzY2VuZGFudHNHcm91cGVkQnlXaWR0aCk6CisKKyAgICAgICAgICAg
IFNvcnRzIHRoZSBuYXJyb3cgZGVzY2VuZGFudHMgb2YgdGhlIGdpdmVuIGNsdXN0ZXIgaW50byBn
cm91cHMsIGNvbWJpbmluZyB0aGVtIGJ5IHRoZQorICAgICAgICAgICAgZGlmZmVyZW5jZSBiZXR3
ZWVuIHRoZWlyIGNvbnRlbnQgd2lkdGhzLiBJZiBzb3J0ZWQgYnkgd2lkdGgsIHR3byBjb25zZWN1
dGl2ZSBub2RlcworICAgICAgICAgICAgYmVsb25nIHRvIHRoZSBzYW1lIGdyb3VwIGlmIHRoZWly
IHdpZHRoIGRpZmZlcmVuY2UgaXMgbm8gZ3JlYXRlciB0aGFuIDEwMCBDU1MgdW5pdHMuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oOgorCisgICAgICAgICAgICBOZXcgbWV0
aG9kIGRlZmluaXRpb25zLgorCiAyMDEzLTAyLTE3ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGJ1aWxkZml4IGZvciAhVVNF
KExJQlhNTCkgYnVpbGRzIGFmdGVyIHIxNDMxMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dEF1dG9zaXplci5jcHAKaW5kZXggMzQyNjM3YWFhYmVmYTVjMWRlNjI1NGVkNmEwMzc1ZDk2
MTIzOTczNS4uZDhkOWUyMDU2MTEyMjUyNDYwMGQzMmNkZDU3ZTJhOWI1ZWJmZmRjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtMTQ5LDcgKzE0OSwx
MCBAQCB2b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVySW50ZXJuYWwoVGV4dEF1dG9z
aXppbmdDbHVzdGVySW5mbyYgY2x1c3RlckluZgogCiAgICAgcHJvY2Vzc0NvbnRhaW5lcihtdWx0
aXBsaWVyLCBjb250YWluZXIsIGNsdXN0ZXJJbmZvLCBzdWJ0cmVlUm9vdCwgd2luZG93SW5mbyk7
CiAKLSAgICBwcm9jZXNzQ29tcG9zaXRlQ2x1c3RlcihjbHVzdGVySW5mby5uYXJyb3dEZXNjZW5k
YW50cywgd2luZG93SW5mbyk7CisgICAgVmVjdG9yPFZlY3RvcjxUZXh0QXV0b3NpemluZ0NsdXN0
ZXJJbmZvPiA+IG5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBzOworICAgIGdldE5hcnJvd0Rlc2NlbmRh
bnRzR3JvdXBlZEJ5V2lkdGgoY2x1c3RlckluZm8sIG5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBzKTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBzLnNpemUo
KTsgKytpKQorICAgICAgICBwcm9jZXNzQ29tcG9zaXRlQ2x1c3RlcihuYXJyb3dEZXNjZW5kYW50
c0dyb3Vwc1tpXSwgd2luZG93SW5mbyk7CiB9CiAKIHZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vz
c0NsdXN0ZXIoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyYgY2x1c3RlckluZm8sIFJlbmRlckJs
b2NrKiBjb250YWluZXIsIFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QsIGNvbnN0IFRleHRBdXRv
c2l6aW5nV2luZG93SW5mbyYgd2luZG93SW5mbykKQEAgLTU1Niw2ICs1NTksNDMgQEAgY29uc3Qg
UmVuZGVyT2JqZWN0KiBUZXh0QXV0b3NpemVyOjpmaW5kRmlyc3RUZXh0TGVhZk5vdEluQ2x1c3Rl
cihjb25zdCBSZW5kZXJPYmoKICAgICByZXR1cm4gMDsKIH0KIAorbmFtZXNwYWNlIHsKKworLy8g
Q29tcGFyZXMgdGhlIHdpZHRoIG9mIHRoZSBzcGVjaWZpZWQgY2x1c3RlcidzIHJvb3RzIGluIGRl
c2NlbmRpbmcgb3JkZXIuCitib29sIGNvbXBhcmVDbHVzdGVySW5mb3NCeVJvb3RXaWR0aChjb25z
dCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvJiBmaXJzdCwgY29uc3QgVGV4dEF1dG9zaXppbmdD
bHVzdGVySW5mbyYgc2Vjb25kKQoreworICAgIHJldHVybiBmaXJzdC5yb290LT5jb250ZW50TG9n
aWNhbFdpZHRoKCkgPiBzZWNvbmQucm9vdC0+Y29udGVudExvZ2ljYWxXaWR0aCgpOworfQorCit9
IC8vIG5hbWVzcGFjZQorCit2b2lkIFRleHRBdXRvc2l6ZXI6OmdldE5hcnJvd0Rlc2NlbmRhbnRz
R3JvdXBlZEJ5V2lkdGgoY29uc3QgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyYgcGFyZW50Q2x1
c3RlckluZm8sIFZlY3RvcjxWZWN0b3I8VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbz4gPiYgZ3Jv
dXBzKQoreworICAgIEFTU0VSVChwYXJlbnRDbHVzdGVySW5mby5ibG9ja0NvbnRhaW5pbmdBbGxU
ZXh0KTsKKyAgICBBU1NFUlQoZ3JvdXBzLmlzRW1wdHkoKSk7CisKKyAgICBWZWN0b3I8VGV4dEF1
dG9zaXppbmdDbHVzdGVySW5mbz4gY2x1c3RlckluZm9zKHBhcmVudENsdXN0ZXJJbmZvLm5hcnJv
d0Rlc2NlbmRhbnRzKTsKKyAgICBpZiAoY2x1c3RlckluZm9zLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgc3RkOjpzb3J0KGNsdXN0ZXJJbmZvcy5iZWdpbigpLCBjbHVzdGVySW5m
b3MuZW5kKCksICZjb21wYXJlQ2x1c3RlckluZm9zQnlSb290V2lkdGgpOworICAgIGdyb3Vwcy5n
cm93KDEpOworCisgICAgLy8gSWYgdGhlIHdpZHRoIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gY29u
c2VjdXRpdmUgZWxlbWVudHMgb2YgfGNsdXN0ZXJJbmZvc3wgaXMgZ3JlYXRlciB0aGFuCisgICAg
Ly8gdGhpcyB2YWx1ZSwgdGhlIG5leHQgZWxlbWVudCBzaG91bGQgc3RhcnQgYSBuZXcgZ3JvdXAu
CisgICAgY29uc3QgZmxvYXQgbWF4V2lkdGhEaWZmZXJlbmNlV2l0aGluR3JvdXAgPSAxMDA7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjbHVzdGVySW5mb3Muc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgZ3JvdXBzLmxhc3QoKS5hcHBlbmQoY2x1c3RlckluZm9zW2ldKTsKKworICAgICAgICBp
ZiAoaSArIDEgPCBjbHVzdGVySW5mb3Muc2l6ZSgpKSB7CisgICAgICAgICAgICBmbG9hdCBjdXJy
ZW50V2lkdGggPSBjbHVzdGVySW5mb3NbaV0ucm9vdC0+Y29udGVudExvZ2ljYWxXaWR0aCgpOwor
ICAgICAgICAgICAgZmxvYXQgbmV4dFdpZHRoID0gY2x1c3RlckluZm9zW2kgKyAxXS5yb290LT5j
b250ZW50TG9naWNhbFdpZHRoKCk7CisgICAgICAgICAgICBpZiAoY3VycmVudFdpZHRoIC0gbmV4
dFdpZHRoID4gbWF4V2lkdGhEaWZmZXJlbmNlV2l0aGluR3JvdXApCisgICAgICAgICAgICAgICAg
Z3JvdXBzLmdyb3coZ3JvdXBzLnNpemUoKSArIDEpOworICAgICAgICB9CisgICAgfQorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVEVYVF9BVVRPU0laSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKaW5kZXggNjQ5NWEzMDJi
MDg3ZTc3Yzc4MDhlYWIyMTNmMzYyZWVjM2ZiYmE3Yi4uYmIzOGJhYTg2YzdlNjQ0NGZlZTczZmVm
Yzc3OTRlODBmZTJlYzg0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRBdXRvc2l6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXpl
ci5oCkBAIC05MSw2ICs5MSwxMSBAQCBwcml2YXRlOgogICAgIC8vIGJlbG9uZyB0byBhbnkgY2x1
c3Rlci4KICAgICBzdGF0aWMgY29uc3QgUmVuZGVyT2JqZWN0KiBmaW5kRmlyc3RUZXh0TGVhZk5v
dEluQ2x1c3Rlcihjb25zdCBSZW5kZXJPYmplY3QqLCBzaXplX3QmIGRlcHRoLCBUcmF2ZXJzYWxE
aXJlY3Rpb24pOwogCisgICAgLy8gUmV0dXJucyBncm91cHMgb2YgbmFycm93IGRlc2NlbmRhbnRz
IG9mIGEgZ2l2ZW4gYXV0b3NpemluZyBjbHVzdGVyLiBUaGUgZ3JvdXBzIGFyZSBjb21iaW5lZAor
ICAgIC8vIGJ5IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHdpZHRoIG9mIHRoZSBkZXNjZW5k
YW50IGFuZCB0aGUgd2lkdGggb2YgdGhlIHBhcmVudCBjbHVzdGVyJ3MKKyAgICAvLyB8YmxvY2tD
b250YWluaW5nQWxsVGV4dHwuCisgICAgc3RhdGljIHZvaWQgZ2V0TmFycm93RGVzY2VuZGFudHNH
cm91cGVkQnlXaWR0aChjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvJiBwYXJlbnRDbHVz
dGVySW5mbywgVmVjdG9yPFZlY3RvcjxUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvPiA+Jik7CisK
ICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5MThmOGZjYjNmMTU4MmQw
ZTE2MmRmMDI5OGVjNzE1NDRjMDQ4ZmRlLi5iMjkzYmY5MWU4M2M3NGY0OTQzYjRjN2FkZjZiZDFj
OWRmZDljYzRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDItMTQgIEFudG9uIFZheXZv
ZCAgPGF2YXl2b2RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtUZXh0IEF1dG9zaXppbmddIENv
bWJpbmUgbmFycm93IGRlc2NlbmRhbnRzIG9mIGEgY2x1c3RlciBpbnRvIGdyb3VwcyB0aGF0IHNo
b3VsZCBiZSBhdXRvc2l6ZWQgd2l0aCB0aGUgc2FtZSBtdWx0aXBsaWVyLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5ODI1CisKKyAgICAgICAgVmVy
aWZ5IHRoYXQgbmFycm93IGRlc2NlbmRhbnRzIGFyZSBncm91cGVkIGFuZCBhdXRvc2l6ZWQgc2Vw
YXJhdGVseSBhY2NvcmRpbmcgdG8gdGhlCisgICAgICAgIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUg
ZGVzY2VuZGFudCdzIHdpZHRoIGFuZCB0aGUgd2lkdGggb2YgaXRzIGVuY2xvc2luZyBjbHVzdGVy
J3MKKyAgICAgICAgfGJsb2NrQ29udGFpbmluZ0FsbFRleHR8LgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvbmFy
cm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC90
ZXh0LWF1dG9zaXppbmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLmh0bWw6CisKIDIwMTMt
MDItMTcgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgRUZMIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21iaW5lZC1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmFycm93LWRlc2NlbmRh
bnRzLWNvbWJpbmVkLWV4cGVjdGVkLmh0bWwKaW5kZXggNDhmYzI0YjVkYTg3ZTI1NDAwMDlkYmEw
OTM3OGQzNDZkMjhhZmRlZi4uMzQ3MmIzOGI0MWI2MmJmZTMyMzFiMzJiMWRiYTQ2YTE3YWJkYTQy
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmFycm93LWRl
c2NlbmRhbnRzLWNvbWJpbmVkLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0LWF1dG9zaXppbmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLWV4cGVjdGVkLmh0bWwK
QEAgLTEyLDE0ICsxMiwxOSBAQCBib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJm
bG93LXk6IGhpZGRlbjsgfQogPGJvZHk+CiAKIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMS4yNXJl
bSI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDI0MHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNo
b3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29t
YmluZWQgd2l0aCB0aGUgbmV4dCBhbmQgdGhlIGxhc3QgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUg
bWF4aW11bSB3aWR0aCBpcyA0MDBweC4KKyAgICA8L2Rpdj4KICAgICA8ZGl2IHN0eWxlPSJ3aWR0
aDogMzIwcHgiPgotICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byAyMHB4
IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBpdCBpcyBjb21iaW5lZCB3aXRoIGl0cyBuYXJyb3cgc2li
bGluZ3MgYW5kIHRoZSBtYXhpbXVtIHdpZHRoIGlzIDQwMHB4LgorICAgICAgICBUaGlzIHRleHQg
c2hvdWxkIGJlIGF1dG9zaXplZCB0byAyMHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBpdCBpcyBj
b21iaW5lZCB3aXRoIHRoZSBmaXJzdCBhbmQgdGhlIGxhc3QgbmFycm93IHNpYmxpbmdzIGFuZCB0
aGUgbWF4aW11bSB3aWR0aCBpcyA0MDBweC4KICAgICA8L2Rpdj4KLSAgICA8ZGl2IHN0eWxlPSJ3
aWR0aDogNDAwcHgiPgotICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byAy
MHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBpdCBpcyBjb21iaW5lZCB3aXRoIGl0cyBuYXJyb3cg
c2libGluZ3MgYW5kIHRoZSBtYXhpbXVtIHdpZHRoIGlzIDQwMHB4LgorICAgIDxkaXYgc3R5bGU9
IndpZHRoOiA1NjBweDsgZm9udC1zaXplOiAxLjc1cmVtIj4KKyAgICAgICAgVGhpcyB0ZXh0IHNo
b3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjhweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29t
YmluZWQgaW50byBhIHNlcGFyYXRlIGdyb3VwIGZyb20gaXRzIHR3byBzaWJsaW5ncyBzaW5jZSBp
dCdzIHNpZ25pZmljYW50bHkgd2lkZXIuPGJyPgorICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBz
aXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVt
cG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCiAgICAgPC9k
aXY+Ci0gICAgPGRpdiBzdHlsZT0id2lkdGg6IDI0MHB4Ij4KLSAgICAgICAgVGhpcyB0ZXh0IHNo
b3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29t
YmluZWQgd2l0aCBpdHMgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0
MDBweC4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNDAwcHgiPgorICAgICAgICBUaGlzIHRleHQg
c2hvdWxkIGJlIGF1dG9zaXplZCB0byAyMHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBpdCBpcyBj
b21iaW5lZCB3aXRoIHRoZSBmaXJzdCBhbmQgdGhlIHNlY29uZCBuYXJyb3cgc2libGluZ3MgYW5k
IHRoZSBtYXhpbXVtIHdpZHRoIGlzIDQwMHB4Ljxicj4KKyAgICAgICAgTG9yZW0gaXBzdW0gZG9s
b3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9k
IHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLgogICAg
IDwvZGl2PgogPC9kaXY+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRv
c2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21iaW5lZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0LWF1dG9zaXppbmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLmh0bWwKaW5kZXgg
NWFhYzM2YjZiNjgyMDU2MTVjOTA3MjY0OTQzNDYxZjU0ZDg1ODYwOS4uNDcyMGU2MWYyMjA4ODhh
YTNmYjUyNDdjYjkwNWNmNmZiYzRhNzg2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0LWF1dG9zaXppbmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmFycm93LWRlc2NlbmRhbnRzLWNvbWJpbmVk
Lmh0bWwKQEAgLTIxLDE0ICsyMSwxOSBAQCBpZiAod2luZG93LmludGVybmFscykgewogPGJvZHk+
CiAKIDxkaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDI0MHB4Ij4KKyAgICAgICAgVGhpcyB0
ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQg
aXMgY29tYmluZWQgd2l0aCB0aGUgbmV4dCBhbmQgdGhlIGxhc3QgbmFycm93IHNpYmxpbmdzIGFu
ZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0MDBweC4KKyAgICA8L2Rpdj4KICAgICA8ZGl2IHN0eWxl
PSJ3aWR0aDogMzIwcHgiPgotICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0
byAyMHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBpdCBpcyBjb21iaW5lZCB3aXRoIGl0cyBuYXJy
b3cgc2libGluZ3MgYW5kIHRoZSBtYXhpbXVtIHdpZHRoIGlzIDQwMHB4LgorICAgICAgICBUaGlz
IHRleHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byAyMHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBp
dCBpcyBjb21iaW5lZCB3aXRoIHRoZSBmaXJzdCBhbmQgdGhlIGxhc3QgbmFycm93IHNpYmxpbmdz
IGFuZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0MDBweC4KICAgICA8L2Rpdj4KLSAgICA8ZGl2IHN0
eWxlPSJ3aWR0aDogNDAwcHgiPgotICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIGF1dG9zaXpl
ZCB0byAyMHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBpdCBpcyBjb21iaW5lZCB3aXRoIGl0cyBu
YXJyb3cgc2libGluZ3MgYW5kIHRoZSBtYXhpbXVtIHdpZHRoIGlzIDQwMHB4LgorICAgIDxkaXYg
c3R5bGU9IndpZHRoOiA1NjBweCI+CisgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3Np
emVkIHRvIDI4cHggY29tcHV0ZWQgZm9udC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIGludG8gYSBz
ZXBhcmF0ZSBncm91cCBmcm9tIGl0cyB0d28gc2libGluZ3Mgc2luY2UgaXQncyBzaWduaWZpY2Fu
dGx5IHdpZGVyLjxicj4KKyAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNl
Y3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50
IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLgogICAgIDwvZGl2PgotICAgIDxkaXYg
c3R5bGU9IndpZHRoOiAyNDBweCI+Ci0gICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3Np
emVkIHRvIDIwcHggY29tcHV0ZWQgZm9udC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggaXRz
IG5hcnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguCisgICAgPGRp
diBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRv
c2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCB0
aGUgZmlyc3QgYW5kIHRoZSBzZWNvbmQgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3
aWR0aCBpcyA0MDBweC48YnI+CisgICAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBj
b25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRp
ZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4KICAgICA8L2Rpdj4KIDwvZGl2
PgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188924</attachid>
            <date>2013-02-18 11:38:04 -0800</date>
            <delta_ts>2013-02-19 04:47:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109825-20130218193427.patch</filename>
            <type>text/plain</type>
            <size>10739</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExNmI0ZjljMzRhMGEw
Njc4YWE1MzJkMTczYjcwY2MzNGNmNzEzMy4uNzNlZjIxMzBmNmRlNmQ0YjBmYTc5NTFlNDVmNjdj
OGM0NmJmZjQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAyLTE0ICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVGV4dCBBdXRvc2l6
aW5nXSBDb21iaW5lIG5hcnJvdyBkZXNjZW5kYW50cyBvZiBhIGNsdXN0ZXIgaW50byBncm91cHMg
dGhhdCBzaG91bGQgYmUgYXV0b3NpemVkIHdpdGggdGhlIHNhbWUgbXVsdGlwbGllci4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTgyNQorCisgICAg
ICAgIEVuaGFuY2VtZW50IG9mIHRoZSBhcHByb2FjaCBpbnRyb2R1Y2VkIGluIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1NzMuCisgICAgICAgIEluc3RlYWQgb2Yg
dXNpbmcgdGhlIHNhbWUgdGV4dCBzaXplIG11bHRpcGxpZXIgZm9yIGFsbCBuYXJyb3cgZGVzY2Vu
ZGFudHMgb2YgYW55IGF1dG9zaXppbmcKKyAgICAgICAgY2x1c3RlciwgZ3JvdXAgdGhlIGRlc2Nl
bmRhbnRzIGJ5IGhvdyBtdWNoIG5hcnJvd2VyIHRoZXkgYXJlIHRoYW4gdGhlIGNsdXN0ZXIncwor
ICAgICAgICB8YmxvY2tDb250YWluaW5nQWxsVGV4dHwgYW5kIHByb2Nlc3MgZWFjaCBncm91cCBz
ZXBhcmF0ZWx5IHdpdGggYSBkaWZmZXJlbnQgbXVsdGlwbGllciBmb3IKKyAgICAgICAgZWFjaCBv
bmUuCisgICAgICAgIEZvciBleGFtcGxlLCB3ZSB3YW50IG5lc3RlZCBjb21tZW50cyBvbiB0aGUg
cGFnZSB0byBiZSBhdXRvc2l6ZWQgYXMgYSBncm91cCBidXQgc2VwYXJhdGVseQorICAgICAgICBm
cm9tIGEgc2lkZWJhciBvbiB0aGUgc2FtZSBwYWdlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGhlIGV4aXN0aW5nIHRlc3QgdG8gdmVy
aWZ5IHRoZSBwYXRjaC4KKworICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVySW50ZXJuYWwp
OgorCisgICAgICAgICAgICBTcGxpdHMgdGhlIG5hcnJvdyBkZXNjZW5kYW50cyBvZiB0aGUgYXV0
b3NpemluZyBjbHVzdGVyIGludG8gZ3JvdXBzIGJlZm9yZSBwcm9jZXNzaW5nCisgICAgICAgICAg
ICBlYWNoIGdyb3VwIGluZGl2aWR1YWxseS4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9z
aXplcjo6Z2V0TmFycm93RGVzY2VuZGFudHNHcm91cGVkQnlXaWR0aCk6CisKKyAgICAgICAgICAg
IFNvcnRzIHRoZSBuYXJyb3cgZGVzY2VuZGFudHMgb2YgdGhlIGdpdmVuIGNsdXN0ZXIgaW50byBn
cm91cHMsIGNvbWJpbmluZyB0aGVtIGJ5IHRoZQorICAgICAgICAgICAgZGlmZmVyZW5jZSBiZXR3
ZWVuIHRoZWlyIGNvbnRlbnQgd2lkdGhzLiBJZiBzb3J0ZWQgYnkgd2lkdGgsIHR3byBjb25zZWN1
dGl2ZSBub2RlcworICAgICAgICAgICAgYmVsb25nIHRvIHRoZSBzYW1lIGdyb3VwIGlmIHRoZWly
IHdpZHRoIGRpZmZlcmVuY2UgaXMgbm8gZ3JlYXRlciB0aGFuIDEwMCBDU1MgdW5pdHMuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oOgorCisgICAgICAgICAgICBOZXcgbWV0
aG9kIGRlZmluaXRpb25zLgorCiAyMDEzLTAyLTE3ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGJ1aWxkZml4IGZvciAhVVNF
KExJQlhNTCkgYnVpbGRzIGFmdGVyIHIxNDMxMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dEF1dG9zaXplci5jcHAKaW5kZXggMzQyNjM3YWFhYmVmYTVjMWRlNjI1NGVkNmEwMzc1ZDk2
MTIzOTczNS4uMzA4YzQ3MDQ2MjcxNjlkNmM5YmUxZTk2ZGQwZTdkODY4OWNjNGYyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtMTQ5LDcgKzE0OSwx
MCBAQCB2b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVySW50ZXJuYWwoVGV4dEF1dG9z
aXppbmdDbHVzdGVySW5mbyYgY2x1c3RlckluZgogCiAgICAgcHJvY2Vzc0NvbnRhaW5lcihtdWx0
aXBsaWVyLCBjb250YWluZXIsIGNsdXN0ZXJJbmZvLCBzdWJ0cmVlUm9vdCwgd2luZG93SW5mbyk7
CiAKLSAgICBwcm9jZXNzQ29tcG9zaXRlQ2x1c3RlcihjbHVzdGVySW5mby5uYXJyb3dEZXNjZW5k
YW50cywgd2luZG93SW5mbyk7CisgICAgVmVjdG9yPFZlY3RvcjxUZXh0QXV0b3NpemluZ0NsdXN0
ZXJJbmZvPiA+IG5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBzOworICAgIGdldE5hcnJvd0Rlc2NlbmRh
bnRzR3JvdXBlZEJ5V2lkdGgoY2x1c3RlckluZm8sIG5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBzKTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBzLnNpemUo
KTsgKytpKQorICAgICAgICBwcm9jZXNzQ29tcG9zaXRlQ2x1c3RlcihuYXJyb3dEZXNjZW5kYW50
c0dyb3Vwc1tpXSwgd2luZG93SW5mbyk7CiB9CiAKIHZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vz
c0NsdXN0ZXIoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyYgY2x1c3RlckluZm8sIFJlbmRlckJs
b2NrKiBjb250YWluZXIsIFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QsIGNvbnN0IFRleHRBdXRv
c2l6aW5nV2luZG93SW5mbyYgd2luZG93SW5mbykKQEAgLTU1Niw2ICs1NTksNDMgQEAgY29uc3Qg
UmVuZGVyT2JqZWN0KiBUZXh0QXV0b3NpemVyOjpmaW5kRmlyc3RUZXh0TGVhZk5vdEluQ2x1c3Rl
cihjb25zdCBSZW5kZXJPYmoKICAgICByZXR1cm4gMDsKIH0KIAorbmFtZXNwYWNlIHsKKworLy8g
Q29tcGFyZXMgdGhlIHdpZHRoIG9mIHRoZSBzcGVjaWZpZWQgY2x1c3RlcidzIHJvb3RzIGluIGRl
c2NlbmRpbmcgb3JkZXIuCitib29sIGNsdXN0ZXJXaWRlclRoYW5Db21wYXJpc29uRm4oY29uc3Qg
VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyYgZmlyc3QsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1
c3RlckluZm8mIHNlY29uZCkKK3sKKyAgICByZXR1cm4gZmlyc3Qucm9vdC0+Y29udGVudExvZ2lj
YWxXaWR0aCgpID4gc2Vjb25kLnJvb3QtPmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UKKwordm9pZCBUZXh0QXV0b3NpemVyOjpnZXROYXJyb3dEZXNjZW5kYW50c0dy
b3VwZWRCeVdpZHRoKGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8mIHBhcmVudENsdXN0
ZXJJbmZvLCBWZWN0b3I8VmVjdG9yPFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8+ID4mIGdyb3Vw
cykKK3sKKyAgICBBU1NFUlQocGFyZW50Q2x1c3RlckluZm8uYmxvY2tDb250YWluaW5nQWxsVGV4
dCk7CisgICAgQVNTRVJUKGdyb3Vwcy5pc0VtcHR5KCkpOworCisgICAgVmVjdG9yPFRleHRBdXRv
c2l6aW5nQ2x1c3RlckluZm8+IGNsdXN0ZXJJbmZvcyhwYXJlbnRDbHVzdGVySW5mby5uYXJyb3dE
ZXNjZW5kYW50cyk7CisgICAgaWYgKGNsdXN0ZXJJbmZvcy5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHN0ZDo6c29ydChjbHVzdGVySW5mb3MuYmVnaW4oKSwgY2x1c3RlckluZm9z
LmVuZCgpLCAmY2x1c3RlcldpZGVyVGhhbkNvbXBhcmlzb25Gbik7CisgICAgZ3JvdXBzLmdyb3co
MSk7CisKKyAgICAvLyBJZiB0aGUgd2lkdGggZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBjb25zZWN1
dGl2ZSBlbGVtZW50cyBvZiB8Y2x1c3RlckluZm9zfCBpcyBncmVhdGVyIHRoYW4KKyAgICAvLyB0
aGlzIGVtcGlyaWNhbGx5IGRldGVybWluZWQgdmFsdWUsIHRoZSBuZXh0IGVsZW1lbnQgc2hvdWxk
IHN0YXJ0IGEgbmV3IGdyb3VwLgorICAgIGNvbnN0IGZsb2F0IG1heFdpZHRoRGlmZmVyZW5jZVdp
dGhpbkdyb3VwID0gMTAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2x1c3RlckluZm9z
LnNpemUoKTsgKytpKSB7CisgICAgICAgIGdyb3Vwcy5sYXN0KCkuYXBwZW5kKGNsdXN0ZXJJbmZv
c1tpXSk7CisKKyAgICAgICAgaWYgKGkgKyAxIDwgY2x1c3RlckluZm9zLnNpemUoKSkgeworICAg
ICAgICAgICAgZmxvYXQgY3VycmVudFdpZHRoID0gY2x1c3RlckluZm9zW2ldLnJvb3QtPmNvbnRl
bnRMb2dpY2FsV2lkdGgoKTsKKyAgICAgICAgICAgIGZsb2F0IG5leHRXaWR0aCA9IGNsdXN0ZXJJ
bmZvc1tpICsgMV0ucm9vdC0+Y29udGVudExvZ2ljYWxXaWR0aCgpOworICAgICAgICAgICAgaWYg
KGN1cnJlbnRXaWR0aCAtIG5leHRXaWR0aCA+IG1heFdpZHRoRGlmZmVyZW5jZVdpdGhpbkdyb3Vw
KQorICAgICAgICAgICAgICAgIGdyb3Vwcy5ncm93KGdyb3Vwcy5zaXplKCkgKyAxKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKFRFWFRfQVVUT1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXpl
ci5oCmluZGV4IDY0OTVhMzAyYjA4N2U3N2M3ODA4ZWFiMjEzZjM2MmVlYzNmYmJhN2IuLmJiMzhi
YWE4NmM3ZTY0NDRmZWU3M2ZlZmM3Nzk0ZTgwZmUyZWM4NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAtOTEsNiArOTEsMTEgQEAgcHJpdmF0ZToKICAgICAv
LyBiZWxvbmcgdG8gYW55IGNsdXN0ZXIuCiAgICAgc3RhdGljIGNvbnN0IFJlbmRlck9iamVjdCog
ZmluZEZpcnN0VGV4dExlYWZOb3RJbkNsdXN0ZXIoY29uc3QgUmVuZGVyT2JqZWN0Kiwgc2l6ZV90
JiBkZXB0aCwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKIAorICAgIC8vIFJldHVybnMgZ3JvdXBzIG9m
IG5hcnJvdyBkZXNjZW5kYW50cyBvZiBhIGdpdmVuIGF1dG9zaXppbmcgY2x1c3Rlci4gVGhlIGdy
b3VwcyBhcmUgY29tYmluZWQKKyAgICAvLyBieSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB3
aWR0aCBvZiB0aGUgZGVzY2VuZGFudCBhbmQgdGhlIHdpZHRoIG9mIHRoZSBwYXJlbnQgY2x1c3Rl
cidzCisgICAgLy8gfGJsb2NrQ29udGFpbmluZ0FsbFRleHR8LgorICAgIHN0YXRpYyB2b2lkIGdl
dE5hcnJvd0Rlc2NlbmRhbnRzR3JvdXBlZEJ5V2lkdGgoY29uc3QgVGV4dEF1dG9zaXppbmdDbHVz
dGVySW5mbyYgcGFyZW50Q2x1c3RlckluZm8sIFZlY3RvcjxWZWN0b3I8VGV4dEF1dG9zaXppbmdD
bHVzdGVySW5mbz4gPiYpOworCiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CiB9OwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggOTE4ZjhmY2IzZjE1ODJkMGUxNjJkZjAyOThlYzcxNTQ0YzA0OGZkZS4uYjI5M2JmOTFlODNj
NzRmNDk0M2I0YzdhZGY2YmQxYzlkZmQ5Y2M0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEz
LTAyLTE0ICBBbnRvbiBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBb
VGV4dCBBdXRvc2l6aW5nXSBDb21iaW5lIG5hcnJvdyBkZXNjZW5kYW50cyBvZiBhIGNsdXN0ZXIg
aW50byBncm91cHMgdGhhdCBzaG91bGQgYmUgYXV0b3NpemVkIHdpdGggdGhlIHNhbWUgbXVsdGlw
bGllci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTgyNQorCisgICAgICAgIFZlcmlmeSB0aGF0IG5hcnJvdyBkZXNjZW5kYW50cyBhcmUgZ3JvdXBl
ZCBhbmQgYXV0b3NpemVkIHNlcGFyYXRlbHkgYWNjb3JkaW5nIHRvIHRoZQorICAgICAgICBkaWZm
ZXJlbmNlIGJldHdlZW4gdGhlIGRlc2NlbmRhbnQncyB3aWR0aCBhbmQgdGhlIHdpZHRoIG9mIGl0
cyBlbmNsb3NpbmcgY2x1c3RlcidzCisgICAgICAgIHxibG9ja0NvbnRhaW5pbmdBbGxUZXh0fC4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
dGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21iaW5lZC1leHBlY3RlZC5odG1s
OgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21i
aW5lZC5odG1sOgorCiAyMDEzLTAyLTE3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lz
YS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEVGTCBnYXJkZW5pbmcuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uYXJyb3ctZGVzY2VuZGFu
dHMtY29tYmluZWQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21iaW5lZC1leHBlY3RlZC5odG1sCmluZGV4IDQ4ZmMy
NGI1ZGE4N2UyNTQwMDA5ZGJhMDkzNzhkMzQ2ZDI4YWZkZWYuLjM0NzJiMzhiNDFiNjJiZmUzMjMx
YjMyYjFkYmE0NmExN2FiZGE0MjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1h
dXRvc2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21iaW5lZC1leHBlY3RlZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21i
aW5lZC1leHBlY3RlZC5odG1sCkBAIC0xMiwxNCArMTIsMTkgQEAgYm9keSB7IHdpZHRoOiA4MDBw
eDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KIDxib2R5PgogCiA8ZGl2IHN0eWxl
PSJmb250LXNpemU6IDEuMjVyZW0iPgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyNDBweCI+Cisg
ICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDIwcHggY29tcHV0ZWQgZm9u
dC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggdGhlIG5leHQgYW5kIHRoZSBsYXN0IG5hcnJv
dyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguCisgICAgPC9kaXY+CiAg
ICAgPGRpdiBzdHlsZT0id2lkdGg6IDMyMHB4Ij4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBi
ZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmluZWQg
d2l0aCBpdHMgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0MDBweC4K
KyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBm
b250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCB0aGUgZmlyc3QgYW5kIHRoZSBsYXN0IG5h
cnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguCiAgICAgPC9kaXY+
Ci0gICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KLSAgICAgICAgVGhpcyB0ZXh0IHNob3Vs
ZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmlu
ZWQgd2l0aCBpdHMgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0MDBw
eC4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTYwcHg7IGZvbnQtc2l6ZTogMS43NXJlbSI+Cisg
ICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDI4cHggY29tcHV0ZWQgZm9u
dC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIGludG8gYSBzZXBhcmF0ZSBncm91cCBmcm9tIGl0cyB0
d28gc2libGluZ3Mgc2luY2UgaXQncyBzaWduaWZpY2FudGx5IHdpZGVyLjxicj4KKyAgICAgICAg
TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQs
IHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFn
bmEgYWxpcXVhLgogICAgIDwvZGl2PgotICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyNDBweCI+Ci0g
ICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDIwcHggY29tcHV0ZWQgZm9u
dC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggaXRzIG5hcnJvdyBzaWJsaW5ncyBhbmQgdGhl
IG1heGltdW0gd2lkdGggaXMgNDAwcHguCisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4K
KyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBm
b250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCB0aGUgZmlyc3QgYW5kIHRoZSBzZWNvbmQg
bmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0MDBweC48YnI+CisgICAg
ICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBl
bGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3Jl
IG1hZ25hIGFsaXF1YS4KICAgICA8L2Rpdj4KIDwvZGl2PgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uYXJyb3ctZGVzY2VuZGFudHMtY29tYmluZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1j
b21iaW5lZC5odG1sCmluZGV4IDVhYWMzNmI2YjY4MjA1NjE1YzkwNzI2NDk0MzQ2MWY1NGQ4NTg2
MDkuLjQ3MjBlNjFmMjIwODg4YWEzZmI1MjQ3Y2I5MDVjZjZmYmM0YTc4NjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1kZXNjZW5kYW50cy1jb21i
aW5lZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25hcnJvdy1k
ZXNjZW5kYW50cy1jb21iaW5lZC5odG1sCkBAIC0yMSwxNCArMjEsMTkgQEAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKIDxib2R5PgogCiA8ZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAyNDBw
eCI+CisgICAgICAgIFRoaXMgdGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDIwcHggY29tcHV0
ZWQgZm9udC1zaXplIGFzIGl0IGlzIGNvbWJpbmVkIHdpdGggdGhlIG5leHQgYW5kIHRoZSBsYXN0
IG5hcnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguCisgICAgPC9k
aXY+CiAgICAgPGRpdiBzdHlsZT0id2lkdGg6IDMyMHB4Ij4KLSAgICAgICAgVGhpcyB0ZXh0IHNo
b3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29t
YmluZWQgd2l0aCBpdHMgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0aCBpcyA0
MDBweC4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21w
dXRlZCBmb250LXNpemUgYXMgaXQgaXMgY29tYmluZWQgd2l0aCB0aGUgZmlyc3QgYW5kIHRoZSBs
YXN0IG5hcnJvdyBzaWJsaW5ncyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguCiAgICAg
PC9kaXY+Ci0gICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwMHB4Ij4KLSAgICAgICAgVGhpcyB0ZXh0
IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gMjBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMg
Y29tYmluZWQgd2l0aCBpdHMgbmFycm93IHNpYmxpbmdzIGFuZCB0aGUgbWF4aW11bSB3aWR0aCBp
cyA0MDBweC4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTYwcHgiPgorICAgICAgICBUaGlzIHRl
eHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byAyOHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBpdCBp
cyBjb21iaW5lZCBpbnRvIGEgc2VwYXJhdGUgZ3JvdXAgZnJvbSBpdHMgdHdvIHNpYmxpbmdzIHNp
bmNlIGl0J3Mgc2lnbmlmaWNhbnRseSB3aWRlci48YnI+CisgICAgICAgIExvcmVtIGlwc3VtIGRv
bG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21v
ZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4KICAg
ICA8L2Rpdj4KLSAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogMjQwcHgiPgotICAgICAgICBUaGlzIHRl
eHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byAyMHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBpdCBp
cyBjb21iaW5lZCB3aXRoIGl0cyBuYXJyb3cgc2libGluZ3MgYW5kIHRoZSBtYXhpbXVtIHdpZHRo
IGlzIDQwMHB4LgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MDBweCI+CisgICAgICAgIFRoaXMg
dGV4dCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDIwcHggY29tcHV0ZWQgZm9udC1zaXplIGFzIGl0
IGlzIGNvbWJpbmVkIHdpdGggdGhlIGZpcnN0IGFuZCB0aGUgc2Vjb25kIG5hcnJvdyBzaWJsaW5n
cyBhbmQgdGhlIG1heGltdW0gd2lkdGggaXMgNDAwcHguPGJyPgorICAgICAgICBMb3JlbSBpcHN1
bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVp
dXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEu
CiAgICAgPC9kaXY+CiA8L2Rpdj4KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>