<?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>51161</bug_id>
          
          <creation_ts>2010-12-15 19:04:16 -0800</creation_ts>
          <short_desc>[Qt] Blur distance should not be affected by transformations</short_desc>
          <delta_ts>2010-12-21 17:01:52 -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>Canvas</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>34479</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Helder Correia">helder</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ariya.hidayat</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>323014</commentid>
    <comment_count>0</comment_count>
    <who name="Helder Correia">helder</who>
    <bug_when>2010-12-15 19:04:16 -0800</bug_when>
    <thetext>From the spec at http://dev.w3.org/html5/2dcontext/#dom-context-2d-shadowblur :
&quot;The shadowBlur attribute specifies the level of the blurring effect. (The units do not map to coordinate space units, and are not affected by the current transformation matrix.)&quot;

Currently, blurring is applied in the untransformed layerImage. When layerImage is transformed and displayed on screen, the blur radius will also be affected by the scaling factor. The solution is dividing the blur radius by the balanced (X and Y) scaling factor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323048</commentid>
    <comment_count>1</comment_count>
      <attachid>76734</attachid>
    <who name="Helder Correia">helder</who>
    <bug_when>2010-12-15 22:10:02 -0800</bug_when>
    <thetext>Created attachment 76734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323212</commentid>
    <comment_count>2</comment_count>
      <attachid>76734</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-12-16 09:23:23 -0800</bug_when>
    <thetext>Comment on attachment 76734
Patch

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

Minor issues, otherwise LGTM.

&gt; WebCore/ChangeLog:5
&gt; +        [Qt] shadowBlur should not be affected by scaling

Although shadowBlur is the term used by the spec, I guess it&apos;s clearer if here we put e.g. &quot;Shadow distance&quot; instead.

&gt; WebCore/platform/graphics/qt/ContextShadowQt.cpp:119
&gt; +    // Adjust blur if we&apos;re scaling, since the radius must not be affected by transformations.

Seems that it is possible to refactor this to be usable for Cairo as well.

&gt; WebCore/platform/graphics/qt/ContextShadowQt.cpp:142
&gt; +        // Calculate X axis scale factor.
&gt; +        const float xAxisHorizontalChange = transformedXAxisUnit.x() - transformedOrigin.x();
&gt; +        const float xAxisVerticalChange = transformedXAxisUnit.y() - transformedOrigin.y();
&gt; +        const float xAxisScale = sqrtf(xAxisHorizontalChange * xAxisHorizontalChange
&gt; +                                       + xAxisVerticalChange * xAxisVerticalChange);
&gt; +
&gt; +        // Calculate Y axis scale factor.
&gt; +        const float yAxisHorizontalChange = transformedYAxisUnit.x() - transformedOrigin.x();
&gt; +        const float yAxisVerticalChange = transformedYAxisUnit.y() - transformedOrigin.y();
&gt; +        const float yAxisScale = sqrtf(yAxisHorizontalChange * yAxisHorizontalChange
&gt; +                                       + yAxisVerticalChange * yAxisVerticalChange);

This could be simplified using QVector2D.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323371</commentid>
    <comment_count>3</comment_count>
    <who name="Helder Correia">helder</who>
    <bug_when>2010-12-16 13:05:47 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Seems that it is possible to refactor this to be usable for Cairo as well.

I&apos;ll wait until bug 50422 is resolved for good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324178</commentid>
    <comment_count>4</comment_count>
      <attachid>76950</attachid>
    <who name="Helder Correia">helder</who>
    <bug_when>2010-12-18 20:00:41 -0800</bug_when>
    <thetext>Created attachment 76950
Untested with GTK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324179</commentid>
    <comment_count>5</comment_count>
      <attachid>76950</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-18 20:12:34 -0800</bug_when>
    <thetext>Comment on attachment 76950
Untested with GTK

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

Very nice. A couple nits below.

&gt; WebCore/platform/graphics/ContextShadow.cpp:177
&gt; +    if (!transform.isIdentity()) {

I think this is a good place to use an early return.

&gt; WebCore/platform/graphics/cairo/ContextShadowCairo.cpp:97
&gt;      double x1, x2, y1, y2;
&gt;      cairo_clip_extents(context, &amp;x1, &amp;y1, &amp;x2, &amp;y2);
&gt; +    adjustBlurDistance(context);

Maybe move the third line above the first two lines? The clip extents are only used for the call to calculateLayerBoundingRect, so this is in the middle of another &quot;sentence&quot; so to speak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324180</commentid>
    <comment_count>6</comment_count>
      <attachid>76950</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-12-18 20:19:09 -0800</bug_when>
    <thetext>Comment on attachment 76950
Untested with GTK

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

&gt; LayoutTests/ChangeLog:5
&gt; +        [Qt] Blur distance should not be affected by scaling

s/scaling/transformation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324181</commentid>
    <comment_count>7</comment_count>
      <attachid>76951</attachid>
    <who name="Helder Correia">helder</who>
    <bug_when>2010-12-18 20:23:33 -0800</bug_when>
    <thetext>Created attachment 76951
Suggestions in comment #5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324182</commentid>
    <comment_count>8</comment_count>
      <attachid>76952</attachid>
    <who name="Helder Correia">helder</who>
    <bug_when>2010-12-18 20:32:33 -0800</bug_when>
    <thetext>Created attachment 76952
Correction from comment #7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324231</commentid>
    <comment_count>9</comment_count>
      <attachid>76952</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-12-19 15:17:34 -0800</bug_when>
    <thetext>Comment on attachment 76952
Correction from comment #7

Looks good. re=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324247</commentid>
    <comment_count>10</comment_count>
      <attachid>76952</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-19 17:02:31 -0800</bug_when>
    <thetext>Comment on attachment 76952
Correction from comment #7

Clearing flags on attachment: 76952

Committed r74328: &lt;http://trac.webkit.org/changeset/74328&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324248</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-19 17:02:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324258</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-19 18:13:54 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 76952:

http/tests/navigation/ping-cross-origin-from-https.html bug 51314 (author: japhet@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76734</attachid>
            <date>2010-12-15 22:10:02 -0800</date>
            <delta_ts>2010-12-18 20:00:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51161-20101215221001.patch</filename>
            <type>text/plain</type>
            <size>14680</size>
            <attacher name="Helder Correia">helder</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMjM0NGJmYmJhNjJiNjgzN2UxYjQ0NTQwNTA5ODJiMDhkYTliNDUzLi5mOGNiYjNj
MzdhZWZkODdjZTlkZWQ0MTlhMmVmNmNlNWNiN2IwMWNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTAtMTItMTUgIEhlbGRlciBDb3JyZWlhICA8aGVsZGVyQHNlbmNoYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBzaGFkb3dCbHVy
IHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgc2NhbGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTExNjEKKworICAgICAgICBGcm9tIHRoZSBzcGVj
IGF0IGh0dHA6Ly9kZXYudzMub3JnL2h0bWw1LzJkY29udGV4dC8jZG9tLWNvbnRleHQtMmQtc2hh
ZG93Ymx1cjoKKyAgICAgICAgIlRoZSBzaGFkb3dCbHVyIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhl
IGxldmVsIG9mIHRoZSBibHVycmluZyBlZmZlY3QuCisgICAgICAgIChUaGUgdW5pdHMgZG8gbm90
IG1hcCB0byBjb29yZGluYXRlIHNwYWNlIHVuaXRzLCBhbmQgYXJlIG5vdCBhZmZlY3RlZAorICAg
ICAgICBieSB0aGUgY3VycmVudCB0cmFuc2Zvcm1hdGlvbiBtYXRyaXguKSIKKworICAgICAgICBB
ZGQgdGVzdCB0byBlbnN1cmUgdGhhdCB0aGUgYmx1ciByYWRpdXMgaXMgbm90IGFmZmVjdGVkIGJ5
IHRoZSBDVE0uCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtc2NhbGUtc2hhZG93Qmx1
ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1zY2Fs
ZS1zaGFkb3dCbHVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3NjcmlwdC10
ZXN0cy9jYW52YXMtc2NhbGUtc2hhZG93Qmx1ci5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9j
YW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1zdHJva2VQYXRoLXNoYWRvdy5qczogSW5j
cmVhc2UKKyAgICAgICAgICBzaGFkb3dCbHVyIGFuZCB0ZXN0IHRvbGVyYW5jZSB0byBlYXNlIHRl
c3RpbmcgYW5kIHN1cHBvcnQgdGhlCisgICAgICAgICAgZGlmZmVyZW50IGJsdXJyaW5nIGFsZ29y
aXRobXMuCisgICAgICAgICogZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy10cmFuc2Zv
cm1zLWZpbGxSZWN0LXNoYWRvdy5qczogU2FtZQorICAgICAgICAgIGFzIGFib3ZlLgorCiAyMDEw
LTEyLTE1ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZWJhc2VsaW5lIFdpbmRvd3MgWFAgcmVzdWx0cyBhZnRlciByNzM5OTMuIFdpbmRvd3MgNyBy
ZXN1bHRzIHdlcmUgbGFuZGVkIGluIHI3Mzk5OCwgYnV0IHNvbWUgWFAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zaGFkb3dCbHVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zaGFkb3dCbHVyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMmJiM2E5NDFkOGI5Y2M3Yzk5YjJiYmI1YjYzOGJiZjhjOWE2
YzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNj
YWxlLXNoYWRvd0JsdXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTMgQEAKK0Vuc3VyZSB0aGF0
IGNhbnZhcyBzaGFkb3dCbHVyIGlzIG5vdCBhZmZlY3RlZCBieSB0cmFuc2Zvcm1hdGlvbnMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRbMF0gaXMgMjU1CitQQVNTIGRb
MV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyBhcm91bmQgMjU1CitQQVNTIGRb
MF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgMAor
UEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNd
IGlzIDAKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BB
U1MgZFszXSBpcyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBp
cyAwCitQQVNTIGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDI1NQorUEFTUyBkWzFdIGlzIDAKK1BB
U1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgYXJvdW5kIDEyNgorUEFTUyBkWzBdIGlzIDAKK1BB
U1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIDAKK1BBU1MgZFswXSBp
cyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyAwCitQQVNT
IGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMg
MAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBk
WzNdIGlzIDAKK1BBU1MgZFswXSBpcyAyNTUKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMg
MAorUEFTUyBkWzNdIGlzIGFyb3VuZCAyNTUKK1BBU1MgZFswXSBpcyAyNTUKK1BBU1MgZFsxXSBp
cyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIGFyb3VuZCAyNTUKK1BBU1MgZFswXSBp
cyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyAwCitQQVNT
IGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMg
MAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBk
WzNdIGlzIDAKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAK
K1BBU1MgZFszXSBpcyAwCitQQVNTIGRbMF0gaXMgMjU1CitQQVNTIGRbMV0gaXMgMAorUEFTUyBk
WzJdIGlzIDAKK1BBU1MgZFszXSBpcyBhcm91bmQgMTI2CitQQVNTIGRbMF0gaXMgMAorUEFTUyBk
WzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDAK
K1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIDAKK1BBU1MgZFsw
XSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyAwCitQ
QVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10g
aXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zaGFkb3dC
bHVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2NhbGUtc2hhZG93Qmx1
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI1MWJkOTFmZTE0MzFmMmE4Y2VlY2Q1NTFkM2EzMmE3NDRhNWJm
N2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2Nh
bGUtc2hhZG93Qmx1ci5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvY2FudmFzLXNjYWxlLXNoYWRvd0JsdXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1zaGFkb3dCbHVyLmpzIGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1zaGFkb3dCbHVy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdjMDRjZjg4OTIzODEzYjhhZjc3YjUwOWM2YTc3NDQ0NGFiMWQ3MTgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMv
Y2FudmFzLXNjYWxlLXNoYWRvd0JsdXIuanMKQEAgLTAsMCArMSwxOTMgQEAKK2Rlc2NyaXB0aW9u
KCJFbnN1cmUgdGhhdCBjYW52YXMgc2hhZG93Qmx1ciBpcyBub3QgYWZmZWN0ZWQgYnkgdHJhbnNm
b3JtYXRpb25zLiIpOworCitmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikKK3sKKyAgICB2
YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyYWdy
YXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBw
YXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xvcikK
KyAgICAgICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorCitmdW5j
dGlvbiBzaG91bGRCZUFyb3VuZChhLCBiKQoreworICAgIHZhciBldmFsQTsKKyAgICB0cnkgewor
ICAgICAgICBldmFsQSA9IGV2YWwoYSk7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGV2YWxB
ID0gZTsKKyAgICB9CisKKyAgICBpZiAoTWF0aC5hYnMoZXZhbEEgLSBiKSA8IDEwKQorICAgICAg
ICBwcmludCgiUEFTUyAiICsgYSArICIgaXMgYXJvdW5kICIgKyBiICwgImdyZWVuIikKKyAgICBl
bHNlCisgICAgICAgIHByaW50KCJGQUlMICIgKyBhICsgIiBpcyBub3QgYXJvdW5kICIgKyBiICsg
IiAoYWN0dWFsOiAiICsgZXZhbEEgKyAiKSIsICJyZWQiKTsKK30KKwordmFyIGNhbnZhcyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChjYW52YXMpOworY2FudmFzLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnNjAwJyk7CitjYW52YXMu
c2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnNjAwJyk7Cit2YXIgY3R4ID0gY2FudmFzLmdldENvbnRl
eHQoJzJkJyk7CisKK2N0eC5zaGFkb3dCbHVyID0gMjU7CitjdHguc2hhZG93T2Zmc2V0WCA9IDEw
MDsKK2N0eC5zaGFkb3dPZmZzZXRZID0gMTAwOworY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDAsIDAs
IDI1NSwgMSknOworCisvLyB0b3AgbGVmdAorY3R4LnNoYWRvd0NvbG9yID0gJ3JnYmEoMjU1LCAw
LCAwLCAxLjApJzsKK2N0eC5zY2FsZSg0LCA0KTsKK2N0eC5yb3RhdGUoTWF0aC5QSS8yKTsKK2N0
eC50cmFuc2xhdGUoMjUsIC01MCk7CitjdHguZmlsbFJlY3QoMCwgMCwgMjUsIDI1KTsKKworLy8g
Ym90dG9tIGxlZnQKK2N0eC5zaGFkb3dDb2xvciA9ICdyZ2JhKDI1NSwgMCwgMCwgMC41KSc7Citj
dHguc2V0VHJhbnNmb3JtKDEsIDAsIDAsIDEsIDAsIDApOworY3R4LnNjYWxlKDAuNSwgMC41KTsK
K2N0eC5maWxsUmVjdCgyMDAsIDYwMCwgMjAwLCAyMDApOworCisvLyB0b3AgcmlnaHQKK2N0eC5z
aGFkb3dDb2xvciA9ICdyZ2JhKDI1NSwgMCwgMCwgMS4wKSc7CitjdHguc2NhbGUoMiwgMik7Citj
dHguZmlsbFJlY3QoMzAwLCAxMDAsIDEwMCwgMTAwKTsKKworLy8gYm90dG9tIHJpZ2h0CitjdHgu
c2hhZG93Q29sb3IgPSAncmdiYSgyNTUsIDAsIDAsIDAuNSknOworY3R4LmZpbGxSZWN0KDMwMCwg
MzAwLCAxMDAsIDEwMCk7CisKK3ZhciBkOworCisvLyB0b3AgbGVmdAorZCA9IGN0eC5nZXRJbWFn
ZURhdGEoMjUwLCAyNTAsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcyNTUnKTsKK3No
b3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlQXJv
dW5kKCdkWzNdJywgJzI1NScpOworCitkID0gY3R4LmdldEltYWdlRGF0YSgyNTAsIDE3NSwgMSwg
MSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsK
K3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworZCA9IGN0
eC5nZXRJbWFnZURhdGEoMjUwLCAzMjUsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcw
Jyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91
bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDE3NSwgMjUwLCAxLCAx
KS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOwor
c2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCitkID0gY3R4
LmdldEltYWdlRGF0YSgzMjUsIDI1MCwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAn
KTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3Vs
ZEJlKCdkWzNdJywgJzAnKTsKKworLy8gYm90dG9tIGxlZnQKK2QgPSBjdHguZ2V0SW1hZ2VEYXRh
KDI1MCwgNDUwLCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMjU1Jyk7CitzaG91bGRC
ZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZUFyb3VuZCgn
ZFszXScsICcxMjYnKTsKKworZCA9IGN0eC5nZXRJbWFnZURhdGEoMjUwLCAzNzUsIDEsIDEpLmRh
dGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91
bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0
SW1hZ2VEYXRhKDI1MCwgNTI1LCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOwor
c2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUo
J2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSgxNzUsIDQ1MCwgMSwgMSkuZGF0
YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3Vs
ZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworZCA9IGN0eC5nZXRJ
bWFnZURhdGEoMzI1LCA0NTAsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7Citz
aG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgn
ZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDI1MCwgMjUwLCAxLCAxKS5kYXRh
Oworc2hvdWxkQmUoJ2RbMF0nLCAnMjU1Jyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91
bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZUFyb3VuZCgnZFszXScsICcyNTUnKTsKKworLy8g
dG9wIHJpZ2h0CitkID0gY3R4LmdldEltYWdlRGF0YSg0NTAsIDI1MCwgMSwgMSkuZGF0YTsKK3No
b3VsZEJlKCdkWzBdJywgJzI1NScpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUo
J2RbMl0nLCAnMCcpOworc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnMjU1Jyk7CisKK2QgPSBjdHgu
Z2V0SW1hZ2VEYXRhKDQ1MCwgMTc1LCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcp
Oworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxk
QmUoJ2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSg0NTAsIDMyNSwgMSwgMSku
ZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3No
b3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworZCA9IGN0eC5n
ZXRJbWFnZURhdGEoMzc1LCAyNTAsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7
CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRC
ZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDUyNSwgMjUwLCAxLCAxKS5k
YXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hv
dWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCisvLyB0b3Agcmln
aHQKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDQ1MCwgNDUwLCAxLCAxKS5kYXRhOworc2hvdWxkQmUo
J2RbMF0nLCAnMjU1Jyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScs
ICcwJyk7CitzaG91bGRCZUFyb3VuZCgnZFszXScsICcxMjYnKTsKKworZCA9IGN0eC5nZXRJbWFn
ZURhdGEoNDUwLCAzNzUsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91
bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFsz
XScsICcwJyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDQ1MCwgNTI1LCAxLCAxKS5kYXRhOwor
c2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUo
J2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdl
RGF0YSgzNzUsIDQ1MCwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3Vs
ZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNd
JywgJzAnKTsKKworZCA9IGN0eC5nZXRJbWFnZURhdGEoNTI1LCA0NTAsIDEsIDEpLmRhdGE7Citz
aG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgn
ZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0
LXRlc3RzL2NhbnZhcy1zY2FsZS1zdHJva2VQYXRoLXNoYWRvdy5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtc2NhbGUtc3Ryb2tlUGF0aC1zaGFkb3cuanMK
aW5kZXggOTFiOTI3Zjk1ZmE4N2RlNWY5ZDY1NWYzYjJmZmQyZjRiNWRhZDUzNi4uOTc1YzgwZWFh
YWVlZDYwNDgxZmU1ZTYzM2Q3OTU0NmI5MThkMDAzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1zdHJva2VQYXRoLXNoYWRvdy5q
cworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLXNjYWxl
LXN0cm9rZVBhdGgtc2hhZG93LmpzCkBAIC0xOSw3ICsxOSw3IEBAIGZ1bmN0aW9uIHNob3VsZEJl
QXJvdW5kKGEsIGIpCiAgICAgICAgIGV2YWxBID0gZTsKICAgICB9CiAKLSAgICBpZiAoTWF0aC5h
YnMoZXZhbEEgLSBiKSA8IDEwKQorICAgIGlmIChNYXRoLmFicyhldmFsQSAtIGIpIDwgMjApCiAg
ICAgICAgIHByaW50KCJQQVNTICIgKyBhICsgIiBpcyBhcm91bmQgIiArIGIgLCAiZ3JlZW4iKQog
ICAgIGVsc2UKICAgICAgICAgcHJpbnQoIkZBSUwgIiArIGEgKyAiIGlzIG5vdCBhcm91bmQgIiAr
IGIgKyAiIChhY3R1YWw6ICIgKyBldmFsQSArICIpIiwgInJlZCIpOwpAQCAtNTYsNyArNTYsNyBA
QCBjdHgubGluZVRvKDUwLCAxNTApOwogY3R4LnN0cm9rZSgpOwogCiBjdHguc2hhZG93Q29sb3Ig
PSAncmdiYSgyNTUsIDAsIDAsIDEuMCknOwotY3R4LnNoYWRvd0JsdXIgPSAxMDsKK2N0eC5zaGFk
b3dCbHVyID0gMTU7CiBjdHguYmVnaW5QYXRoKCk7CiBjdHgubW92ZVRvKDE1MCwgNTApOwogY3R4
LmxpbmVUbygyMDAsIDUwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Nj
cmlwdC10ZXN0cy9jYW52YXMtdHJhbnNmb3Jtcy1maWxsUmVjdC1zaGFkb3cuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLXRyYW5zZm9ybXMtZmlsbFJlY3Qt
c2hhZG93LmpzCmluZGV4IGI2N2YyNDQzY2JlOTA2MDA1M2JjMzk5MDI3OTg1ZWU1ZjA3Mzc5ZWYu
LjM5ZmQwZTQxZTI4MWVkZGU1ZWY0YThhZmUyNDMxYjgxYTM4YmI2MWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtdHJhbnNmb3Jtcy1maWxs
UmVjdC1zaGFkb3cuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3Rz
L2NhbnZhcy10cmFuc2Zvcm1zLWZpbGxSZWN0LXNoYWRvdy5qcwpAQCAtMTksNyArMTksNyBAQCBm
dW5jdGlvbiBzaG91bGRCZUFyb3VuZChhLCBiKQogICAgICAgICBldmFsQSA9IGU7CiAgICAgfQog
Ci0gICAgaWYgKE1hdGguYWJzKGV2YWxBIC0gYikgPCAxMCkKKyAgICBpZiAoTWF0aC5hYnMoZXZh
bEEgLSBiKSA8IDIwKQogICAgICAgICBwcmludCgiUEFTUyAiICsgYSArICIgaXMgYXJvdW5kICIg
KyBiICwgImdyZWVuIikKICAgICBlbHNlCiAgICAgICAgIHByaW50KCJGQUlMICIgKyBhICsgIiBp
cyBub3QgYXJvdW5kICIgKyBiICsgIiAoYWN0dWFsOiAiICsgZXZhbEEgKyAiKSIsICJyZWQiKTsK
QEAgLTQ1LDcgKzQ1LDcgQEAgY3R4LmZpbGxSZWN0KDEwMCwgLTE1MCwgNTAsIDUwKTsKIGN0eC5z
aGFkb3dDb2xvciA9ICdyZ2JhKDI1NSwgMCwgMCwgMC41KSc7CiBjdHguZmlsbFJlY3QoMjAwLCAt
MTUwLCA1MCwgNTApOwogCi1jdHguc2hhZG93Qmx1ciA9IDU7CitjdHguc2hhZG93Qmx1ciA9IDE1
OwogY3R4LnNoYWRvd0NvbG9yID0gJ3JnYmEoMjU1LCAwLCAwLCAxLjApJzsKIGN0eC5maWxsUmVj
dCgxMDAsIC0yNTAsIDUwLCA1MCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI5ZGYyZTdmZjVkZDFlNDRjNDhmMjJiNTRiYTZkYmM4
MTBhZWM4ZS4uZWFmYjkwNDBkM2MxZTU2N2ZlZDVjZTZiN2ZjOTJmMjc2ZTlmOGJjZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMC0xMi0xNSAgSGVsZGVyIENvcnJlaWEgIDxoZWxkZXJAc2VuY2hhLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIHNo
YWRvd0JsdXIgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZCBieSBzY2FsaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTE2MQorCisgICAgICAgIEZyb20g
dGhlIHNwZWMgYXQgaHR0cDovL2Rldi53My5vcmcvaHRtbDUvMmRjb250ZXh0LyNkb20tY29udGV4
dC0yZC1zaGFkb3dibHVyOgorICAgICAgICAiVGhlIHNoYWRvd0JsdXIgYXR0cmlidXRlIHNwZWNp
ZmllcyB0aGUgbGV2ZWwgb2YgdGhlIGJsdXJyaW5nIGVmZmVjdC4KKyAgICAgICAgKFRoZSB1bml0
cyBkbyBub3QgbWFwIHRvIGNvb3JkaW5hdGUgc3BhY2UgdW5pdHMsIGFuZCBhcmUgbm90IGFmZmVj
dGVkCisgICAgICAgIGJ5IHRoZSBjdXJyZW50IHRyYW5zZm9ybWF0aW9uIG1hdHJpeC4pIgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zaGFkb3dCbHVyLmh0bWwKKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3dRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpiZWdpblNoYWRvd0xheWVyKToKKwogMjAxMC0x
Mi0xNSAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgSm9uIEhvbmV5Y3V0dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvd1F0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvQ29udGV4dFNoYWRvd1F0LmNwcAppbmRleCAxMzJlMTI5OThiZGZhM2MzYTY5YTNkZTBk
MTcyZmZlNDg1ZjYwOWUyLi4wMzllMzFmNmQyYjU3ZjdmMjUyYWE4OWQ2MzZjNTkzZWRlOGQ0Nzcy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3dR
dC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hhZG93UXQu
Y3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSA8UVBhaW50ZXI+CiAjaW5jbHVkZSA8UVRp
bWVyRXZlbnQ+CiAKKyNpbmNsdWRlIDxtYXRoLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Ly8gQ29udGV4dFNoYWRvdyBuZWVkcyBhIHNjcmF0Y2ggaW1hZ2UgYXMgdGhlIGJ1ZmZlciBmb3Ig
dGhlIGJsdXIgZmlsdGVyLgpAQCAtMTE0LDYgKzExNiwzOCBAQCBQbGF0Zm9ybUNvbnRleHQgQ29u
dGV4dFNoYWRvdzo6YmVnaW5TaGFkb3dMYXllcihQbGF0Zm9ybUNvbnRleHQgcCwgY29uc3QgRmxv
YXRSZQogICAgIGVsc2UKICAgICAgICAgY2xpcFJlY3QgPSBwLT50cmFuc2Zvcm0oKS5pbnZlcnRl
ZCgpLm1hcFJlY3QocC0+d2luZG93KCkpOwogCisgICAgLy8gQWRqdXN0IGJsdXIgaWYgd2UncmUg
c2NhbGluZywgc2luY2UgdGhlIHJhZGl1cyBtdXN0IG5vdCBiZSBhZmZlY3RlZCBieSB0cmFuc2Zv
cm1hdGlvbnMuCisgICAgUVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBwLT50cmFuc2Zvcm0oKTsKKyAg
ICBpZiAoIXRyYW5zZm9ybS5pc0lkZW50aXR5KCkpIHsKKyAgICAgICAgLy8gUmVmZXJlbmNlIHBv
aW50cyB0byBmaW5kIGF4aXMgc2NhbGluZy4KKyAgICAgICAgY29uc3QgUVBvaW50RiBvcmlnaW4o
MCwgMCk7CisgICAgICAgIGNvbnN0IFFQb2ludEYgeEF4aXNVbml0KDEsIDApOworICAgICAgICBj
b25zdCBRUG9pbnRGIHlBeGlzVW5pdCgwLCAxKTsKKworICAgICAgICAvLyBBcHBseSB0aGUgQ1RN
IHRvIHRoZSByZWZlcmVuY2UgcG9pbnRzLgorICAgICAgICBjb25zdCBRUG9pbnRGIHRyYW5zZm9y
bWVkT3JpZ2luID0gdHJhbnNmb3JtLm1hcChvcmlnaW4pOworICAgICAgICBjb25zdCBRUG9pbnRG
IHRyYW5zZm9ybWVkWEF4aXNVbml0ID0gdHJhbnNmb3JtLm1hcCh4QXhpc1VuaXQpOworICAgICAg
ICBjb25zdCBRUG9pbnRGIHRyYW5zZm9ybWVkWUF4aXNVbml0ID0gdHJhbnNmb3JtLm1hcCh5QXhp
c1VuaXQpOworCisgICAgICAgIC8vIENhbGN1bGF0ZSBYIGF4aXMgc2NhbGUgZmFjdG9yLgorICAg
ICAgICBjb25zdCBmbG9hdCB4QXhpc0hvcml6b250YWxDaGFuZ2UgPSB0cmFuc2Zvcm1lZFhBeGlz
VW5pdC54KCkgLSB0cmFuc2Zvcm1lZE9yaWdpbi54KCk7CisgICAgICAgIGNvbnN0IGZsb2F0IHhB
eGlzVmVydGljYWxDaGFuZ2UgPSB0cmFuc2Zvcm1lZFhBeGlzVW5pdC55KCkgLSB0cmFuc2Zvcm1l
ZE9yaWdpbi55KCk7CisgICAgICAgIGNvbnN0IGZsb2F0IHhBeGlzU2NhbGUgPSBzcXJ0Zih4QXhp
c0hvcml6b250YWxDaGFuZ2UgKiB4QXhpc0hvcml6b250YWxDaGFuZ2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICsgeEF4aXNWZXJ0aWNhbENoYW5nZSAqIHhBeGlzVmVy
dGljYWxDaGFuZ2UpOworCisgICAgICAgIC8vIENhbGN1bGF0ZSBZIGF4aXMgc2NhbGUgZmFjdG9y
LgorICAgICAgICBjb25zdCBmbG9hdCB5QXhpc0hvcml6b250YWxDaGFuZ2UgPSB0cmFuc2Zvcm1l
ZFlBeGlzVW5pdC54KCkgLSB0cmFuc2Zvcm1lZE9yaWdpbi54KCk7CisgICAgICAgIGNvbnN0IGZs
b2F0IHlBeGlzVmVydGljYWxDaGFuZ2UgPSB0cmFuc2Zvcm1lZFlBeGlzVW5pdC55KCkgLSB0cmFu
c2Zvcm1lZE9yaWdpbi55KCk7CisgICAgICAgIGNvbnN0IGZsb2F0IHlBeGlzU2NhbGUgPSBzcXJ0
Zih5QXhpc0hvcml6b250YWxDaGFuZ2UgKiB5QXhpc0hvcml6b250YWxDaGFuZ2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgeUF4aXNWZXJ0aWNhbENoYW5nZSAqIHlB
eGlzVmVydGljYWxDaGFuZ2UpOworCisgICAgICAgIC8vIGJsdXJMYXllckltYWdlKCkgZG9lcyBu
b3Qgc3VwcG9ydCBwZXItYXhpcyBibHVycmluZywgc28gY2FsY3VsYXRlIGEgYmFsYW5jZWQgc2Nh
bGluZy4KKyAgICAgICAgY29uc3QgZmxvYXQgc2NhbGUgPSBzcXJ0Zih4QXhpc1NjYWxlICogeUF4
aXNTY2FsZSk7CisKKyAgICAgICAgLy8gRmluYWxseSwgc2V0IHRoZSBzY2FsZWQgYmx1ciByYWRp
dXMuCisgICAgICAgIG1fYmx1ckRpc3RhbmNlID0gcm91bmRmKHN0YXRpY19jYXN0PGZsb2F0Piht
X2JsdXJEaXN0YW5jZSkgLyBzY2FsZSk7CisgICAgfQorCiAgICAgLy8gU2V0IG1fbGF5ZXJPcmln
aW4sIG1fbGF5ZXJDb250ZXh0VHJhbnNsYXRpb24sIG1fc291cmNlUmVjdC4KICAgICBJbnRSZWN0
IGNsaXAoY2xpcFJlY3QueCgpLCBjbGlwUmVjdC55KCksIGNsaXBSZWN0LndpZHRoKCksIGNsaXBS
ZWN0LmhlaWdodCgpKTsKICAgICBJbnRSZWN0IGxheWVyUmVjdCA9IGNhbGN1bGF0ZUxheWVyQm91
bmRpbmdSZWN0KHAsIGxheWVyQXJlYSwgY2xpcCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76950</attachid>
            <date>2010-12-18 20:00:41 -0800</date>
            <delta_ts>2010-12-18 20:23:29 -0800</delta_ts>
            <desc>Untested with GTK</desc>
            <filename>bug-51161-20101218200040.patch</filename>
            <type>text/plain</type>
            <size>17173</size>
            <attacher name="Helder Correia">helder</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MmZmNmIwN2M2OGYwNGFjNTkxMDlkMTJhYjg0NWU0OGEwOTJkZmMwLi40ZmVlNmQ1
Y2MyMjEwOTA4NmJiMmUyMmJmMGRiODE3NmQ4NDExMGJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTItMTggIEhlbGRlciBDb3JyZWlhICA8aGVsZGVyQHNlbmNoYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBCbHVyIGRpc3Rh
bmNlIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgc2NhbGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTExNjEKKworICAgICAgICBGcm9tIHRoZSBz
cGVjIGF0IGh0dHA6Ly9kZXYudzMub3JnL2h0bWw1LzJkY29udGV4dC8jZG9tLWNvbnRleHQtMmQt
c2hhZG93Ymx1cjoKKyAgICAgICAgIlRoZSBzaGFkb3dCbHVyIGF0dHJpYnV0ZSBzcGVjaWZpZXMg
dGhlIGxldmVsIG9mIHRoZSBibHVycmluZyBlZmZlY3QuCisgICAgICAgIChUaGUgdW5pdHMgZG8g
bm90IG1hcCB0byBjb29yZGluYXRlIHNwYWNlIHVuaXRzLCBhbmQgYXJlIG5vdCBhZmZlY3RlZAor
ICAgICAgICBieSB0aGUgY3VycmVudCB0cmFuc2Zvcm1hdGlvbiBtYXRyaXguKSIKKworICAgICAg
ICBBZGQgdGVzdCB0byBlbnN1cmUgdGhhdCB0aGUgYmx1ciByYWRpdXMgaXMgbm90IGFmZmVjdGVk
IGJ5IHRoZSBDVE0uCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtc2NhbGUtc2hhZG93
Qmx1ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1z
Y2FsZS1zaGFkb3dCbHVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1zY2FsZS1zdHJva2VQYXRoLXNoYWRvdy1leHBlY3RlZC50eHQ6IEluY3JlYXNlCisgICAgICAg
ICAgc2hhZG93Qmx1ciBhbmQgdGVzdCB0b2xlcmFuY2UgdG8gZWFzZSB0ZXN0aW5nIGFuZCBzdXBw
b3J0IHRoZQorICAgICAgICAgIGRpZmZlcmVudCBibHVycmluZyBhbGdvcml0aG1zLgorICAgICAg
ICAqIGZhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtc2NhbGUtc2hhZG93Qmx1ci5qczog
QWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1z
dHJva2VQYXRoLXNoYWRvdy5qczoKKwogMjAxMC0xMi0xOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENhbWVyb24gWndhcmljaC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zaGFkb3dCbHVyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zaGFkb3dC
bHVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmJiM2E5NDFkOGI5Y2M3Yzk5YjJiYmI1YjYz
OGJiZjhjOWE2YzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Y2FudmFzLXNjYWxlLXNoYWRvd0JsdXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTMgQEAKK0Vu
c3VyZSB0aGF0IGNhbnZhcyBzaGFkb3dCbHVyIGlzIG5vdCBhZmZlY3RlZCBieSB0cmFuc2Zvcm1h
dGlvbnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRbMF0gaXMgMjU1
CitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyBhcm91bmQgMjU1
CitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRb
M10gaXMgMAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAor
UEFTUyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJd
IGlzIDAKK1BBU1MgZFszXSBpcyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BB
U1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDI1NQorUEFTUyBkWzFd
IGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgYXJvdW5kIDEyNgorUEFTUyBkWzBd
IGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIDAKK1BB
U1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBp
cyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNT
IGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMg
MAorUEFTUyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAyNTUKK1BBU1MgZFsxXSBpcyAwCitQQVNT
IGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIGFyb3VuZCAyNTUKK1BBU1MgZFswXSBpcyAyNTUKK1BB
U1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIGFyb3VuZCAyNTUKK1BB
U1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBp
cyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNT
IGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMg
MAorUEFTUyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBk
WzJdIGlzIDAKK1BBU1MgZFszXSBpcyAwCitQQVNTIGRbMF0gaXMgMjU1CitQQVNTIGRbMV0gaXMg
MAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyBhcm91bmQgMTI2CitQQVNTIGRbMF0gaXMg
MAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgMAorUEFTUyBk
WzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIDAK
K1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFsz
XSBpcyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQ
QVNTIGRbM10gaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2Fs
ZS1zaGFkb3dCbHVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2NhbGUt
c2hhZG93Qmx1ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1MWJkOTFmZTE0MzFmMmE4Y2VlY2Q1NTFkM2Ez
MmE3NDRhNWJmN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtc2NhbGUtc2hhZG93Qmx1ci5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvY2FudmFzLXNjYWxlLXNo
YWRvd0JsdXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNjYWxlLXN0cm9rZVBhdGgtc2hhZG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zdHJva2VQYXRo
LXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggYTMzN2M0YjYzZmYxZGRmZWVkNDQ4OGUzNTFmZmRh
ZTE0OWVhODUxNi4uYWViODM2MzcwYzRkZjgzMjQxYjk5ZGQxNDhmZWIxNDE3YmYwNTBiZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNjYWxlLXN0cm9rZVBhdGgt
c2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMt
c2NhbGUtc3Ryb2tlUGF0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CkBAIC0zMCwxNSArMzAsMTUgQEAg
UEFTUyBkWzNdIGlzIGFyb3VuZCA3NgogUEFTUyBkWzBdIGlzIDI1NQogUEFTUyBkWzFdIGlzIDAK
IFBBU1MgZFsyXSBpcyAwCi1QQVNTIGRbM10gaXMgYXJvdW5kIDE0OQorUEFTUyBkWzNdIGlzIGFy
b3VuZCAyMDAKIFBBU1MgZFswXSBpcyAyNTUKIFBBU1MgZFsxXSBpcyAwCiBQQVNTIGRbMl0gaXMg
MAotUEFTUyBkWzNdIGlzIGFyb3VuZCAxMTYKK1BBU1MgZFszXSBpcyBhcm91bmQgNDkKIFBBU1Mg
ZFswXSBpcyAyNTUKIFBBU1MgZFsxXSBpcyAwCiBQQVNTIGRbMl0gaXMgMAotUEFTUyBkWzNdIGlz
IGFyb3VuZCAxMTUKK1BBU1MgZFszXSBpcyBhcm91bmQgMTk5CiBQQVNTIGRbMF0gaXMgMjU1CiBQ
QVNTIGRbMV0gaXMgMAogUEFTUyBkWzJdIGlzIDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtc2NhbGUtc2hhZG93Qmx1ci5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtc2NhbGUtc2hhZG93Qmx1ci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43YzA0Y2Y4ODkyMzgxM2I4YWY3N2I1MDljNmE3NzQ0NDRhYjFkNzE4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2Nh
bnZhcy1zY2FsZS1zaGFkb3dCbHVyLmpzCkBAIC0wLDAgKzEsMTkzIEBACitkZXNjcmlwdGlvbigi
RW5zdXJlIHRoYXQgY2FudmFzIHNoYWRvd0JsdXIgaXMgbm90IGFmZmVjdGVkIGJ5IHRyYW5zZm9y
bWF0aW9ucy4iKTsKKworZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpCit7CisgICAgdmFy
IHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHBhcmFncmFw
aC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgcGFy
YWdyYXBoLnN0eWxlLmZvbnRGYW1pbHkgPSAibW9ub3NwYWNlIjsKKyAgICBpZiAoY29sb3IpCisg
ICAgICAgIHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKK30KKworZnVuY3Rp
b24gc2hvdWxkQmVBcm91bmQoYSwgYikKK3sKKyAgICB2YXIgZXZhbEE7CisgICAgdHJ5IHsKKyAg
ICAgICAgZXZhbEEgPSBldmFsKGEpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBldmFsQSA9
IGU7CisgICAgfQorCisgICAgaWYgKE1hdGguYWJzKGV2YWxBIC0gYikgPCAxMCkKKyAgICAgICAg
cHJpbnQoIlBBU1MgIiArIGEgKyAiIGlzIGFyb3VuZCAiICsgYiAsICJncmVlbiIpCisgICAgZWxz
ZQorICAgICAgICBwcmludCgiRkFJTCAiICsgYSArICIgaXMgbm90IGFyb3VuZCAiICsgYiArICIg
KGFjdHVhbDogIiArIGV2YWxBICsgIikiLCAicmVkIik7Cit9CisKK3ZhciBjYW52YXMgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Y2FudmFzKTsKK2NhbnZhcy5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzYwMCcpOworY2FudmFzLnNl
dEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzYwMCcpOwordmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0
KCcyZCcpOworCitjdHguc2hhZG93Qmx1ciA9IDI1OworY3R4LnNoYWRvd09mZnNldFggPSAxMDA7
CitjdHguc2hhZG93T2Zmc2V0WSA9IDEwMDsKK2N0eC5maWxsU3R5bGUgPSAncmdiYSgwLCAwLCAy
NTUsIDEpJzsKKworLy8gdG9wIGxlZnQKK2N0eC5zaGFkb3dDb2xvciA9ICdyZ2JhKDI1NSwgMCwg
MCwgMS4wKSc7CitjdHguc2NhbGUoNCwgNCk7CitjdHgucm90YXRlKE1hdGguUEkvMik7CitjdHgu
dHJhbnNsYXRlKDI1LCAtNTApOworY3R4LmZpbGxSZWN0KDAsIDAsIDI1LCAyNSk7CisKKy8vIGJv
dHRvbSBsZWZ0CitjdHguc2hhZG93Q29sb3IgPSAncmdiYSgyNTUsIDAsIDAsIDAuNSknOworY3R4
LnNldFRyYW5zZm9ybSgxLCAwLCAwLCAxLCAwLCAwKTsKK2N0eC5zY2FsZSgwLjUsIDAuNSk7Citj
dHguZmlsbFJlY3QoMjAwLCA2MDAsIDIwMCwgMjAwKTsKKworLy8gdG9wIHJpZ2h0CitjdHguc2hh
ZG93Q29sb3IgPSAncmdiYSgyNTUsIDAsIDAsIDEuMCknOworY3R4LnNjYWxlKDIsIDIpOworY3R4
LmZpbGxSZWN0KDMwMCwgMTAwLCAxMDAsIDEwMCk7CisKKy8vIGJvdHRvbSByaWdodAorY3R4LnNo
YWRvd0NvbG9yID0gJ3JnYmEoMjU1LCAwLCAwLCAwLjUpJzsKK2N0eC5maWxsUmVjdCgzMDAsIDMw
MCwgMTAwLCAxMDApOworCit2YXIgZDsKKworLy8gdG9wIGxlZnQKK2QgPSBjdHguZ2V0SW1hZ2VE
YXRhKDI1MCwgMjUwLCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMjU1Jyk7CitzaG91
bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZUFyb3Vu
ZCgnZFszXScsICcyNTUnKTsKKworZCA9IGN0eC5nZXRJbWFnZURhdGEoMjUwLCAxNzUsIDEsIDEp
LmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7Citz
aG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHgu
Z2V0SW1hZ2VEYXRhKDI1MCwgMzI1LCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcp
Oworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxk
QmUoJ2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSgxNzUsIDI1MCwgMSwgMSku
ZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3No
b3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworZCA9IGN0eC5n
ZXRJbWFnZURhdGEoMzI1LCAyNTAsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7
CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRC
ZSgnZFszXScsICcwJyk7CisKKy8vIGJvdHRvbSBsZWZ0CitkID0gY3R4LmdldEltYWdlRGF0YSgy
NTAsIDQ1MCwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzI1NScpOworc2hvdWxkQmUo
J2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmVBcm91bmQoJ2Rb
M10nLCAnMTI2Jyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDI1MCwgMzc1LCAxLCAxKS5kYXRh
Oworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxk
QmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldElt
YWdlRGF0YSgyNTAsIDUyNSwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3No
b3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdk
WzNdJywgJzAnKTsKKworZCA9IGN0eC5nZXRJbWFnZURhdGEoMTc1LCA0NTAsIDEsIDEpLmRhdGE7
CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRC
ZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0SW1h
Z2VEYXRhKDMyNSwgNDUwLCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hv
dWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2Rb
M10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSgyNTAsIDI1MCwgMSwgMSkuZGF0YTsK
K3Nob3VsZEJlKCdkWzBdJywgJzI1NScpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxk
QmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnMjU1Jyk7CisKKy8vIHRv
cCByaWdodAorZCA9IGN0eC5nZXRJbWFnZURhdGEoNDUwLCAyNTAsIDEsIDEpLmRhdGE7CitzaG91
bGRCZSgnZFswXScsICcyNTUnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdk
WzJdJywgJzAnKTsKK3Nob3VsZEJlQXJvdW5kKCdkWzNdJywgJzI1NScpOworCitkID0gY3R4Lmdl
dEltYWdlRGF0YSg0NTAsIDE3NSwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsK
K3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJl
KCdkWzNdJywgJzAnKTsKKworZCA9IGN0eC5nZXRJbWFnZURhdGEoNDUwLCAzMjUsIDEsIDEpLmRh
dGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91
bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0
SW1hZ2VEYXRhKDM3NSwgMjUwLCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOwor
c2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUo
J2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSg1MjUsIDI1MCwgMSwgMSkuZGF0
YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3Vs
ZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworLy8gdG9wIHJpZ2h0
CitkID0gY3R4LmdldEltYWdlRGF0YSg0NTAsIDQ1MCwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdk
WzBdJywgJzI1NScpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAn
MCcpOworc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnMTI2Jyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VE
YXRhKDQ1MCwgMzc1LCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxk
QmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10n
LCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSg0NTAsIDUyNSwgMSwgMSkuZGF0YTsKK3No
b3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdk
WzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworZCA9IGN0eC5nZXRJbWFnZURh
dGEoMzc1LCA0NTAsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRC
ZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScs
ICcwJyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDUyNSwgNDUwLCAxLCAxKS5kYXRhOworc2hv
dWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2Rb
Ml0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10
ZXN0cy9jYW52YXMtc2NhbGUtc3Ryb2tlUGF0aC1zaGFkb3cuanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLXNjYWxlLXN0cm9rZVBhdGgtc2hhZG93LmpzCmlu
ZGV4IDYwMDIxNzVhYjNmNmIyMWZmMmE3ZWRkY2ViYTY0NzBhY2U2YmEzODguLjVlNWM4ZjNjZjhm
ZmRiYTNhNzQwZjgzNGEzOTdlZTk5YzYwNGRjMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtc2NhbGUtc3Ryb2tlUGF0aC1zaGFkb3cuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1z
dHJva2VQYXRoLXNoYWRvdy5qcwpAQCAtMjcsOCArMjcsOCBAQCBmdW5jdGlvbiBzaG91bGRCZUFy
b3VuZChhLCBiKQogCiB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFz
Jyk7CiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNhbnZhcyk7Ci1jYW52YXMuc2V0QXR0cmli
dXRlKCd3aWR0aCcsICcxMDAwJyk7Ci1jYW52YXMuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnMTAw
MCcpOworY2FudmFzLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnNjAwJyk7CitjYW52YXMuc2V0QXR0
cmlidXRlKCdoZWlnaHQnLCAnNjAwJyk7CiB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJk
Jyk7CiAKIGN0eC5zY2FsZSgyLCAyKTsKQEAgLTExNSwyMyArMTE1LDIzIEBAIHNob3VsZEJlKCdk
WzJdJywgJzAnKTsKIHNob3VsZEJlQXJvdW5kKCdkWzNdJywgJzc2Jyk7CiAKIC8vIFZlcmlmeSBi
bHVycnkgc2hhZG93LgotZCA9IGN0eC5nZXRJbWFnZURhdGEoNDA0LCAyMTAsIDEsIDEpLmRhdGE7
CitkID0gY3R4LmdldEltYWdlRGF0YSgzOTgsIDIxMCwgMSwgMSkuZGF0YTsKIHNob3VsZEJlKCdk
WzBdJywgJzI1NScpOwogc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOwogc2hvdWxkQmUoJ2RbMl0nLCAn
MCcpOwotc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnMTQ5Jyk7CitzaG91bGRCZUFyb3VuZCgnZFsz
XScsICcyMDAnKTsKIAotZCA9IGN0eC5nZXRJbWFnZURhdGEoNTA1LCAyNTAsIDEsIDEpLmRhdGE7
CitkID0gY3R4LmdldEltYWdlRGF0YSg1MDgsIDI1MCwgMSwgMSkuZGF0YTsKIHNob3VsZEJlKCdk
WzBdJywgJzI1NScpOwogc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOwogc2hvdWxkQmUoJ2RbMl0nLCAn
MCcpOwotc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnMTE2Jyk7CitzaG91bGRCZUFyb3VuZCgnZFsz
XScsICc0OScpOwogCi1kID0gY3R4LmdldEltYWdlRGF0YSg0NTAsIDIwNSwgMSwgMSkuZGF0YTsK
K2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDQ1MCwgMTk4LCAxLCAxKS5kYXRhOwogc2hvdWxkQmUoJ2Rb
MF0nLCAnMjU1Jyk7CiBzaG91bGRCZSgnZFsxXScsICcwJyk7CiBzaG91bGRCZSgnZFsyXScsICcw
Jyk7Ci1zaG91bGRCZUFyb3VuZCgnZFszXScsICcxMTUnKTsKK3Nob3VsZEJlQXJvdW5kKCdkWzNd
JywgJzE5OScpOwogCiAvLyBWZXJpZnkgYmx1cnJ5IGFscGhhIHNoYWRvdy4KIGQgPSBjdHguZ2V0
SW1hZ2VEYXRhKDUwNSwgNDUwLCAxLCAxKS5kYXRhOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OGFkY2Y2MjMzMDcxNzkyM2VhMjQ2NTA0
ZWFmNzQwMTAxN2VlOTEyLi4xOTEyZjdkODU2NzMzOWRjY2M0YzlkYzgzOGNhYmE5ZjhjNzY1ZGM1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDEwLTEyLTE4ICBIZWxkZXIgQ29ycmVpYSAgPGhlbGRlckBzZW5j
aGEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gQmx1ciBkaXN0YW5jZSBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IHNjYWxpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMTYxCisKKyAg
ICAgICAgRnJvbSB0aGUgc3BlYyBhdCBodHRwOi8vZGV2LnczLm9yZy9odG1sNS8yZGNvbnRleHQv
I2RvbS1jb250ZXh0LTJkLXNoYWRvd2JsdXI6CisgICAgICAgICJUaGUgc2hhZG93Qmx1ciBhdHRy
aWJ1dGUgc3BlY2lmaWVzIHRoZSBsZXZlbCBvZiB0aGUgYmx1cnJpbmcgZWZmZWN0LgorICAgICAg
ICAoVGhlIHVuaXRzIGRvIG5vdCBtYXAgdG8gY29vcmRpbmF0ZSBzcGFjZSB1bml0cywgYW5kIGFy
ZSBub3QgYWZmZWN0ZWQKKyAgICAgICAgYnkgdGhlIGN1cnJlbnQgdHJhbnNmb3JtYXRpb24gbWF0
cml4LikiCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLXNjYWxlLXNoYWRvd0Js
dXIuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjphZGp1c3RCbHVyRGlzdGFuY2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbnRleHRTaGFkb3cuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Db250ZXh0U2hhZG93Q2Fpcm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dFNoYWRvdzo6YmVnaW5TaGFkb3dMYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvd1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRTaGFkb3c6OmJlZ2luU2hhZG93TGF5ZXIpOgorCiAyMDEwLTEyLTE4ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2FtZXJvbiBa
d2FyaWNoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hh
ZG93LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5jcHAKaW5k
ZXggNWU3YTdhMDA5NjUzNmU0YzMxMTdhOTE0OTdiNmFlNGU5YjFkYWJmMy4uYTdhMzE3NDU1ZWI3
MGY4MmI2ZjhlYTU0ODM1NmI5NDU3OWUxZTYzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbnRleHRTaGFkb3cuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29udGV4
dFNoYWRvdy5oIgogCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCisjaW5jbHVkZSA8Y21hdGg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
IApAQCAtMTY5LDYgKzE3MCwzMiBAQCB2b2lkIENvbnRleHRTaGFkb3c6OmJsdXJMYXllckltYWdl
KHVuc2lnbmVkIGNoYXIqIGltYWdlRGF0YSwgY29uc3QgSW50U2l6ZSYgc2l6ZQogICAgIH0KIH0K
IAordm9pZCBDb250ZXh0U2hhZG93OjphZGp1c3RCbHVyRGlzdGFuY2UoY29uc3QgUGxhdGZvcm1D
b250ZXh0IGNvbnRleHQpCit7CisgICAgLy8gQWRqdXN0IGJsdXIgaWYgd2UncmUgc2NhbGluZywg
c2luY2UgdGhlIHJhZGl1cyBtdXN0IG5vdCBiZSBhZmZlY3RlZCBieSB0cmFuc2Zvcm1hdGlvbnMu
CisgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtKGdldFRyYW5zZm9ybWF0
aW9uTWF0cml4RnJvbUNvbnRleHQoY29udGV4dCkpOworICAgIGlmICghdHJhbnNmb3JtLmlzSWRl
bnRpdHkoKSkgeworICAgICAgICAvLyBDYWxjdWxhbGUgdHJhbnNmb3JtZWQgdW5pdCB2ZWN0b3Jz
LgorICAgICAgICBjb25zdCBGbG9hdFF1YWQgdW5pdFF1YWQoRmxvYXRQb2ludCgwLCAwKSwgRmxv
YXRQb2ludCgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb2F0UG9p
bnQoMCwgMSksIEZsb2F0UG9pbnQoMSwgMSkpOworICAgICAgICBjb25zdCBGbG9hdFF1YWQgdHJh
bnNmb3JtZWRVbml0UXVhZCA9IHRyYW5zZm9ybS5tYXBRdWFkKHVuaXRRdWFkKTsKKworICAgICAg
ICAvLyBDYWxjdWxhdGUgWCBheGlzIHNjYWxlIGZhY3Rvci4KKyAgICAgICAgY29uc3QgRmxvYXRT
aXplIHhVbml0Q2hhbmdlID0gdHJhbnNmb3JtZWRVbml0UXVhZC5wMigpIC0gdHJhbnNmb3JtZWRV
bml0UXVhZC5wMSgpOworICAgICAgICBjb25zdCBmbG9hdCB4QXhpc1NjYWxlID0gc3FydGYoeFVu
aXRDaGFuZ2Uud2lkdGgoKSAqIHhVbml0Q2hhbmdlLndpZHRoKCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICsgeFVuaXRDaGFuZ2UuaGVpZ2h0KCkgKiB4VW5pdENoYW5n
ZS5oZWlnaHQoKSk7CisKKyAgICAgICAgLy8gQ2FsY3VsYXRlIFkgYXhpcyBzY2FsZSBmYWN0b3Iu
CisgICAgICAgIGNvbnN0IEZsb2F0U2l6ZSB5VW5pdENoYW5nZSA9IHRyYW5zZm9ybWVkVW5pdFF1
YWQucDMoKSAtIHRyYW5zZm9ybWVkVW5pdFF1YWQucDEoKTsKKyAgICAgICAgY29uc3QgZmxvYXQg
eUF4aXNTY2FsZSA9IHNxcnRmKHlVbml0Q2hhbmdlLndpZHRoKCkgKiB5VW5pdENoYW5nZS53aWR0
aCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHlVbml0Q2hhbmdl
LmhlaWdodCgpICogeVVuaXRDaGFuZ2UuaGVpZ2h0KCkpOworCisgICAgICAgIC8vIGJsdXJMYXll
ckltYWdlKCkgZG9lcyBub3Qgc3VwcG9ydCBwZXItYXhpcyBibHVycmluZywgc28gY2FsY3VsYXRl
IGEgYmFsYW5jZWQgc2NhbGluZy4KKyAgICAgICAgY29uc3QgZmxvYXQgc2NhbGUgPSBzcXJ0Zih4
QXhpc1NjYWxlICogeUF4aXNTY2FsZSk7CisgICAgICAgIG1fYmx1ckRpc3RhbmNlID0gcm91bmRm
KHN0YXRpY19jYXN0PGZsb2F0PihtX2JsdXJEaXN0YW5jZSkgLyBzY2FsZSk7CisgICAgfQorfQor
CiBJbnRSZWN0IENvbnRleHRTaGFkb3c6OmNhbGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0KGNvbnN0
IFBsYXRmb3JtQ29udGV4dCBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGxheWVyQXJlYSwgY29u
c3QgSW50UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgLy8gQ2FsY3VsYXRlIHRoZSBkZXN0aW5hdGlv
biBvZiB0aGUgYmx1cnJlZCBhbmQvb3IgdHJhbnNmb3JtZWQgbGF5ZXIuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRleHRTaGFkb3cuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5oCmluZGV4IGQxM2QzMjFjNDc5ZGQyMDU4NjRmZDMx
NzUwMWVlM2NiMjFmMTJiMDcuLjhmMTQyMjkwN2FiOTVhMWI3N2YzNTNmYjMxZDdiYTdjYWQ4OTcz
ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5oCkBAIC0xMjYs
NiArMTI2LDcgQEAgcHJpdmF0ZToKICAgICBGbG9hdFBvaW50IG1fbGF5ZXJDb250ZXh0VHJhbnNs
YXRpb247IC8vIFRyYW5zbGF0aW9uIHRvIGFwcGx5IHRvIG1fbGF5ZXJDb250ZXh0IGZvciB0aGUg
c2hhZG93IHRvIGJlIGNvcnJlY3RseSBjbGlwcGVkLgogICAgIGJvb2wgbV9zaGFkb3dzSWdub3Jl
VHJhbnNmb3JtczsKIAorICAgIHZvaWQgYWRqdXN0Qmx1ckRpc3RhbmNlKGNvbnN0IFBsYXRmb3Jt
Q29udGV4dCk7CiAgICAgdm9pZCBibHVyTGF5ZXJJbWFnZSh1bnNpZ25lZCBjaGFyKiwgY29uc3Qg
SW50U2l6ZSYgaW1hZ2VTaXplLCBpbnQgc3RyaWRlKTsKICAgICBJbnRSZWN0IGNhbGN1bGF0ZUxh
eWVyQm91bmRpbmdSZWN0KGNvbnN0IFBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBs
YXllckFyZWEsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Db250ZXh0U2hhZG93Q2Fpcm8uY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Db250ZXh0U2hhZG93Q2Fpcm8uY3BwCmluZGV4IDY4
MDEyNjkzOGViYWNlNTZiYjcyMmYzZGYwNzVjNjhmN2YzNmRlZmMuLmJkZmFlNjFiMjAwMzcwZjVk
ZGMxMmEyNjNkMTk3NjMwZmU0MjcwMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQ29udGV4dFNoYWRvd0NhaXJvLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0NvbnRleHRTaGFkb3dDYWlyby5jcHAKQEAgLTk0LDYgKzk0LDcgQEAg
UGxhdGZvcm1Db250ZXh0IENvbnRleHRTaGFkb3c6OmJlZ2luU2hhZG93TGF5ZXIoUGxhdGZvcm1D
b250ZXh0IGNvbnRleHQsIGNvbnN0IEYKIHsKICAgICBkb3VibGUgeDEsIHgyLCB5MSwgeTI7CiAg
ICAgY2Fpcm9fY2xpcF9leHRlbnRzKGNvbnRleHQsICZ4MSwgJnkxLCAmeDIsICZ5Mik7CisgICAg
YWRqdXN0Qmx1ckRpc3RhbmNlKGNvbnRleHQpOwogICAgIEludFJlY3QgbGF5ZXJSZWN0ID0gY2Fs
Y3VsYXRlTGF5ZXJCb3VuZGluZ1JlY3QoY29udGV4dCwgbGF5ZXJBcmVhLCBJbnRSZWN0KHgxLCB5
MSwgeDIgLSB4MSwgeTIgLSB5MSkpOwogCiAgICAgLy8gRG9uJ3QgcGFpbnQgaWYgd2UgYXJlIHRv
dGFsbHkgb3V0c2lkZSB0aGUgY2xpcCByZWdpb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3dRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0NvbnRleHRTaGFkb3dRdC5jcHAKaW5kZXggNDhmNzk3NjFhNWJhNzZkZjlmYmIz
M2E3YTFiMGM0OGNkYjgyZjdmNC4uYThiOWQ1ODZlZTk3M2M4MWFmZTc5MzMzNGY2OWM5YWNjZGJl
NDgwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250ZXh0U2hh
ZG93UXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRv
d1F0LmNwcApAQCAtMTIxLDYgKzEyMSw5IEBAIFBsYXRmb3JtQ29udGV4dCBDb250ZXh0U2hhZG93
OjpiZWdpblNoYWRvd0xheWVyKFBsYXRmb3JtQ29udGV4dCBwLCBjb25zdCBGbG9hdFJlCiAgICAg
ZWxzZQogICAgICAgICBjbGlwUmVjdCA9IHAtPnRyYW5zZm9ybSgpLmludmVydGVkKCkubWFwUmVj
dChwLT53aW5kb3coKSk7CiAKKyAgICAvLyBTZXQgbV9ibHVyRGlzdGFuY2UuCisgICAgYWRqdXN0
Qmx1ckRpc3RhbmNlKHApOworCiAgICAgLy8gU2V0IG1fbGF5ZXJPcmlnaW4sIG1fbGF5ZXJDb250
ZXh0VHJhbnNsYXRpb24sIG1fc291cmNlUmVjdC4KICAgICBJbnRSZWN0IGNsaXAoY2xpcFJlY3Qu
eCgpLCBjbGlwUmVjdC55KCksIGNsaXBSZWN0LndpZHRoKCksIGNsaXBSZWN0LmhlaWdodCgpKTsK
ICAgICBJbnRSZWN0IGxheWVyUmVjdCA9IGNhbGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0KHAsIGxh
eWVyQXJlYSwgY2xpcCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76951</attachid>
            <date>2010-12-18 20:23:33 -0800</date>
            <delta_ts>2010-12-18 20:32:29 -0800</delta_ts>
            <desc>Suggestions in comment #5</desc>
            <filename>bug-51161-20101218202331.patch</filename>
            <type>text/plain</type>
            <size>17024</size>
            <attacher name="Helder Correia">helder</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MmZmNmIwN2M2OGYwNGFjNTkxMDlkMTJhYjg0NWU0OGEwOTJkZmMwLi40ZmVlNmQ1
Y2MyMjEwOTA4NmJiMmUyMmJmMGRiODE3NmQ4NDExMGJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTItMTggIEhlbGRlciBDb3JyZWlhICA8aGVsZGVyQHNlbmNoYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBCbHVyIGRpc3Rh
bmNlIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgc2NhbGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTExNjEKKworICAgICAgICBGcm9tIHRoZSBz
cGVjIGF0IGh0dHA6Ly9kZXYudzMub3JnL2h0bWw1LzJkY29udGV4dC8jZG9tLWNvbnRleHQtMmQt
c2hhZG93Ymx1cjoKKyAgICAgICAgIlRoZSBzaGFkb3dCbHVyIGF0dHJpYnV0ZSBzcGVjaWZpZXMg
dGhlIGxldmVsIG9mIHRoZSBibHVycmluZyBlZmZlY3QuCisgICAgICAgIChUaGUgdW5pdHMgZG8g
bm90IG1hcCB0byBjb29yZGluYXRlIHNwYWNlIHVuaXRzLCBhbmQgYXJlIG5vdCBhZmZlY3RlZAor
ICAgICAgICBieSB0aGUgY3VycmVudCB0cmFuc2Zvcm1hdGlvbiBtYXRyaXguKSIKKworICAgICAg
ICBBZGQgdGVzdCB0byBlbnN1cmUgdGhhdCB0aGUgYmx1ciByYWRpdXMgaXMgbm90IGFmZmVjdGVk
IGJ5IHRoZSBDVE0uCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtc2NhbGUtc2hhZG93
Qmx1ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1z
Y2FsZS1zaGFkb3dCbHVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZh
cy1zY2FsZS1zdHJva2VQYXRoLXNoYWRvdy1leHBlY3RlZC50eHQ6IEluY3JlYXNlCisgICAgICAg
ICAgc2hhZG93Qmx1ciBhbmQgdGVzdCB0b2xlcmFuY2UgdG8gZWFzZSB0ZXN0aW5nIGFuZCBzdXBw
b3J0IHRoZQorICAgICAgICAgIGRpZmZlcmVudCBibHVycmluZyBhbGdvcml0aG1zLgorICAgICAg
ICAqIGZhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtc2NhbGUtc2hhZG93Qmx1ci5qczog
QWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1z
dHJva2VQYXRoLXNoYWRvdy5qczoKKwogMjAxMC0xMi0xOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENhbWVyb24gWndhcmljaC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zaGFkb3dCbHVyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zaGFkb3dC
bHVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmJiM2E5NDFkOGI5Y2M3Yzk5YjJiYmI1YjYz
OGJiZjhjOWE2YzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Y2FudmFzLXNjYWxlLXNoYWRvd0JsdXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTMgQEAKK0Vu
c3VyZSB0aGF0IGNhbnZhcyBzaGFkb3dCbHVyIGlzIG5vdCBhZmZlY3RlZCBieSB0cmFuc2Zvcm1h
dGlvbnMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRbMF0gaXMgMjU1
CitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyBhcm91bmQgMjU1
CitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRb
M10gaXMgMAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAor
UEFTUyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJd
IGlzIDAKK1BBU1MgZFszXSBpcyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BB
U1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDI1NQorUEFTUyBkWzFd
IGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgYXJvdW5kIDEyNgorUEFTUyBkWzBd
IGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIDAKK1BB
U1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBp
cyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNT
IGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMg
MAorUEFTUyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAyNTUKK1BBU1MgZFsxXSBpcyAwCitQQVNT
IGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIGFyb3VuZCAyNTUKK1BBU1MgZFswXSBpcyAyNTUKK1BB
U1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIGFyb3VuZCAyNTUKK1BB
U1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBp
cyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNT
IGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMg
MAorUEFTUyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBk
WzJdIGlzIDAKK1BBU1MgZFszXSBpcyAwCitQQVNTIGRbMF0gaXMgMjU1CitQQVNTIGRbMV0gaXMg
MAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyBhcm91bmQgMTI2CitQQVNTIGRbMF0gaXMg
MAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgMAorUEFTUyBk
WzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIDAK
K1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFsz
XSBpcyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQ
QVNTIGRbM10gaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2Fs
ZS1zaGFkb3dCbHVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2NhbGUt
c2hhZG93Qmx1ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1MWJkOTFmZTE0MzFmMmE4Y2VlY2Q1NTFkM2Ez
MmE3NDRhNWJmN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtc2NhbGUtc2hhZG93Qmx1ci5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvY2FudmFzLXNjYWxlLXNo
YWRvd0JsdXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNjYWxlLXN0cm9rZVBhdGgtc2hhZG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zdHJva2VQYXRo
LXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggYTMzN2M0YjYzZmYxZGRmZWVkNDQ4OGUzNTFmZmRh
ZTE0OWVhODUxNi4uYWViODM2MzcwYzRkZjgzMjQxYjk5ZGQxNDhmZWIxNDE3YmYwNTBiZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNjYWxlLXN0cm9rZVBhdGgt
c2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMt
c2NhbGUtc3Ryb2tlUGF0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CkBAIC0zMCwxNSArMzAsMTUgQEAg
UEFTUyBkWzNdIGlzIGFyb3VuZCA3NgogUEFTUyBkWzBdIGlzIDI1NQogUEFTUyBkWzFdIGlzIDAK
IFBBU1MgZFsyXSBpcyAwCi1QQVNTIGRbM10gaXMgYXJvdW5kIDE0OQorUEFTUyBkWzNdIGlzIGFy
b3VuZCAyMDAKIFBBU1MgZFswXSBpcyAyNTUKIFBBU1MgZFsxXSBpcyAwCiBQQVNTIGRbMl0gaXMg
MAotUEFTUyBkWzNdIGlzIGFyb3VuZCAxMTYKK1BBU1MgZFszXSBpcyBhcm91bmQgNDkKIFBBU1Mg
ZFswXSBpcyAyNTUKIFBBU1MgZFsxXSBpcyAwCiBQQVNTIGRbMl0gaXMgMAotUEFTUyBkWzNdIGlz
IGFyb3VuZCAxMTUKK1BBU1MgZFszXSBpcyBhcm91bmQgMTk5CiBQQVNTIGRbMF0gaXMgMjU1CiBQ
QVNTIGRbMV0gaXMgMAogUEFTUyBkWzJdIGlzIDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtc2NhbGUtc2hhZG93Qmx1ci5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtc2NhbGUtc2hhZG93Qmx1ci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43YzA0Y2Y4ODkyMzgxM2I4YWY3N2I1MDljNmE3NzQ0NDRhYjFkNzE4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2Nh
bnZhcy1zY2FsZS1zaGFkb3dCbHVyLmpzCkBAIC0wLDAgKzEsMTkzIEBACitkZXNjcmlwdGlvbigi
RW5zdXJlIHRoYXQgY2FudmFzIHNoYWRvd0JsdXIgaXMgbm90IGFmZmVjdGVkIGJ5IHRyYW5zZm9y
bWF0aW9ucy4iKTsKKworZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpCit7CisgICAgdmFy
IHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHBhcmFncmFw
aC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgcGFy
YWdyYXBoLnN0eWxlLmZvbnRGYW1pbHkgPSAibW9ub3NwYWNlIjsKKyAgICBpZiAoY29sb3IpCisg
ICAgICAgIHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKK30KKworZnVuY3Rp
b24gc2hvdWxkQmVBcm91bmQoYSwgYikKK3sKKyAgICB2YXIgZXZhbEE7CisgICAgdHJ5IHsKKyAg
ICAgICAgZXZhbEEgPSBldmFsKGEpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBldmFsQSA9
IGU7CisgICAgfQorCisgICAgaWYgKE1hdGguYWJzKGV2YWxBIC0gYikgPCAxMCkKKyAgICAgICAg
cHJpbnQoIlBBU1MgIiArIGEgKyAiIGlzIGFyb3VuZCAiICsgYiAsICJncmVlbiIpCisgICAgZWxz
ZQorICAgICAgICBwcmludCgiRkFJTCAiICsgYSArICIgaXMgbm90IGFyb3VuZCAiICsgYiArICIg
KGFjdHVhbDogIiArIGV2YWxBICsgIikiLCAicmVkIik7Cit9CisKK3ZhciBjYW52YXMgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Y2FudmFzKTsKK2NhbnZhcy5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzYwMCcpOworY2FudmFzLnNl
dEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzYwMCcpOwordmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0
KCcyZCcpOworCitjdHguc2hhZG93Qmx1ciA9IDI1OworY3R4LnNoYWRvd09mZnNldFggPSAxMDA7
CitjdHguc2hhZG93T2Zmc2V0WSA9IDEwMDsKK2N0eC5maWxsU3R5bGUgPSAncmdiYSgwLCAwLCAy
NTUsIDEpJzsKKworLy8gdG9wIGxlZnQKK2N0eC5zaGFkb3dDb2xvciA9ICdyZ2JhKDI1NSwgMCwg
MCwgMS4wKSc7CitjdHguc2NhbGUoNCwgNCk7CitjdHgucm90YXRlKE1hdGguUEkvMik7CitjdHgu
dHJhbnNsYXRlKDI1LCAtNTApOworY3R4LmZpbGxSZWN0KDAsIDAsIDI1LCAyNSk7CisKKy8vIGJv
dHRvbSBsZWZ0CitjdHguc2hhZG93Q29sb3IgPSAncmdiYSgyNTUsIDAsIDAsIDAuNSknOworY3R4
LnNldFRyYW5zZm9ybSgxLCAwLCAwLCAxLCAwLCAwKTsKK2N0eC5zY2FsZSgwLjUsIDAuNSk7Citj
dHguZmlsbFJlY3QoMjAwLCA2MDAsIDIwMCwgMjAwKTsKKworLy8gdG9wIHJpZ2h0CitjdHguc2hh
ZG93Q29sb3IgPSAncmdiYSgyNTUsIDAsIDAsIDEuMCknOworY3R4LnNjYWxlKDIsIDIpOworY3R4
LmZpbGxSZWN0KDMwMCwgMTAwLCAxMDAsIDEwMCk7CisKKy8vIGJvdHRvbSByaWdodAorY3R4LnNo
YWRvd0NvbG9yID0gJ3JnYmEoMjU1LCAwLCAwLCAwLjUpJzsKK2N0eC5maWxsUmVjdCgzMDAsIDMw
MCwgMTAwLCAxMDApOworCit2YXIgZDsKKworLy8gdG9wIGxlZnQKK2QgPSBjdHguZ2V0SW1hZ2VE
YXRhKDI1MCwgMjUwLCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMjU1Jyk7CitzaG91
bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZUFyb3Vu
ZCgnZFszXScsICcyNTUnKTsKKworZCA9IGN0eC5nZXRJbWFnZURhdGEoMjUwLCAxNzUsIDEsIDEp
LmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7Citz
aG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHgu
Z2V0SW1hZ2VEYXRhKDI1MCwgMzI1LCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcp
Oworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxk
QmUoJ2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSgxNzUsIDI1MCwgMSwgMSku
ZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3No
b3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworZCA9IGN0eC5n
ZXRJbWFnZURhdGEoMzI1LCAyNTAsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7
CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRC
ZSgnZFszXScsICcwJyk7CisKKy8vIGJvdHRvbSBsZWZ0CitkID0gY3R4LmdldEltYWdlRGF0YSgy
NTAsIDQ1MCwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzI1NScpOworc2hvdWxkQmUo
J2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmVBcm91bmQoJ2Rb
M10nLCAnMTI2Jyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDI1MCwgMzc1LCAxLCAxKS5kYXRh
Oworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxk
QmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldElt
YWdlRGF0YSgyNTAsIDUyNSwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3No
b3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdk
WzNdJywgJzAnKTsKKworZCA9IGN0eC5nZXRJbWFnZURhdGEoMTc1LCA0NTAsIDEsIDEpLmRhdGE7
CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRC
ZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0SW1h
Z2VEYXRhKDMyNSwgNDUwLCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hv
dWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2Rb
M10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSgyNTAsIDI1MCwgMSwgMSkuZGF0YTsK
K3Nob3VsZEJlKCdkWzBdJywgJzI1NScpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxk
QmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnMjU1Jyk7CisKKy8vIHRv
cCByaWdodAorZCA9IGN0eC5nZXRJbWFnZURhdGEoNDUwLCAyNTAsIDEsIDEpLmRhdGE7CitzaG91
bGRCZSgnZFswXScsICcyNTUnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdk
WzJdJywgJzAnKTsKK3Nob3VsZEJlQXJvdW5kKCdkWzNdJywgJzI1NScpOworCitkID0gY3R4Lmdl
dEltYWdlRGF0YSg0NTAsIDE3NSwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsK
K3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJl
KCdkWzNdJywgJzAnKTsKKworZCA9IGN0eC5nZXRJbWFnZURhdGEoNDUwLCAzMjUsIDEsIDEpLmRh
dGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91
bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0
SW1hZ2VEYXRhKDM3NSwgMjUwLCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOwor
c2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUo
J2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSg1MjUsIDI1MCwgMSwgMSkuZGF0
YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3Vs
ZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworLy8gdG9wIHJpZ2h0
CitkID0gY3R4LmdldEltYWdlRGF0YSg0NTAsIDQ1MCwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdk
WzBdJywgJzI1NScpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAn
MCcpOworc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnMTI2Jyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VE
YXRhKDQ1MCwgMzc1LCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxk
QmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10n
LCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSg0NTAsIDUyNSwgMSwgMSkuZGF0YTsKK3No
b3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdk
WzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworZCA9IGN0eC5nZXRJbWFnZURh
dGEoMzc1LCA0NTAsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRC
ZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScs
ICcwJyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDUyNSwgNDUwLCAxLCAxKS5kYXRhOworc2hv
dWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2Rb
Ml0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10
ZXN0cy9jYW52YXMtc2NhbGUtc3Ryb2tlUGF0aC1zaGFkb3cuanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLXNjYWxlLXN0cm9rZVBhdGgtc2hhZG93LmpzCmlu
ZGV4IDYwMDIxNzVhYjNmNmIyMWZmMmE3ZWRkY2ViYTY0NzBhY2U2YmEzODguLjVlNWM4ZjNjZjhm
ZmRiYTNhNzQwZjgzNGEzOTdlZTk5YzYwNGRjMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtc2NhbGUtc3Ryb2tlUGF0aC1zaGFkb3cuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1z
dHJva2VQYXRoLXNoYWRvdy5qcwpAQCAtMjcsOCArMjcsOCBAQCBmdW5jdGlvbiBzaG91bGRCZUFy
b3VuZChhLCBiKQogCiB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFz
Jyk7CiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNhbnZhcyk7Ci1jYW52YXMuc2V0QXR0cmli
dXRlKCd3aWR0aCcsICcxMDAwJyk7Ci1jYW52YXMuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnMTAw
MCcpOworY2FudmFzLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnNjAwJyk7CitjYW52YXMuc2V0QXR0
cmlidXRlKCdoZWlnaHQnLCAnNjAwJyk7CiB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJk
Jyk7CiAKIGN0eC5zY2FsZSgyLCAyKTsKQEAgLTExNSwyMyArMTE1LDIzIEBAIHNob3VsZEJlKCdk
WzJdJywgJzAnKTsKIHNob3VsZEJlQXJvdW5kKCdkWzNdJywgJzc2Jyk7CiAKIC8vIFZlcmlmeSBi
bHVycnkgc2hhZG93LgotZCA9IGN0eC5nZXRJbWFnZURhdGEoNDA0LCAyMTAsIDEsIDEpLmRhdGE7
CitkID0gY3R4LmdldEltYWdlRGF0YSgzOTgsIDIxMCwgMSwgMSkuZGF0YTsKIHNob3VsZEJlKCdk
WzBdJywgJzI1NScpOwogc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOwogc2hvdWxkQmUoJ2RbMl0nLCAn
MCcpOwotc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnMTQ5Jyk7CitzaG91bGRCZUFyb3VuZCgnZFsz
XScsICcyMDAnKTsKIAotZCA9IGN0eC5nZXRJbWFnZURhdGEoNTA1LCAyNTAsIDEsIDEpLmRhdGE7
CitkID0gY3R4LmdldEltYWdlRGF0YSg1MDgsIDI1MCwgMSwgMSkuZGF0YTsKIHNob3VsZEJlKCdk
WzBdJywgJzI1NScpOwogc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOwogc2hvdWxkQmUoJ2RbMl0nLCAn
MCcpOwotc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnMTE2Jyk7CitzaG91bGRCZUFyb3VuZCgnZFsz
XScsICc0OScpOwogCi1kID0gY3R4LmdldEltYWdlRGF0YSg0NTAsIDIwNSwgMSwgMSkuZGF0YTsK
K2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDQ1MCwgMTk4LCAxLCAxKS5kYXRhOwogc2hvdWxkQmUoJ2Rb
MF0nLCAnMjU1Jyk7CiBzaG91bGRCZSgnZFsxXScsICcwJyk7CiBzaG91bGRCZSgnZFsyXScsICcw
Jyk7Ci1zaG91bGRCZUFyb3VuZCgnZFszXScsICcxMTUnKTsKK3Nob3VsZEJlQXJvdW5kKCdkWzNd
JywgJzE5OScpOwogCiAvLyBWZXJpZnkgYmx1cnJ5IGFscGhhIHNoYWRvdy4KIGQgPSBjdHguZ2V0
SW1hZ2VEYXRhKDUwNSwgNDUwLCAxLCAxKS5kYXRhOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OGFkY2Y2MjMzMDcxNzkyM2VhMjQ2NTA0
ZWFmNzQwMTAxN2VlOTEyLi4xOTEyZjdkODU2NzMzOWRjY2M0YzlkYzgzOGNhYmE5ZjhjNzY1ZGM1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDEwLTEyLTE4ICBIZWxkZXIgQ29ycmVpYSAgPGhlbGRlckBzZW5j
aGEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gQmx1ciBkaXN0YW5jZSBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IHNjYWxpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMTYxCisKKyAg
ICAgICAgRnJvbSB0aGUgc3BlYyBhdCBodHRwOi8vZGV2LnczLm9yZy9odG1sNS8yZGNvbnRleHQv
I2RvbS1jb250ZXh0LTJkLXNoYWRvd2JsdXI6CisgICAgICAgICJUaGUgc2hhZG93Qmx1ciBhdHRy
aWJ1dGUgc3BlY2lmaWVzIHRoZSBsZXZlbCBvZiB0aGUgYmx1cnJpbmcgZWZmZWN0LgorICAgICAg
ICAoVGhlIHVuaXRzIGRvIG5vdCBtYXAgdG8gY29vcmRpbmF0ZSBzcGFjZSB1bml0cywgYW5kIGFy
ZSBub3QgYWZmZWN0ZWQKKyAgICAgICAgYnkgdGhlIGN1cnJlbnQgdHJhbnNmb3JtYXRpb24gbWF0
cml4LikiCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLXNjYWxlLXNoYWRvd0Js
dXIuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjphZGp1c3RCbHVyRGlzdGFuY2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbnRleHRTaGFkb3cuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Db250ZXh0U2hhZG93Q2Fpcm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dFNoYWRvdzo6YmVnaW5TaGFkb3dMYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvd1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRTaGFkb3c6OmJlZ2luU2hhZG93TGF5ZXIpOgorCiAyMDEwLTEyLTE4ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2FtZXJvbiBa
d2FyaWNoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hh
ZG93LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5jcHAKaW5k
ZXggNWU3YTdhMDA5NjUzNmU0YzMxMTdhOTE0OTdiNmFlNGU5YjFkYWJmMy4uYjM0ZTU0NjYxMjJh
YmNkNjk0NTFjMDQ5OTcyZjMyZDc3YmU0OTk1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbnRleHRTaGFkb3cuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29udGV4
dFNoYWRvdy5oIgogCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCisjaW5jbHVkZSA8Y21hdGg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
IApAQCAtMTY5LDYgKzE3MCwzNCBAQCB2b2lkIENvbnRleHRTaGFkb3c6OmJsdXJMYXllckltYWdl
KHVuc2lnbmVkIGNoYXIqIGltYWdlRGF0YSwgY29uc3QgSW50U2l6ZSYgc2l6ZQogICAgIH0KIH0K
IAordm9pZCBDb250ZXh0U2hhZG93OjphZGp1c3RCbHVyRGlzdGFuY2UoY29uc3QgUGxhdGZvcm1D
b250ZXh0IGNvbnRleHQpCit7CisgICAgLy8gQWRqdXN0IGJsdXIgaWYgd2UncmUgc2NhbGluZywg
c2luY2UgdGhlIHJhZGl1cyBtdXN0IG5vdCBiZSBhZmZlY3RlZCBieSB0cmFuc2Zvcm1hdGlvbnMu
CisgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtKGdldFRyYW5zZm9ybWF0
aW9uTWF0cml4RnJvbUNvbnRleHQoY29udGV4dCkpOworCisgICAgaWYgKHRyYW5zZm9ybS5pc0lk
ZW50aXR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIENhbGN1bGFsZSB0cmFuc2Zvcm1l
ZCB1bml0IHZlY3RvcnMuCisgICAgY29uc3QgRmxvYXRRdWFkIHVuaXRRdWFkKEZsb2F0UG9pbnQo
MCwgMCksIEZsb2F0UG9pbnQoMSwgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZs
b2F0UG9pbnQoMCwgMSksIEZsb2F0UG9pbnQoMSwgMSkpOworICAgIGNvbnN0IEZsb2F0UXVhZCB0
cmFuc2Zvcm1lZFVuaXRRdWFkID0gdHJhbnNmb3JtLm1hcFF1YWQodW5pdFF1YWQpOworCisgICAg
Ly8gQ2FsY3VsYXRlIFggYXhpcyBzY2FsZSBmYWN0b3IuCisgICAgY29uc3QgRmxvYXRTaXplIHhV
bml0Q2hhbmdlID0gdHJhbnNmb3JtZWRVbml0UXVhZC5wMigpIC0gdHJhbnNmb3JtZWRVbml0UXVh
ZC5wMSgpOworICAgIGNvbnN0IGZsb2F0IHhBeGlzU2NhbGUgPSBzcXJ0Zih4VW5pdENoYW5nZS53
aWR0aCgpICogeFVuaXRDaGFuZ2Uud2lkdGgoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICArIHhVbml0Q2hhbmdlLmhlaWdodCgpICogeFVuaXRDaGFuZ2UuaGVpZ2h0KCkpOwor
CisgICAgLy8gQ2FsY3VsYXRlIFkgYXhpcyBzY2FsZSBmYWN0b3IuCisgICAgY29uc3QgRmxvYXRT
aXplIHlVbml0Q2hhbmdlID0gdHJhbnNmb3JtZWRVbml0UXVhZC5wMygpIC0gdHJhbnNmb3JtZWRV
bml0UXVhZC5wMSgpOworICAgIGNvbnN0IGZsb2F0IHlBeGlzU2NhbGUgPSBzcXJ0Zih5VW5pdENo
YW5nZS53aWR0aCgpICogeVVuaXRDaGFuZ2Uud2lkdGgoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICArIHlVbml0Q2hhbmdlLmhlaWdodCgpICogeVVuaXRDaGFuZ2UuaGVpZ2h0
KCkpOworCisgICAgLy8gYmx1ckxheWVySW1hZ2UoKSBkb2VzIG5vdCBzdXBwb3J0IHBlci1heGlz
IGJsdXJyaW5nLCBzbyBjYWxjdWxhdGUgYSBiYWxhbmNlZCBzY2FsaW5nLgorICAgIGNvbnN0IGZs
b2F0IHNjYWxlID0gc3FydGYoeEF4aXNTY2FsZSAqIHlBeGlzU2NhbGUpOworICAgIG1fYmx1ckRp
c3RhbmNlID0gcm91bmRmKHN0YXRpY19jYXN0PGZsb2F0PihtX2JsdXJEaXN0YW5jZSkgLyBzY2Fs
ZSk7Cit9CisKIEludFJlY3QgQ29udGV4dFNoYWRvdzo6Y2FsY3VsYXRlTGF5ZXJCb3VuZGluZ1Jl
Y3QoY29uc3QgUGxhdGZvcm1Db250ZXh0IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgbGF5ZXJB
cmVhLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKIHsKICAgICAvLyBDYWxjdWxhdGUgdGhlIGRl
c3RpbmF0aW9uIG9mIHRoZSBibHVycmVkIGFuZC9vciB0cmFuc2Zvcm1lZCBsYXllci4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5oIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmgKaW5kZXggZDEzZDMyMWM0NzlkZDIw
NTg2NGZkMzE3NTAxZWUzY2IyMWYxMmIwNy4uOGYxNDIyOTA3YWI5NWExYjc3ZjM1M2ZiMzFkN2Jh
N2NhZDg5NzNmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0
U2hhZG93LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmgK
QEAgLTEyNiw2ICsxMjYsNyBAQCBwcml2YXRlOgogICAgIEZsb2F0UG9pbnQgbV9sYXllckNvbnRl
eHRUcmFuc2xhdGlvbjsgLy8gVHJhbnNsYXRpb24gdG8gYXBwbHkgdG8gbV9sYXllckNvbnRleHQg
Zm9yIHRoZSBzaGFkb3cgdG8gYmUgY29ycmVjdGx5IGNsaXBwZWQuCiAgICAgYm9vbCBtX3NoYWRv
d3NJZ25vcmVUcmFuc2Zvcm1zOwogCisgICAgdm9pZCBhZGp1c3RCbHVyRGlzdGFuY2UoY29uc3Qg
UGxhdGZvcm1Db250ZXh0KTsKICAgICB2b2lkIGJsdXJMYXllckltYWdlKHVuc2lnbmVkIGNoYXIq
LCBjb25zdCBJbnRTaXplJiBpbWFnZVNpemUsIGludCBzdHJpZGUpOwogICAgIEludFJlY3QgY2Fs
Y3VsYXRlTGF5ZXJCb3VuZGluZ1JlY3QoY29uc3QgUGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIGxheWVyQXJlYSwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NvbnRleHRTaGFkb3dDYWlyby5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NvbnRleHRTaGFkb3dDYWlyby5jcHAK
aW5kZXggNjgwMTI2OTM4ZWJhY2U1NmJiNzIyZjNkZjA3NWM2OGY3ZjM2ZGVmYy4uYWU5MTI4MmFi
NzU5OWI5YWRlYzA3ZmE1OWVlMDkxZjJiMDliMjhhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9Db250ZXh0U2hhZG93Q2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ29udGV4dFNoYWRvd0NhaXJvLmNwcApAQCAtOTIsNiAr
OTIsOCBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBDb250ZXh0U2hhZG93OjpnZXRUcmFuc2Zvcm1h
dGlvbk1hdHJpeEZyb21Db250ZXh0KFBsYXRmb3JtQwogCiBQbGF0Zm9ybUNvbnRleHQgQ29udGV4
dFNoYWRvdzo6YmVnaW5TaGFkb3dMYXllcihQbGF0Zm9ybUNvbnRleHQgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBsYXllckFyZWEpCiB7CisgICAgYWRqdXN0Qmx1ckRpc3RhbmNlKGNvbnRleHQp
OworCiAgICAgZG91YmxlIHgxLCB4MiwgeTEsIHkyOwogICAgIGNhaXJvX2NsaXBfZXh0ZW50cyhj
b250ZXh0LCAmeDEsICZ5MSwgJngyLCAmeTIpOwogICAgIEludFJlY3QgbGF5ZXJSZWN0ID0gY2Fs
Y3VsYXRlTGF5ZXJCb3VuZGluZ1JlY3QoY29udGV4dCwgbGF5ZXJBcmVhLCBJbnRSZWN0KHgxLCB5
MSwgeDIgLSB4MSwgeTIgLSB5MSkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9Db250ZXh0U2hhZG93UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9Db250ZXh0U2hhZG93UXQuY3BwCmluZGV4IDQ4Zjc5NzYxYTViYTc2ZGY5ZmJiMzNhN2ExYjBj
NDhjZGI4MmY3ZjQuLmNiNTNiMjQzODRlMmQwZmNiMjA1M2QwNWE1ODJjZWZjYmY1ZDI4YzEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvd1F0LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3dRdC5jcHAK
QEAgLTExMSw2ICsxMTEsOSBAQCBRX0dMT0JBTF9TVEFUSUMoU2hhZG93QnVmZmVyLCBzY3JhdGNo
U2hhZG93QnVmZmVyKQogCiBQbGF0Zm9ybUNvbnRleHQgQ29udGV4dFNoYWRvdzo6YmVnaW5TaGFk
b3dMYXllcihQbGF0Zm9ybUNvbnRleHQgcCwgY29uc3QgRmxvYXRSZWN0JiBsYXllckFyZWEpCiB7
CisgICAgLy8gU2V0IG1fYmx1ckRpc3RhbmNlLgorICAgIGFkanVzdEJsdXJEaXN0YW5jZShwKTsK
KwogICAgIFFSZWN0IGNsaXBSZWN0OwogICAgIGlmIChwLT5oYXNDbGlwcGluZygpKQogI2lmIFFU
X1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA4LCAwKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76952</attachid>
            <date>2010-12-18 20:32:33 -0800</date>
            <delta_ts>2010-12-19 17:02:31 -0800</delta_ts>
            <desc>Correction from comment #7</desc>
            <filename>bug-51161-20101218203232.patch</filename>
            <type>text/plain</type>
            <size>17040</size>
            <attacher name="Helder Correia">helder</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MmZmNmIwN2M2OGYwNGFjNTkxMDlkMTJhYjg0NWU0OGEwOTJkZmMwLi43OTg4N2E4
MDE4ODVlY2I5M2MyMmRhYzA5ZjUyZTVlYTY3ZGU5ZmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTItMTggIEhlbGRlciBDb3JyZWlhICA8aGVsZGVyQHNlbmNoYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBCbHVyIGRpc3Rh
bmNlIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgdHJhbnNmb3JtYXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTE2MQorCisgICAgICAgIEZy
b20gdGhlIHNwZWMgYXQgaHR0cDovL2Rldi53My5vcmcvaHRtbDUvMmRjb250ZXh0LyNkb20tY29u
dGV4dC0yZC1zaGFkb3dibHVyOgorICAgICAgICAiVGhlIHNoYWRvd0JsdXIgYXR0cmlidXRlIHNw
ZWNpZmllcyB0aGUgbGV2ZWwgb2YgdGhlIGJsdXJyaW5nIGVmZmVjdC4KKyAgICAgICAgKFRoZSB1
bml0cyBkbyBub3QgbWFwIHRvIGNvb3JkaW5hdGUgc3BhY2UgdW5pdHMsIGFuZCBhcmUgbm90IGFm
ZmVjdGVkCisgICAgICAgIGJ5IHRoZSBjdXJyZW50IHRyYW5zZm9ybWF0aW9uIG1hdHJpeC4pIgor
CisgICAgICAgIEFkZCB0ZXN0IHRvIGVuc3VyZSB0aGF0IHRoZSBibHVyIHJhZGl1cyBpcyBub3Qg
YWZmZWN0ZWQgYnkgdGhlIENUTS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1zY2Fs
ZS1zaGFkb3dCbHVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMv
Y2FudmFzLXNjYWxlLXNoYWRvd0JsdXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52
YXMvY2FudmFzLXNjYWxlLXN0cm9rZVBhdGgtc2hhZG93LWV4cGVjdGVkLnR4dDogSW5jcmVhc2UK
KyAgICAgICAgICBzaGFkb3dCbHVyIGFuZCB0ZXN0IHRvbGVyYW5jZSB0byBlYXNlIHRlc3Rpbmcg
YW5kIHN1cHBvcnQgdGhlCisgICAgICAgICAgZGlmZmVyZW50IGJsdXJyaW5nIGFsZ29yaXRobXMu
CisgICAgICAgICogZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1zaGFkb3dC
bHVyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFz
LXNjYWxlLXN0cm9rZVBhdGgtc2hhZG93LmpzOgorCiAyMDEwLTEyLTE4ICBEYW4gQmVybnN0ZWlu
ICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2FtZXJvbiBad2FyaWNo
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNjYWxlLXNoYWRv
d0JsdXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNjYWxl
LXNoYWRvd0JsdXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyYmIzYTk0MWQ4YjljYzdjOTli
MmJiYjViNjM4YmJmOGM5YTZjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9jYW52YXMtc2NhbGUtc2hhZG93Qmx1ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
MyBAQAorRW5zdXJlIHRoYXQgY2FudmFzIHNoYWRvd0JsdXIgaXMgbm90IGFmZmVjdGVkIGJ5IHRy
YW5zZm9ybWF0aW9ucy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZFsw
XSBpcyAyNTUKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIGFy
b3VuZCAyNTUKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAK
K1BBU1MgZFszXSBpcyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsy
XSBpcyAwCitQQVNTIGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQ
QVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0g
aXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyAwCitQQVNTIGRbMF0gaXMgMjU1CitQ
QVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyBhcm91bmQgMTI2CitQ
QVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10g
aXMgMAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFT
UyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlz
IDAKK1BBU1MgZFszXSBpcyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1Mg
ZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDI1NQorUEFTUyBkWzFdIGlz
IDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgYXJvdW5kIDI1NQorUEFTUyBkWzBdIGlz
IDI1NQorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgYXJvdW5k
IDI1NQorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFT
UyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlz
IDAKK1BBU1MgZFszXSBpcyAwCitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1Mg
ZFsyXSBpcyAwCitQQVNTIGRbM10gaXMgMAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAw
CitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAyNTUKK1BBU1Mg
ZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAorUEFTUyBkWzNdIGlzIGFyb3VuZCAxMjYKK1BBU1Mg
ZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJdIGlzIDAKK1BBU1MgZFszXSBpcyAw
CitQQVNTIGRbMF0gaXMgMAorUEFTUyBkWzFdIGlzIDAKK1BBU1MgZFsyXSBpcyAwCitQQVNTIGRb
M10gaXMgMAorUEFTUyBkWzBdIGlzIDAKK1BBU1MgZFsxXSBpcyAwCitQQVNTIGRbMl0gaXMgMAor
UEFTUyBkWzNdIGlzIDAKK1BBU1MgZFswXSBpcyAwCitQQVNTIGRbMV0gaXMgMAorUEFTUyBkWzJd
IGlzIDAKK1BBU1MgZFszXSBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2Fu
dmFzLXNjYWxlLXNoYWRvd0JsdXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZh
cy1zY2FsZS1zaGFkb3dCbHVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUxYmQ5MWZlMTQzMWYyYThjZWVj
ZDU1MWQzYTMyYTc0NGE1YmY3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2NhbnZhcy1zY2FsZS1zaGFkb3dCbHVyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9jYW52YXMt
c2NhbGUtc2hhZG93Qmx1ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2NhbGUtc3Ryb2tlUGF0aC1zaGFk
b3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXNjYWxlLXN0
cm9rZVBhdGgtc2hhZG93LWV4cGVjdGVkLnR4dAppbmRleCBhMzM3YzRiNjNmZjFkZGZlZWQ0NDg4
ZTM1MWZmZGFlMTQ5ZWE4NTE2Li5hZWI4MzYzNzBjNGRmODMyNDFiOTlkZDE0OGZlYjE0MTdiZjA1
MGJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtc2NhbGUtc3Ry
b2tlUGF0aC1zaGFkb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1zY2FsZS1zdHJva2VQYXRoLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTMwLDE1ICsz
MCwxNSBAQCBQQVNTIGRbM10gaXMgYXJvdW5kIDc2CiBQQVNTIGRbMF0gaXMgMjU1CiBQQVNTIGRb
MV0gaXMgMAogUEFTUyBkWzJdIGlzIDAKLVBBU1MgZFszXSBpcyBhcm91bmQgMTQ5CitQQVNTIGRb
M10gaXMgYXJvdW5kIDIwMAogUEFTUyBkWzBdIGlzIDI1NQogUEFTUyBkWzFdIGlzIDAKIFBBU1Mg
ZFsyXSBpcyAwCi1QQVNTIGRbM10gaXMgYXJvdW5kIDExNgorUEFTUyBkWzNdIGlzIGFyb3VuZCA0
OQogUEFTUyBkWzBdIGlzIDI1NQogUEFTUyBkWzFdIGlzIDAKIFBBU1MgZFsyXSBpcyAwCi1QQVNT
IGRbM10gaXMgYXJvdW5kIDExNQorUEFTUyBkWzNdIGlzIGFyb3VuZCAxOTkKIFBBU1MgZFswXSBp
cyAyNTUKIFBBU1MgZFsxXSBpcyAwCiBQQVNTIGRbMl0gaXMgMApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1zaGFkb3dCbHVyLmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1zaGFk
b3dCbHVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjMDRjZjg4OTIzODEzYjhhZjc3YjUwOWM2YTc3NDQ0NGFi
MWQ3MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQt
dGVzdHMvY2FudmFzLXNjYWxlLXNoYWRvd0JsdXIuanMKQEAgLTAsMCArMSwxOTMgQEAKK2Rlc2Ny
aXB0aW9uKCJFbnN1cmUgdGhhdCBjYW52YXMgc2hhZG93Qmx1ciBpcyBub3QgYWZmZWN0ZWQgYnkg
dHJhbnNmb3JtYXRpb25zLiIpOworCitmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikKK3sK
KyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
cGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsK
KyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChj
b2xvcikKKyAgICAgICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQor
CitmdW5jdGlvbiBzaG91bGRCZUFyb3VuZChhLCBiKQoreworICAgIHZhciBldmFsQTsKKyAgICB0
cnkgeworICAgICAgICBldmFsQSA9IGV2YWwoYSk7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAg
IGV2YWxBID0gZTsKKyAgICB9CisKKyAgICBpZiAoTWF0aC5hYnMoZXZhbEEgLSBiKSA8IDEwKQor
ICAgICAgICBwcmludCgiUEFTUyAiICsgYSArICIgaXMgYXJvdW5kICIgKyBiICwgImdyZWVuIikK
KyAgICBlbHNlCisgICAgICAgIHByaW50KCJGQUlMICIgKyBhICsgIiBpcyBub3QgYXJvdW5kICIg
KyBiICsgIiAoYWN0dWFsOiAiICsgZXZhbEEgKyAiKSIsICJyZWQiKTsKK30KKwordmFyIGNhbnZh
cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChjYW52YXMpOworY2FudmFzLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnNjAwJyk7Citj
YW52YXMuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnNjAwJyk7Cit2YXIgY3R4ID0gY2FudmFzLmdl
dENvbnRleHQoJzJkJyk7CisKK2N0eC5zaGFkb3dCbHVyID0gMjU7CitjdHguc2hhZG93T2Zmc2V0
WCA9IDEwMDsKK2N0eC5zaGFkb3dPZmZzZXRZID0gMTAwOworY3R4LmZpbGxTdHlsZSA9ICdyZ2Jh
KDAsIDAsIDI1NSwgMSknOworCisvLyB0b3AgbGVmdAorY3R4LnNoYWRvd0NvbG9yID0gJ3JnYmEo
MjU1LCAwLCAwLCAxLjApJzsKK2N0eC5zY2FsZSg0LCA0KTsKK2N0eC5yb3RhdGUoTWF0aC5QSS8y
KTsKK2N0eC50cmFuc2xhdGUoMjUsIC01MCk7CitjdHguZmlsbFJlY3QoMCwgMCwgMjUsIDI1KTsK
KworLy8gYm90dG9tIGxlZnQKK2N0eC5zaGFkb3dDb2xvciA9ICdyZ2JhKDI1NSwgMCwgMCwgMC41
KSc7CitjdHguc2V0VHJhbnNmb3JtKDEsIDAsIDAsIDEsIDAsIDApOworY3R4LnNjYWxlKDAuNSwg
MC41KTsKK2N0eC5maWxsUmVjdCgyMDAsIDYwMCwgMjAwLCAyMDApOworCisvLyB0b3AgcmlnaHQK
K2N0eC5zaGFkb3dDb2xvciA9ICdyZ2JhKDI1NSwgMCwgMCwgMS4wKSc7CitjdHguc2NhbGUoMiwg
Mik7CitjdHguZmlsbFJlY3QoMzAwLCAxMDAsIDEwMCwgMTAwKTsKKworLy8gYm90dG9tIHJpZ2h0
CitjdHguc2hhZG93Q29sb3IgPSAncmdiYSgyNTUsIDAsIDAsIDAuNSknOworY3R4LmZpbGxSZWN0
KDMwMCwgMzAwLCAxMDAsIDEwMCk7CisKK3ZhciBkOworCisvLyB0b3AgbGVmdAorZCA9IGN0eC5n
ZXRJbWFnZURhdGEoMjUwLCAyNTAsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcyNTUn
KTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3Vs
ZEJlQXJvdW5kKCdkWzNdJywgJzI1NScpOworCitkID0gY3R4LmdldEltYWdlRGF0YSgyNTAsIDE3
NSwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywg
JzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKwor
ZCA9IGN0eC5nZXRJbWFnZURhdGEoMjUwLCAzMjUsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFsw
XScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7
CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDE3NSwgMjUw
LCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAn
MCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCitk
ID0gY3R4LmdldEltYWdlRGF0YSgzMjUsIDI1MCwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBd
JywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsK
K3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworLy8gYm90dG9tIGxlZnQKK2QgPSBjdHguZ2V0SW1h
Z2VEYXRhKDI1MCwgNDUwLCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMjU1Jyk7Citz
aG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZUFy
b3VuZCgnZFszXScsICcxMjYnKTsKKworZCA9IGN0eC5nZXRJbWFnZURhdGEoMjUwLCAzNzUsIDEs
IDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7
CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBj
dHguZ2V0SW1hZ2VEYXRhKDI1MCwgNTI1LCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAn
MCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hv
dWxkQmUoJ2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSgxNzUsIDQ1MCwgMSwg
MSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAnKTsK
K3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworZCA9IGN0
eC5nZXRJbWFnZURhdGEoMzI1LCA0NTAsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcw
Jyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91
bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDI1MCwgMjUwLCAxLCAx
KS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMjU1Jyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7
CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZUFyb3VuZCgnZFszXScsICcyNTUnKTsK
KworLy8gdG9wIHJpZ2h0CitkID0gY3R4LmdldEltYWdlRGF0YSg0NTAsIDI1MCwgMSwgMSkuZGF0
YTsKK3Nob3VsZEJlKCdkWzBdJywgJzI1NScpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hv
dWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnMjU1Jyk7CisKK2Qg
PSBjdHguZ2V0SW1hZ2VEYXRhKDQ1MCwgMTc1LCAxLCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0n
LCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOwor
c2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCitkID0gY3R4LmdldEltYWdlRGF0YSg0NTAsIDMyNSwg
MSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzFdJywgJzAn
KTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzNdJywgJzAnKTsKKworZCA9
IGN0eC5nZXRJbWFnZURhdGEoMzc1LCAyNTAsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScs
ICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7Citz
aG91bGRCZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDUyNSwgMjUwLCAx
LCAxKS5kYXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcp
Oworc2hvdWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCisvLyB0
b3AgcmlnaHQKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDQ1MCwgNDUwLCAxLCAxKS5kYXRhOworc2hv
dWxkQmUoJ2RbMF0nLCAnMjU1Jyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgn
ZFsyXScsICcwJyk7CitzaG91bGRCZUFyb3VuZCgnZFszXScsICcxMjYnKTsKKworZCA9IGN0eC5n
ZXRJbWFnZURhdGEoNDUwLCAzNzUsIDEsIDEpLmRhdGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7
CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRC
ZSgnZFszXScsICcwJyk7CisKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDQ1MCwgNTI1LCAxLCAxKS5k
YXRhOworc2hvdWxkQmUoJ2RbMF0nLCAnMCcpOworc2hvdWxkQmUoJ2RbMV0nLCAnMCcpOworc2hv
dWxkQmUoJ2RbMl0nLCAnMCcpOworc2hvdWxkQmUoJ2RbM10nLCAnMCcpOworCitkID0gY3R4Lmdl
dEltYWdlRGF0YSgzNzUsIDQ1MCwgMSwgMSkuZGF0YTsKK3Nob3VsZEJlKCdkWzBdJywgJzAnKTsK
K3Nob3VsZEJlKCdkWzFdJywgJzAnKTsKK3Nob3VsZEJlKCdkWzJdJywgJzAnKTsKK3Nob3VsZEJl
KCdkWzNdJywgJzAnKTsKKworZCA9IGN0eC5nZXRJbWFnZURhdGEoNTI1LCA0NTAsIDEsIDEpLmRh
dGE7CitzaG91bGRCZSgnZFswXScsICcwJyk7CitzaG91bGRCZSgnZFsxXScsICcwJyk7CitzaG91
bGRCZSgnZFsyXScsICcwJyk7CitzaG91bGRCZSgnZFszXScsICcwJyk7CisKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
c2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1zdHJva2VQYXRoLXNoYWRvdy5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtc2NhbGUtc3Ryb2tlUGF0aC1zaGFk
b3cuanMKaW5kZXggNjAwMjE3NWFiM2Y2YjIxZmYyYTdlZGRjZWJhNjQ3MGFjZTZiYTM4OC4uNWU1
YzhmM2NmOGZmZGJhM2E3NDBmODM0YTM5N2VlOTljNjA0ZGMwOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1zY2FsZS1zdHJva2VQYXRoLXNo
YWRvdy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFz
LXNjYWxlLXN0cm9rZVBhdGgtc2hhZG93LmpzCkBAIC0yNyw4ICsyNyw4IEBAIGZ1bmN0aW9uIHNo
b3VsZEJlQXJvdW5kKGEsIGIpCiAKIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdjYW52YXMnKTsKIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2FudmFzKTsKLWNhbnZhcy5z
ZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzEwMDAnKTsKLWNhbnZhcy5zZXRBdHRyaWJ1dGUoJ2hlaWdo
dCcsICcxMDAwJyk7CitjYW52YXMuc2V0QXR0cmlidXRlKCd3aWR0aCcsICc2MDAnKTsKK2NhbnZh
cy5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsICc2MDAnKTsKIHZhciBjdHggPSBjYW52YXMuZ2V0Q29u
dGV4dCgnMmQnKTsKIAogY3R4LnNjYWxlKDIsIDIpOwpAQCAtMTE1LDIzICsxMTUsMjMgQEAgc2hv
dWxkQmUoJ2RbMl0nLCAnMCcpOwogc2hvdWxkQmVBcm91bmQoJ2RbM10nLCAnNzYnKTsKIAogLy8g
VmVyaWZ5IGJsdXJyeSBzaGFkb3cuCi1kID0gY3R4LmdldEltYWdlRGF0YSg0MDQsIDIxMCwgMSwg
MSkuZGF0YTsKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDM5OCwgMjEwLCAxLCAxKS5kYXRhOwogc2hv
dWxkQmUoJ2RbMF0nLCAnMjU1Jyk7CiBzaG91bGRCZSgnZFsxXScsICcwJyk7CiBzaG91bGRCZSgn
ZFsyXScsICcwJyk7Ci1zaG91bGRCZUFyb3VuZCgnZFszXScsICcxNDknKTsKK3Nob3VsZEJlQXJv
dW5kKCdkWzNdJywgJzIwMCcpOwogCi1kID0gY3R4LmdldEltYWdlRGF0YSg1MDUsIDI1MCwgMSwg
MSkuZGF0YTsKK2QgPSBjdHguZ2V0SW1hZ2VEYXRhKDUwOCwgMjUwLCAxLCAxKS5kYXRhOwogc2hv
dWxkQmUoJ2RbMF0nLCAnMjU1Jyk7CiBzaG91bGRCZSgnZFsxXScsICcwJyk7CiBzaG91bGRCZSgn
ZFsyXScsICcwJyk7Ci1zaG91bGRCZUFyb3VuZCgnZFszXScsICcxMTYnKTsKK3Nob3VsZEJlQXJv
dW5kKCdkWzNdJywgJzQ5Jyk7CiAKLWQgPSBjdHguZ2V0SW1hZ2VEYXRhKDQ1MCwgMjA1LCAxLCAx
KS5kYXRhOworZCA9IGN0eC5nZXRJbWFnZURhdGEoNDUwLCAxOTgsIDEsIDEpLmRhdGE7CiBzaG91
bGRCZSgnZFswXScsICcyNTUnKTsKIHNob3VsZEJlKCdkWzFdJywgJzAnKTsKIHNob3VsZEJlKCdk
WzJdJywgJzAnKTsKLXNob3VsZEJlQXJvdW5kKCdkWzNdJywgJzExNScpOworc2hvdWxkQmVBcm91
bmQoJ2RbM10nLCAnMTk5Jyk7CiAKIC8vIFZlcmlmeSBibHVycnkgYWxwaGEgc2hhZG93LgogZCA9
IGN0eC5nZXRJbWFnZURhdGEoNTA1LCA0NTAsIDEsIDEpLmRhdGE7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ4YWRjZjYyMzMwNzE3OTIz
ZWEyNDY1MDRlYWY3NDAxMDE3ZWU5MTIuLjk4YWY0MDA0OGNkN2FkMjkxMDkwNTVlNjc5OGNjYjJk
MTJmZDVjMDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMTItMTggIEhlbGRlciBDb3JyZWlhICA8aGVs
ZGVyQHNlbmNoYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW1F0XSBCbHVyIGRpc3RhbmNlIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgdHJh
bnNmb3JtYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MTE2MQorCisgICAgICAgIEZyb20gdGhlIHNwZWMgYXQgaHR0cDovL2Rldi53My5vcmcv
aHRtbDUvMmRjb250ZXh0LyNkb20tY29udGV4dC0yZC1zaGFkb3dibHVyOgorICAgICAgICAiVGhl
IHNoYWRvd0JsdXIgYXR0cmlidXRlIHNwZWNpZmllcyB0aGUgbGV2ZWwgb2YgdGhlIGJsdXJyaW5n
IGVmZmVjdC4KKyAgICAgICAgKFRoZSB1bml0cyBkbyBub3QgbWFwIHRvIGNvb3JkaW5hdGUgc3Bh
Y2UgdW5pdHMsIGFuZCBhcmUgbm90IGFmZmVjdGVkCisgICAgICAgIGJ5IHRoZSBjdXJyZW50IHRy
YW5zZm9ybWF0aW9uIG1hdHJpeC4pIgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2NhbnZh
cy1zY2FsZS1zaGFkb3dCbHVyLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nv
bnRleHRTaGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dFNoYWRvdzo6YWRqdXN0
Qmx1ckRpc3RhbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ29udGV4dFNoYWRvd0NhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFkb3c6OmJlZ2luU2hhZG93TGF5ZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0NvbnRleHRTaGFkb3dRdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0U2hhZG93OjpiZWdpblNoYWRvd0xheWVyKToKKwogMjAx
MC0xMi0xOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IENhbWVyb24gWndhcmljaC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29udGV4dFNoYWRvdy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRl
eHRTaGFkb3cuY3BwCmluZGV4IDVlN2E3YTAwOTY1MzZlNGMzMTE3YTkxNDk3YjZhZTRlOWIxZGFi
ZjMuLmIzNGU1NDY2MTIyYWJjZDY5NDUxYzA0OTk3MmYzMmQ3N2JlNDk5NTggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZXh0U2hhZG93LmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkNvbnRleHRTaGFkb3cuaCIKIAogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgorI2lu
Y2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAKQEAgLTE2OSw2ICsxNzAsMzQgQEAgdm9pZCBDb250ZXh0U2hhZG93
OjpibHVyTGF5ZXJJbWFnZSh1bnNpZ25lZCBjaGFyKiBpbWFnZURhdGEsIGNvbnN0IEludFNpemUm
IHNpemUKICAgICB9CiB9CiAKK3ZvaWQgQ29udGV4dFNoYWRvdzo6YWRqdXN0Qmx1ckRpc3RhbmNl
KGNvbnN0IFBsYXRmb3JtQ29udGV4dCBjb250ZXh0KQoreworICAgIC8vIEFkanVzdCBibHVyIGlm
IHdlJ3JlIHNjYWxpbmcsIHNpbmNlIHRoZSByYWRpdXMgbXVzdCBub3QgYmUgYWZmZWN0ZWQgYnkg
dHJhbnNmb3JtYXRpb25zLgorICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9y
bShnZXRUcmFuc2Zvcm1hdGlvbk1hdHJpeEZyb21Db250ZXh0KGNvbnRleHQpKTsKKworICAgIGlm
ICh0cmFuc2Zvcm0uaXNJZGVudGl0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBDYWxj
dWxhbGUgdHJhbnNmb3JtZWQgdW5pdCB2ZWN0b3JzLgorICAgIGNvbnN0IEZsb2F0UXVhZCB1bml0
UXVhZChGbG9hdFBvaW50KDAsIDApLCBGbG9hdFBvaW50KDEsIDApLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGbG9hdFBvaW50KDAsIDEpLCBGbG9hdFBvaW50KDEsIDEpKTsKKyAgICBj
b25zdCBGbG9hdFF1YWQgdHJhbnNmb3JtZWRVbml0UXVhZCA9IHRyYW5zZm9ybS5tYXBRdWFkKHVu
aXRRdWFkKTsKKworICAgIC8vIENhbGN1bGF0ZSBYIGF4aXMgc2NhbGUgZmFjdG9yLgorICAgIGNv
bnN0IEZsb2F0U2l6ZSB4VW5pdENoYW5nZSA9IHRyYW5zZm9ybWVkVW5pdFF1YWQucDIoKSAtIHRy
YW5zZm9ybWVkVW5pdFF1YWQucDEoKTsKKyAgICBjb25zdCBmbG9hdCB4QXhpc1NjYWxlID0gc3Fy
dGYoeFVuaXRDaGFuZ2Uud2lkdGgoKSAqIHhVbml0Q2hhbmdlLndpZHRoKCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKyB4VW5pdENoYW5nZS5oZWlnaHQoKSAqIHhVbml0Q2hh
bmdlLmhlaWdodCgpKTsKKworICAgIC8vIENhbGN1bGF0ZSBZIGF4aXMgc2NhbGUgZmFjdG9yLgor
ICAgIGNvbnN0IEZsb2F0U2l6ZSB5VW5pdENoYW5nZSA9IHRyYW5zZm9ybWVkVW5pdFF1YWQucDMo
KSAtIHRyYW5zZm9ybWVkVW5pdFF1YWQucDEoKTsKKyAgICBjb25zdCBmbG9hdCB5QXhpc1NjYWxl
ID0gc3FydGYoeVVuaXRDaGFuZ2Uud2lkdGgoKSAqIHlVbml0Q2hhbmdlLndpZHRoKCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB5VW5pdENoYW5nZS5oZWlnaHQoKSAqIHlV
bml0Q2hhbmdlLmhlaWdodCgpKTsKKworICAgIC8vIGJsdXJMYXllckltYWdlKCkgZG9lcyBub3Qg
c3VwcG9ydCBwZXItYXhpcyBibHVycmluZywgc28gY2FsY3VsYXRlIGEgYmFsYW5jZWQgc2NhbGlu
Zy4KKyAgICBjb25zdCBmbG9hdCBzY2FsZSA9IHNxcnRmKHhBeGlzU2NhbGUgKiB5QXhpc1NjYWxl
KTsKKyAgICBtX2JsdXJEaXN0YW5jZSA9IHJvdW5kZihzdGF0aWNfY2FzdDxmbG9hdD4obV9ibHVy
RGlzdGFuY2UpIC8gc2NhbGUpOworfQorCiBJbnRSZWN0IENvbnRleHRTaGFkb3c6OmNhbGN1bGF0
ZUxheWVyQm91bmRpbmdSZWN0KGNvbnN0IFBsYXRmb3JtQ29udGV4dCBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIGxheWVyQXJlYSwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgLy8g
Q2FsY3VsYXRlIHRoZSBkZXN0aW5hdGlvbiBvZiB0aGUgYmx1cnJlZCBhbmQvb3IgdHJhbnNmb3Jt
ZWQgbGF5ZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRleHRT
aGFkb3cuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGV4dFNoYWRvdy5oCmluZGV4
IGQxM2QzMjFjNDc5ZGQyMDU4NjRmZDMxNzUwMWVlM2NiMjFmMTJiMDcuLjhmMTQyMjkwN2FiOTVh
MWI3N2YzNTNmYjMxZDdiYTdjYWQ4OTczZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29udGV4dFNoYWRvdy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29udGV4dFNoYWRvdy5oCkBAIC0xMjYsNiArMTI2LDcgQEAgcHJpdmF0ZToKICAgICBGbG9hdFBv
aW50IG1fbGF5ZXJDb250ZXh0VHJhbnNsYXRpb247IC8vIFRyYW5zbGF0aW9uIHRvIGFwcGx5IHRv
IG1fbGF5ZXJDb250ZXh0IGZvciB0aGUgc2hhZG93IHRvIGJlIGNvcnJlY3RseSBjbGlwcGVkLgog
ICAgIGJvb2wgbV9zaGFkb3dzSWdub3JlVHJhbnNmb3JtczsKIAorICAgIHZvaWQgYWRqdXN0Qmx1
ckRpc3RhbmNlKGNvbnN0IFBsYXRmb3JtQ29udGV4dCk7CiAgICAgdm9pZCBibHVyTGF5ZXJJbWFn
ZSh1bnNpZ25lZCBjaGFyKiwgY29uc3QgSW50U2l6ZSYgaW1hZ2VTaXplLCBpbnQgc3RyaWRlKTsK
ICAgICBJbnRSZWN0IGNhbGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0KGNvbnN0IFBsYXRmb3JtQ29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBsYXllckFyZWEsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0
KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Db250ZXh0
U2hhZG93Q2Fpcm8uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Db250ZXh0
U2hhZG93Q2Fpcm8uY3BwCmluZGV4IDY4MDEyNjkzOGViYWNlNTZiYjcyMmYzZGYwNzVjNjhmN2Yz
NmRlZmMuLmFlOTEyODJhYjc1OTliOWFkZWMwN2ZhNTllZTA5MWYyYjA5YjI4YTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ29udGV4dFNoYWRvd0NhaXJvLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NvbnRleHRTaGFkb3dDYWly
by5jcHAKQEAgLTkyLDYgKzkyLDggQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggQ29udGV4dFNoYWRv
dzo6Z2V0VHJhbnNmb3JtYXRpb25NYXRyaXhGcm9tQ29udGV4dChQbGF0Zm9ybUMKIAogUGxhdGZv
cm1Db250ZXh0IENvbnRleHRTaGFkb3c6OmJlZ2luU2hhZG93TGF5ZXIoUGxhdGZvcm1Db250ZXh0
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgbGF5ZXJBcmVhKQogeworICAgIGFkanVzdEJsdXJE
aXN0YW5jZShjb250ZXh0KTsKKwogICAgIGRvdWJsZSB4MSwgeDIsIHkxLCB5MjsKICAgICBjYWly
b19jbGlwX2V4dGVudHMoY29udGV4dCwgJngxLCAmeTEsICZ4MiwgJnkyKTsKICAgICBJbnRSZWN0
IGxheWVyUmVjdCA9IGNhbGN1bGF0ZUxheWVyQm91bmRpbmdSZWN0KGNvbnRleHQsIGxheWVyQXJl
YSwgSW50UmVjdCh4MSwgeTEsIHgyIC0geDEsIHkyIC0geTEpKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvd1F0LmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvQ29udGV4dFNoYWRvd1F0LmNwcAppbmRleCA0OGY3OTc2MWE1YmE3
NmRmOWZiYjMzYTdhMWIwYzQ4Y2RiODJmN2Y0Li5jYjUzYjI0Mzg0ZTJkMGZjYjIwNTNkMDVhNTgy
Y2VmY2JmNWQyOGMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0Nv
bnRleHRTaGFkb3dRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Db250
ZXh0U2hhZG93UXQuY3BwCkBAIC0xMTEsNiArMTExLDkgQEAgUV9HTE9CQUxfU1RBVElDKFNoYWRv
d0J1ZmZlciwgc2NyYXRjaFNoYWRvd0J1ZmZlcikKIAogUGxhdGZvcm1Db250ZXh0IENvbnRleHRT
aGFkb3c6OmJlZ2luU2hhZG93TGF5ZXIoUGxhdGZvcm1Db250ZXh0IHAsIGNvbnN0IEZsb2F0UmVj
dCYgbGF5ZXJBcmVhKQogeworICAgIC8vIFNldCBtX2JsdXJEaXN0YW5jZS4KKyAgICBhZGp1c3RC
bHVyRGlzdGFuY2UocCk7CisKICAgICBRUmVjdCBjbGlwUmVjdDsKICAgICBpZiAocC0+aGFzQ2xp
cHBpbmcoKSkKICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgOCwgMCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>