<?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>111885</bug_id>
          
          <creation_ts>2013-03-08 13:12:43 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Resolve grid-{end|after} integer against the end|after edge</short_desc>
          <delta_ts>2013-03-08 17:50:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>103314</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>851460</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-08 13:12:43 -0800</bug_when>
    <thetext>The specification mandates that all grid logical properties be resolved against the matching side.

This means that in the following code #gridItem is in the 3nd row and 3nd column:

&lt;div style=&quot;display: grid; grid-definition-rows: 10px 10px 10px; grid-definition-columns: 10px 10px 10px;&quot;&gt;
   &lt;div id=&quot;gridItem&quot; style=&quot;grid-row: auto / 1; grid-column: auto / 1&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

You can also check the examples on the specification: http://dev.w3.org/csswg/css3-grid-layout/#grid-start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851504</commentid>
    <comment_count>1</comment_count>
      <attachid>192282</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-08 14:23:49 -0800</bug_when>
    <thetext>Created attachment 192282
Proposed change 1: Propagate PositionSide information from CSS to do the right resolution in RenderGrid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851544</commentid>
    <comment_count>2</comment_count>
      <attachid>192282</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-03-08 15:12:41 -0800</bug_when>
    <thetext>Comment on attachment 192282
Proposed change 1: Propagate PositionSide information from CSS to do the right resolution in RenderGrid.

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

&gt; Source/WebCore/rendering/RenderGrid.cpp:341
&gt; +        const GridPosition&amp; initialPosition = (direction == ForColumns) ? child-&gt;style()-&gt;gridItemStart() : child-&gt;style()-&gt;gridItemBefore();
&gt; +        const GridPosition&amp; finalPosition = (direction == ForColumns) ? child-&gt;style()-&gt;gridItemEnd() : child-&gt;style()-&gt;gridItemAfter();

I think it&apos;s a bit weird that we add the side information to GridPosition because when we read the values here, it&apos;s clear what side we&apos;re talking about.  

Another way to do this is to make another class (e.g., GridPositionWithSide) and construct it here to pass around.  This would avoid using the extra memory in RenderStyle and having to construct the grid position with side information.

Anyway, the current code is OK, but it seems redundant to store the direction information in 2 different ways and trying to make sure it stays in sync.

&gt; Source/WebCore/rendering/style/GridPosition.h:51
&gt; +    GridPosition(GridPositionSide side)

explicit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851637</commentid>
    <comment_count>3</comment_count>
      <attachid>192282</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-08 17:15:17 -0800</bug_when>
    <thetext>Comment on attachment 192282
Proposed change 1: Propagate PositionSide information from CSS to do the right resolution in RenderGrid.

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

&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:341
&gt;&gt; +        const GridPosition&amp; finalPosition = (direction == ForColumns) ? child-&gt;style()-&gt;gridItemEnd() : child-&gt;style()-&gt;gridItemAfter();
&gt; 
&gt; I think it&apos;s a bit weird that we add the side information to GridPosition because when we read the values here, it&apos;s clear what side we&apos;re talking about.  
&gt; 
&gt; Another way to do this is to make another class (e.g., GridPositionWithSide) and construct it here to pass around.  This would avoid using the extra memory in RenderStyle and having to construct the grid position with side information.
&gt; 
&gt; Anyway, the current code is OK, but it seems redundant to store the direction information in 2 different ways and trying to make sure it stays in sync.

You have a point, I thought that the side would be required elsewhere but only resolveGridPositionsFromStyle requires it. We are probably better off just passing it to the function explicitly for now. I can always revive something along the lines you said or this patch if the need shows up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851641</commentid>
    <comment_count>4</comment_count>
      <attachid>192315</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-08 17:22:56 -0800</bug_when>
    <thetext>Created attachment 192315
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851655</commentid>
    <comment_count>5</comment_count>
      <attachid>192315</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-08 17:50:27 -0800</bug_when>
    <thetext>Comment on attachment 192315
Patch for landing

Clearing flags on attachment: 192315

Committed r145297: &lt;http://trac.webkit.org/changeset/145297&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851656</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-08 17:50:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192282</attachid>
            <date>2013-03-08 14:23:49 -0800</date>
            <delta_ts>2013-03-08 17:22:53 -0800</delta_ts>
            <desc>Proposed change 1: Propagate PositionSide information from CSS to do the right resolution in RenderGrid.</desc>
            <filename>bug-111885-20130308141952.patch</filename>
            <type>text/plain</type>
            <size>17663</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVhNzcxZmM2MjViNDZk
YzUzNzdiNDkwMmMxNzE2MTIyNTY4YTNmMC4uNzliYzNkZjIyMjFkNTBjNGZjZGQwNDlhNmFhZWEz
MzU1M2E5YTEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAzLTA4ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIFJlc29sdmUgZ3JpZC17ZW5kfGFmdGVyfSBpbnRlZ2VyIGFnYWluc3QgdGhlIGVu
ZHxhZnRlciBlZGdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTE4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgY3VycmVudCBjb2RlIHJlc29sdmVzIGdyaWQtZW5kIChyZXNwLiBncmlkLWFmdGVy
KSA8aW50ZWdlcj4ncyBmb3JtYXQgYWdhaW5zdCB0aGUgc3RhcnQKKyAgICAgICAgKHJlc3AuIGJl
Zm9yZSkgYXhpcy4gVGhlIHNwZWNpZmljYXRpb24gY2hhbmdlZCBzbyB0aGF0IHRoZXkgYXJlIHJl
c29sdmVkIGFnYWluc3QgdGhlaXIgbWF0Y2hpbmcKKyAgICAgICAgYXhpcy4KKworICAgICAgICBU
ZXN0OiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLmh0bWwK
KworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRQb3NpdGlvbjo6R3JpZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
aWRQb3NpdGlvbjo6c2lkZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUG9zaXRpb246OmlzSW5p
dGlhbFBvc2l0aW9uKToKKyAgICAgICAgKEdyaWRQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
R3JpZEl0ZW1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlR3JpZEl0ZW1EYXRhOjpT
dHlsZUdyaWRJdGVtRGF0YSk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIFJl
ZmFjdG9yZWQgR3JpZFBvc2l0aW9uIHRvIHN0b3JlIHRoZSBzaWRlIGl0IGlzIG9uLiBUaGlzIGlz
IHJlcXVpcmVkIHRvIGJlIGFibGUKKyAgICAgICAgdG8gZS5nLiByZXNvbHZlIGdyaWQtZW5kIGFn
YWluc3QgdGhlIGVuZCBzaWRlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6bWF4aW11bUluZGV4SW5EaXJlY3Rpb24p
OgorICAgICAgICBVcGRhdGVkIHRoZSBjb2RlIHRvIGRvIHRoZSBncmlkIHNpemluZyBtZWFzdXJl
bWVudCB3aXRob3V0IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlLiBUaGF0J3MgcmVxdWly
ZWQKKyAgICAgICAgYXMgcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUgcmVxdWlyZXMgdGhl
IGdyaWQgdG8gYmUgc2l6ZWQuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNl
SXRlbXNPbkdyaWQpOgorICAgICAgICBBZGRlZCBhIGNvbW1lbnQgYWJvdXQgbm90IHJlY29tcHV0
aW5nIGFmdGVyIGdyaWQgZ3Jvd3RoLiBUaGlzIHdhcyByYWlzZWQgdG8gd3d3LXN0eWxlCisgICAg
ICAgIChodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctc3R5bGUvMjAxM01h
ci8wMTgyLmh0bWwpCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVHcmlk
UG9zaXRpb25zRnJvbVN0eWxlKToKKyAgICAgICAgQWRkZWQgYW4gQVNTRVJUIG5vdyB0aGF0IHdl
IGRvbid0IGNhbGwgaXQgZHVyaW5nIGdyaWQgY29uc3RydWN0aW9uLgorCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKToKKyAgICAgICAg
VXBkYXRlZCB0aGUgY29kZSB0byByZXNvbHZlIHRoZSBncmlkIHBvc2l0aW9uIGFnYWluc3QgdGhl
IHJpZ2h0IHNpZGUuCisKIDIwMTMtMDMtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQWZ0ZXIgc2VuZGluZyBtZXNzYWdlLCBNYWlsIGNoYW5nZXMgZm9ybWF0
dGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDEzOGE5YWIyODJhY2Ni
NzVlOTA5NGI0NjkxMDUxMzlmZTQyYzVlY2MuLmQ4Yjc2MjRhN2E0NTJiMjkxMzg0YzQ3N2M3MjYw
YjcwNzI0M2Y2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTM1NTEs
MTQgKzM1NTEsMTQgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3Bl
cnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICB9CiAKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0R3JpZFN0YXJ0OiB7Ci0gICAgICAgIEdyaWRQb3NpdGlvbiBzdGFydFBvc2l0aW9uOwor
ICAgICAgICBHcmlkUG9zaXRpb24gc3RhcnRQb3NpdGlvbihTdGFydFNpZGUpOwogICAgICAgICBp
ZiAoIWNyZWF0ZUdyaWRQb3NpdGlvbih2YWx1ZSwgc3RhcnRQb3NpdGlvbikpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldEdyaWRJdGVtU3RhcnQoc3RhcnRQ
b3NpdGlvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEdyaWRFbmQ6IHsKLSAgICAgICAgR3JpZFBvc2l0aW9uIGVuZFBvc2l0aW9uOworICAgICAg
ICBHcmlkUG9zaXRpb24gZW5kUG9zaXRpb24oRW5kU2lkZSk7CiAgICAgICAgIGlmICghY3JlYXRl
R3JpZFBvc2l0aW9uKHZhbHVlLCBlbmRQb3NpdGlvbikpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIHN0YXRlLnN0eWxlKCktPnNldEdyaWRJdGVtRW5kKGVuZFBvc2l0aW9uKTsKQEAgLTM1
NjYsMTQgKzM1NjYsMTQgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1By
b3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICB9CiAKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0R3JpZEJlZm9yZTogewotICAgICAgICBHcmlkUG9zaXRpb24gYmVmb3JlUG9zaXRp
b247CisgICAgICAgIEdyaWRQb3NpdGlvbiBiZWZvcmVQb3NpdGlvbihCZWZvcmVTaWRlKTsKICAg
ICAgICAgaWYgKCFjcmVhdGVHcmlkUG9zaXRpb24odmFsdWUsIGJlZm9yZVBvc2l0aW9uKSkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0R3JpZEl0ZW1CZWZv
cmUoYmVmb3JlUG9zaXRpb24pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRHcmlkQWZ0ZXI6IHsKLSAgICAgICAgR3JpZFBvc2l0aW9uIGFmdGVyUG9z
aXRpb247CisgICAgICAgIEdyaWRQb3NpdGlvbiBhZnRlclBvc2l0aW9uKEFmdGVyU2lkZSk7CiAg
ICAgICAgIGlmICghY3JlYXRlR3JpZFBvc2l0aW9uKHZhbHVlLCBhZnRlclBvc2l0aW9uKSkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0R3JpZEl0ZW1BZnRl
cihhZnRlclBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApp
bmRleCBlNjc5ZmM4MmM1ZGVlODBmZDhlN2I1MzQ5ZmU2MTY3YzI3M2QyZWJmLi5iNGJhODNjOWI3
NTE1YjQ0NDEzYTA1MjM4M2E5YzNhNjBjMTMyY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuY3BwCkBAIC0zMzUsMTQgKzMzNSwxNiBAQCBzaXplX3QgUmVuZGVyR3JpZDo6
bWF4aW11bUluZGV4SW5EaXJlY3Rpb24oVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBj
b25zdAogCiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgewogICAgICAgICAvLyBUaGlzIGZ1
bmN0aW9uIGJ5cGFzc2VzIHRoZSBjYWNoZSAoY2FjaGVkR3JpZENvb3JkaW5hdGUoKSkgYXMgaXQg
aXMgdXNlZCB0byBidWlsZCBpdC4KLSAgICAgICAgT3duUHRyPEdyaWRTcGFuPiBwb3NpdGlvbnMg
PSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwgZGlyZWN0aW9uKTsKKyAgICAg
ICAgLy8gQWxzbyB3ZSBjYW4ndCBjYWxsIHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlIGhl
cmUgYXMgaXQgYXNzdW1lcyB0aGF0IHRoZSBncmlkIGlzIGJ1aWxkIGFuZCB3ZSBhcmUgaW4KKyAg
ICAgICAgLy8gdGhlIG1pZGRsZSBvZiBidWlsZGluZyBpdC4gSG93ZXZlciB3ZSBzaG91bGQgYmUg
YWJsZSB0byBzaGFyZSBtb3JlIGNvZGUgd2l0aCB0aGUgcHJldmlvdXMgbG9naWMgKEZJWE1FKS4K
KyAgICAgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24gPSAoZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMpID8gY2hpbGQtPnN0eWxlKCktPmdyaWRJdGVtU3RhcnQoKSA6IGNoaWxk
LT5zdHlsZSgpLT5ncmlkSXRlbUJlZm9yZSgpOworICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24m
IGZpbmFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gY2hpbGQtPnN0eWxl
KCktPmdyaWRJdGVtRW5kKCkgOiBjaGlsZC0+c3R5bGUoKS0+Z3JpZEl0ZW1BZnRlcigpOwogCi0g
ICAgICAgIC8vIE5vIHxwb3NpdGlvbnN8IG1lYW5zIHRoYXQgdGhlIGl0ZW0ncyBwb3NpdGlvbiB3
aWxsIG5lZWQgdG8gYmUgcmVzb2x2ZWQgYnkgdGhlIGF1dG8gcGxhY2VtZW50IGFsZ29yaXRobQot
ICAgICAgICAvLyB0aHVzIHdlIGRvbid0IG5lZWQgdG8gYWNjb3VudCBmb3IgaXQgaGVyZS4KLSAg
ICAgICAgaWYgKCFwb3NpdGlvbnMpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgc2l6
ZV90IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uID0gaW5pdGlhbFBvc2l0aW9uLmlzQXV0bygpID8g
MSA6IGluaXRpYWxQb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKTsKKyAgICAgICAgc2l6ZV90IHJl
c29sdmVkRmluYWxQb3NpdGlvbiA9IGZpbmFsUG9zaXRpb24uaXNBdXRvKCkgPyAxIDogZmluYWxQ
b3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKTsKIAotICAgICAgICBtYXhpbXVtSW5kZXggPSBzdGQ6
Om1heChtYXhpbXVtSW5kZXgsIHBvc2l0aW9ucy0+ZmluYWxQb3NpdGlvbkluZGV4ICsgMSk7Cisg
ICAgICAgIG1heGltdW1JbmRleCA9IHN0ZDo6bWF4KG1heGltdW1JbmRleCwgcmVzb2x2ZWRJbml0
aWFsUG9zaXRpb24pOworICAgICAgICBtYXhpbXVtSW5kZXggPSBzdGQ6Om1heChtYXhpbXVtSW5k
ZXgsIHJlc29sdmVkRmluYWxQb3NpdGlvbik7CiAgICAgfQogCiAgICAgcmV0dXJuIG1heGltdW1J
bmRleDsKQEAgLTUyNyw2ICs1MjksOCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdy
aWQoKQogICAgIFZlY3RvcjxSZW5kZXJCb3gqPiBzcGVjaWZpZWRNYWpvckF4aXNBdXRvR3JpZEl0
ZW1zOwogICAgIEdyaWRBdXRvRmxvdyBhdXRvRmxvdyA9IHN0eWxlKCktPmdyaWRBdXRvRmxvdygp
OwogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nQm94KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIG5l
dmVyIHJlLXJlc29sdmUgcG9zaXRpb25zIGlmIHRoZSBncmlkIGlzIGdyb3duIGR1cmluZyBhdXRv
LXBsYWNlbWVudCB3aGljaCBtYXkgbGVhZCBhdXRvIC8gPGludGVnZXI+CisgICAgICAgIC8vIHBv
c2l0aW9ucyB0byBub3QgbWF0Y2ggdGhlIGF1dGhvcidzIGludGVudC4gVGhlIHNwZWNpZmljYXRp
b24gaXMgdW5jbGVhciBvbiB3aGF0IHNob3VsZCBiZSBkb25lIGluIHRoaXMgY2FzZS4KICAgICAg
ICAgT3duUHRyPEdyaWRTcGFuPiByb3dQb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zy
b21TdHlsZShjaGlsZCwgRm9yUm93cyk7CiAgICAgICAgIE93blB0cjxHcmlkU3Bhbj4gY29sdW1u
UG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZvckNvbHVt
bnMpOwogICAgICAgICBpZiAoIXJvd1Bvc2l0aW9ucyB8fCAhY29sdW1uUG9zaXRpb25zKSB7CkBA
IC02ODIsNiArNjg2LDggQEAgUmVuZGVyR3JpZDo6R3JpZENvb3JkaW5hdGUgUmVuZGVyR3JpZDo6
Y2FjaGVkR3JpZENvb3JkaW5hdGUoY29uc3QgUmVuZGVyQm94KiBncmkKIAogUGFzc093blB0cjxS
ZW5kZXJHcmlkOjpHcmlkU3Bhbj4gUmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9t
U3R5bGUoY29uc3QgUmVuZGVyQm94KiBncmlkSXRlbSwgVHJhY2tTaXppbmdEaXJlY3Rpb24gZGly
ZWN0aW9uKSBjb25zdAogeworICAgIEFTU0VSVChncmlkV2FzUG9wdWxhdGVkKCkpOworCiAgICAg
Y29uc3QgR3JpZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNv
bHVtbnMpID8gZ3JpZEl0ZW0tPnN0eWxlKCktPmdyaWRJdGVtU3RhcnQoKSA6IGdyaWRJdGVtLT5z
dHlsZSgpLT5ncmlkSXRlbUJlZm9yZSgpOwogICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgZmluYWxQ
b3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBncmlkSXRlbS0+c3R5bGUoKS0+
Z3JpZEl0ZW1FbmQoKSA6IGdyaWRJdGVtLT5zdHlsZSgpLT5ncmlkSXRlbUFmdGVyKCk7CiAKQEAg
LTcxMCwxNCArNzE2LDIxIEBAIFBhc3NPd25QdHI8UmVuZGVyR3JpZDo6R3JpZFNwYW4+IFJlbmRl
ckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0CiAKIHNpemVfdCBSZW5k
ZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYg
cG9zaXRpb24pIGNvbnN0CiB7CisgICAgQVNTRVJUKGdyaWRXYXNQb3B1bGF0ZWQoKSk7CisKICAg
ICAvLyBGSVhNRTogSGFuZGxlIG90aGVyIHZhbHVlcyBmb3IgZ3JpZC17cm93LGNvbHVtbn0gbGlr
ZSByYW5nZXMgb3IgbGluZSBuYW1lcy4KICAgICBzd2l0Y2ggKHBvc2l0aW9uLnR5cGUoKSkgewot
ICAgIGNhc2UgSW50ZWdlclBvc2l0aW9uOgorICAgIGNhc2UgSW50ZWdlclBvc2l0aW9uOiB7CiAg
ICAgICAgIC8vIEZJWE1FOiBXaGF0IGRvZXMgYSBub24tcG9zaXRpdmUgaW50ZWdlciBtZWFuIGZv
ciBhIGNvbHVtbi9yb3c/Ci0gICAgICAgIGlmICghcG9zaXRpb24uaXNQb3NpdGl2ZSgpKQotICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHNpemVfdCByZXNvbHZlZFBvc2l0aW9uID0gcG9z
aXRpb24uaXNQb3NpdGl2ZSgpID8gcG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkgLSAxIDogMDsK
KworICAgICAgICBpZiAocG9zaXRpb24uaXNJbml0aWFsUG9zaXRpb24oKSkKKyAgICAgICAgICAg
IHJldHVybiByZXNvbHZlZFBvc2l0aW9uOwogCi0gICAgICAgIHJldHVybiBwb3NpdGlvbi5pbnRl
Z2VyUG9zaXRpb24oKSAtIDE7CisgICAgICAgIGNvbnN0IHNpemVfdCBlbmRPZlRyYWNrID0gKHBv
c2l0aW9uLnNpZGUoKSA9PSBFbmRTaWRlKSA/IGdyaWRDb2x1bW5Db3VudCgpIC0gMSA6IGdyaWRS
b3dDb3VudCgpIC0gMTsKKyAgICAgICAgQVNTRVJUKGVuZE9mVHJhY2sgPj0gcmVzb2x2ZWRQb3Np
dGlvbik7CisgICAgICAgIHJldHVybiBlbmRPZlRyYWNrIC0gcmVzb2x2ZWRQb3NpdGlvbjsKKyAg
ICB9CiAgICAgY2FzZSBBdXRvUG9zaXRpb246CiAgICAgICAgIC8vICdhdXRvJyBkZXBlbmRzIG9u
IHRoZSBvcHBvc2l0ZSBwb3NpdGlvbiBmb3IgcmVzb2x1dGlvbiAoZS5nLiBncmlkLXJvdzogYXV0
byAvIDEpLgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaAppbmRleCAzZjhmZTk3NGQzMGMwZmUxZDRk
NTU1MWE2N2UzOWE5M2MwN2YzOTNiLi4yODliOWZlYzhiNWE5NTE1NzI5NTdhMTRmMTViNjU4MzRl
Y2NkNDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBv
c2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlv
bi5oCkBAIC0zOCwxMSArMzgsMjAgQEAgZW51bSBHcmlkUG9zaXRpb25UeXBlIHsKICAgICBJbnRl
Z2VyUG9zaXRpb24KIH07CiAKKy8vIFVzZWQgZm9yIHRvIHJlc29sdmUgdGhlIHBvc2l0aW9uIGFn
YWluc3QgdGhlIHJpZ2h0IGVkZ2UuCitlbnVtIEdyaWRQb3NpdGlvblNpZGUgeworICAgIFN0YXJ0
U2lkZSwKKyAgICBFbmRTaWRlLAorICAgIEJlZm9yZVNpZGUsCisgICAgQWZ0ZXJTaWRlCit9Owor
CiBjbGFzcyBHcmlkUG9zaXRpb24gewogcHVibGljOgotICAgIEdyaWRQb3NpdGlvbigpCisgICAg
R3JpZFBvc2l0aW9uKEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKICAgICAgICAgOiBtX3R5cGUoQXV0
b1Bvc2l0aW9uKQogICAgICAgICAsIG1faW50ZWdlclBvc2l0aW9uKDApCisgICAgICAgICwgbV9z
aWRlKHNpZGUpCiAgICAgewogICAgIH0KIApAQCAtNjgsMTAgKzc3LDE1IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIG1fdHlwZSA9PSBvdGhlci5tX3R5cGUgJiYgbV9pbnRlZ2VyUG9zaXRpb24g
PT0gb3RoZXIubV9pbnRlZ2VyUG9zaXRpb247CiAgICAgfQogCisgICAgR3JpZFBvc2l0aW9uU2lk
ZSBzaWRlKCkgY29uc3QgeyByZXR1cm4gbV9zaWRlOyB9CisgICAgYm9vbCBpc0luaXRpYWxQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2lkZSA9PSBTdGFydFNpZGUgfHwgbV9zaWRlID09IEJl
Zm9yZVNpZGU7IH0KKwogcHJpdmF0ZToKICAgICBHcmlkUG9zaXRpb25UeXBlIG1fdHlwZTsKICAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgYSBzaXplX3QgYnV0IHRoZSBzcGVj
IGN1cnJlbnRseSBhbGxvd3MgYW55IDxpbnRlZ2VyPi4KICAgICBpbnQgbV9pbnRlZ2VyUG9zaXRp
b247CisKKyAgICBHcmlkUG9zaXRpb25TaWRlIG1fc2lkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
aW5kZXggMjNhYzc5MmRhZDMzYTI0NDFjZjM0ZGYzYTUwOTAwM2FiYzU0ZGI2OC4uNjA0NjIyNDVk
YTcyNDliNTg5YTJiN2M3YzkxMmI3Nzc4MjBjNDkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTEyNzAsMTAgKzEyNzAsMTAgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0R3JpZENvbHVtbnMoY29uc3QgVmVjdG9yPEdyaWRUcmFja1NpemU+JiBs
ZW5ndGhzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZCwg
bV9ncmlkQ29sdW1ucywgbGVuZ3Rocyk7IH0KICAgICB2b2lkIHNldEdyaWRSb3dzKGNvbnN0IFZl
Y3RvcjxHcmlkVHJhY2tTaXplPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLmFjY2VzcygpLT5tX2dyaWQsIG1fZ3JpZFJvd3MsIGxlbmd0aHMpOyB9CiAgICAgdm9pZCBz
ZXRHcmlkQXV0b0Zsb3coR3JpZEF1dG9GbG93IGZsb3cpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRBdXRvRmxvdywgZmxvdyk7IH0KLSAgICB2
b2lkIHNldEdyaWRJdGVtU3RhcnQoY29uc3QgR3JpZFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uKSB7
IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZEl0ZW0sIG1fZ3Jp
ZFN0YXJ0LCBzdGFydFBvc2l0aW9uKTsgfQotICAgIHZvaWQgc2V0R3JpZEl0ZW1FbmQoY29uc3Qg
R3JpZFBvc2l0aW9uJiBlbmRQb3NpdGlvbikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LmFjY2VzcygpLT5tX2dyaWRJdGVtLCBtX2dyaWRFbmQsIGVuZFBvc2l0aW9uKTsgfQotICAgIHZv
aWQgc2V0R3JpZEl0ZW1CZWZvcmUoY29uc3QgR3JpZFBvc2l0aW9uJiBiZWZvcmVQb3NpdGlvbikg
eyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWRJdGVtLCBtX2dy
aWRCZWZvcmUsIGJlZm9yZVBvc2l0aW9uKTsgfQotICAgIHZvaWQgc2V0R3JpZEl0ZW1BZnRlcihj
b25zdCBHcmlkUG9zaXRpb24mIGFmdGVyUG9zaXRpb24pIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkSXRlbSwgbV9ncmlkQWZ0ZXIsIGFmdGVyUG9zaXRpb24p
OyB9CisgICAgdm9pZCBzZXRHcmlkSXRlbVN0YXJ0KGNvbnN0IEdyaWRQb3NpdGlvbiYgc3RhcnRQ
b3NpdGlvbikgeyBBU1NFUlQoc3RhcnRQb3NpdGlvbi5zaWRlKCkgPT0gU3RhcnRTaWRlKTsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkSXRlbSwgbV9ncmlkU3Rh
cnQsIHN0YXJ0UG9zaXRpb24pOyB9CisgICAgdm9pZCBzZXRHcmlkSXRlbUVuZChjb25zdCBHcmlk
UG9zaXRpb24mIGVuZFBvc2l0aW9uKSB7IEFTU0VSVChlbmRQb3NpdGlvbi5zaWRlKCkgPT0gRW5k
U2lkZSk7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZEl0ZW0s
IG1fZ3JpZEVuZCwgZW5kUG9zaXRpb24pOyB9CisgICAgdm9pZCBzZXRHcmlkSXRlbUJlZm9yZShj
b25zdCBHcmlkUG9zaXRpb24mIGJlZm9yZVBvc2l0aW9uKSB7IEFTU0VSVChiZWZvcmVQb3NpdGlv
bi5zaWRlKCkgPT0gQmVmb3JlU2lkZSk7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNj
ZXNzKCktPm1fZ3JpZEl0ZW0sIG1fZ3JpZEJlZm9yZSwgYmVmb3JlUG9zaXRpb24pOyB9CisgICAg
dm9pZCBzZXRHcmlkSXRlbUFmdGVyKGNvbnN0IEdyaWRQb3NpdGlvbiYgYWZ0ZXJQb3NpdGlvbikg
eyBBU1NFUlQoYWZ0ZXJQb3NpdGlvbi5zaWRlKCkgPT0gQWZ0ZXJTaWRlKTsgU0VUX1ZBUihyYXJl
Tm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkSXRlbSwgbV9ncmlkQWZ0ZXIsIGFmdGVy
UG9zaXRpb24pOyB9CiAKICAgICB2b2lkIHNldE1hcnF1ZWVJbmNyZW1lbnQoY29uc3QgTGVuZ3Ro
JiBmKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbWFycXVlZSwg
aW5jcmVtZW50LCBmKTsgfQogICAgIHZvaWQgc2V0TWFycXVlZVNwZWVkKGludCBmKSB7IFNFVF9W
QVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbWFycXVlZSwgc3BlZWQsIGYpOyB9
CkBAIC0xNjg1LDcgKzE2ODUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEdyaWRBdXRvRmxvdyBp
bml0aWFsR3JpZEF1dG9GbG93KCkgeyByZXR1cm4gQXV0b0Zsb3dOb25lOyB9CiAKICAgICAvLyAn
YXV0bycgaXMgdGhlIGRlZmF1bHQuCi0gICAgc3RhdGljIEdyaWRQb3NpdGlvbiBpbml0aWFsR3Jp
ZFBvc2l0aW9uKCkgeyByZXR1cm4gR3JpZFBvc2l0aW9uKCk7IH0KKyAgICBzdGF0aWMgR3JpZFBv
c2l0aW9uIGluaXRpYWxHcmlkUG9zaXRpb24oR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSB7IHJldHVy
biBHcmlkUG9zaXRpb24oc2lkZSk7IH0KIAogICAgIHN0YXRpYyB1bnNpZ25lZCBpbml0aWFsVGFi
U2l6ZSgpIHsgcmV0dXJuIDg7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5jcHAKaW5kZXggOWE2NGYwNTFlMDExZDA0MzNkYjI4
ZmViZmFkZDI0NTBhNzJiMjAxYi4uM2EzZjM3NjFmZDY5OWE4MmM1NGQzYzQ1NGQ0NGM5OWI0ZjYy
ZTUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3Jp
ZEl0ZW1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
cmlkSXRlbURhdGEuY3BwCkBAIC0zNSwxMCArMzUsMTAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogU3R5bGVHcmlkSXRlbURhdGE6OlN0eWxlR3JpZEl0ZW1EYXRhKCkKLSAgICA6IG1fZ3JpZFN0
YXJ0KFJlbmRlclN0eWxlOjppbml0aWFsR3JpZFBvc2l0aW9uKCkpCi0gICAgLCBtX2dyaWRFbmQo
UmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkUG9zaXRpb24oKSkKLSAgICAsIG1fZ3JpZEJlZm9yZShS
ZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRQb3NpdGlvbigpKQotICAgICwgbV9ncmlkQWZ0ZXIoUmVu
ZGVyU3R5bGU6OmluaXRpYWxHcmlkUG9zaXRpb24oKSkKKyAgICA6IG1fZ3JpZFN0YXJ0KFJlbmRl
clN0eWxlOjppbml0aWFsR3JpZFBvc2l0aW9uKFN0YXJ0U2lkZSkpCisgICAgLCBtX2dyaWRFbmQo
UmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkUG9zaXRpb24oRW5kU2lkZSkpCisgICAgLCBtX2dyaWRC
ZWZvcmUoUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkUG9zaXRpb24oQmVmb3JlU2lkZSkpCisgICAg
LCBtX2dyaWRBZnRlcihSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRQb3NpdGlvbihBZnRlclNpZGUp
KQogewogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNDEyNDhmMWRmYmVlYzY0YTViNWNhYTllZDAzOWMwYmM0MWMxNjIx
Yy4uZmE5ZDcxZWRhMDI3OGE4OTM3YmI1ZjlhYmJiMzk2Y2Q2NWM5MjAwMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDEzLTAzLTA4ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIFJlc29sdmUgZ3JpZC17ZW5kfGFm
dGVyfSBpbnRlZ2VyIGFnYWluc3QgdGhlIGVuZHxhZnRlciBlZGdlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE4ODUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtYXV0by1mbG93LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICBNb2FyIHBhc3Np
bmcgdGVzdHMhCisKIDIwMTMtMDMtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgQWZ0ZXIgc2VuZGluZyBtZXNzYWdlLCBNYWlsIGNoYW5nZXMgZm9ybWF0dGlu
ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRv
LWZsb3ctcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBjYTg0
YmRmYzU0YWJiYjFjZjU0M2FjNDgxYzhjNzE4ODU3MWM0YWJiLi4yMjk1NjViMDdjM2QxYTM1Y2Ni
NTRjZTdiMTU0MGFmNTNiYzUxNzFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
cmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9u
LWV4cGVjdGVkLnR4dApAQCAtMzYsNTggKzM2LDE2IEBAIFhYWFhYIFhYWFhYIFhYWFhYCiBYWFhY
WCBYWFhYWCBYWFhYWAogWFhYWFggWFhYWFggWFhYWFgKIFhYWFhYIFhYWFhYIFhYWFhYCi1GQUlM
OgotRXhwZWN0ZWQgMjAwIGZvciB3aWR0aCwgYnV0IGdvdCA1MC4gCi1FeHBlY3RlZCAyMDAgZm9y
IGhlaWdodCwgYnV0IGdvdCA1MC4gCi1FeHBlY3RlZCAzMDAgZm9yIG9mZnNldExlZnQsIGJ1dCBn
b3QgMC4gCi1FeHBlY3RlZCAzMDAgZm9yIG9mZnNldFRvcCwgYnV0IGdvdCAwLiAKLQotPGRpdiBj
bGFzcz0iZ3JpZCBiaWdHcmlkIGdyaWRBdXRvRmxvd0NvbHVtbiI+Ci0gICAgICAgIDxkaXYgY2xh
c3M9InNpemVkVG9HcmlkQXJlYSBhdXRvRmlyc3RSb3dBdXRvRmlyc3RDb2x1bW4iIGRhdGEtb2Zm
c2V0LXg9IjMwMCIgZGF0YS1vZmZzZXQteT0iMzAwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIyMDAi
IGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+Ci0gICAg
ICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdEF1dG9Sb3dTZWNvbmRBdXRvQ29s
dW1uIiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13
aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9k
aXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBzZWNvbmRSb3dBdXRvQ29s
dW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1leHBlY3RlZC13
aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhYWFhYIFhYWFhYPC9k
aXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdFJvd0ZpcnN0Q29s
dW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2
PgotICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd0F1dG9Db2x1bW4i
IGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjE1MCIgZGF0YS1leHBlY3RlZC13aWR0
aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+
Ci0gICAgPC9kaXY+CitQQVNTCiBYWFhYWCBYWFhYWCBYWFhYWAogWFhYWFggWFhYWFggWFhYWFgK
IFhYWFhYIFhYWFhYIFhYWFhYCiBYWFhYWCBYWFhYWCBYWFhYWAogWFhYWFggWFhYWFggWFhYWFgK
LUZBSUw6Ci1FeHBlY3RlZCAyMDAgZm9yIHdpZHRoLCBidXQgZ290IDUwLiAKLUV4cGVjdGVkIDIw
MCBmb3IgaGVpZ2h0LCBidXQgZ290IDUwLiAKLUV4cGVjdGVkIDMwMCBmb3Igb2Zmc2V0TGVmdCwg
YnV0IGdvdCAwLiAKLUV4cGVjdGVkIDMwMCBmb3Igb2Zmc2V0VG9wLCBidXQgZ290IDAuIAotCi08
ZGl2IGNsYXNzPSJncmlkIGJpZ0dyaWQgZ3JpZEF1dG9GbG93Um93Ij4KLSAgICAgICAgPGRpdiBj
bGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9GaXJzdFJvd0F1dG9GaXJzdENvbHVtbiIgZGF0YS1v
ZmZzZXQteD0iMzAwIiBkYXRhLW9mZnNldC15PSIzMDAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjIw
MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KLSAg
ICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0QXV0b1Jvd1NlY29uZEF1dG9D
b2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVk
LXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8
L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd0F1dG9D
b2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVk
LXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+WFhYWFggWFhYWFggWFhYWFg8
L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGZpcnN0Um93Rmlyc3RD
b2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQt
d2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhYIFhYWFhYIFhYWFhYPC9k
aXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93QXV0b0NvbHVt
biIgZGF0YS1vZmZzZXQteD0iMTUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSIxNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rp
dj4KLSAgICA8L2Rpdj4KLVhYWFhYIFhYWFhYIFhYWFhYCi1YWFhYWCBYWFhYWCBYWFhYWAotRkFJ
TDoKLUV4cGVjdGVkIDUwIGZvciBoZWlnaHQsIGJ1dCBnb3QgMzAuIAotRXhwZWN0ZWQgMCBmb3Ig
b2Zmc2V0VG9wLCBidXQgZ290IDUwMC4gCi1FeHBlY3RlZCA1MCBmb3Igd2lkdGgsIGJ1dCBnb3Qg
MTcwLiAKLUV4cGVjdGVkIDAgZm9yIG9mZnNldExlZnQsIGJ1dCBnb3QgNTAwLiAKLQotPGRpdiBj
bGFzcz0iZ3JpZCBiaWdHcmlkIGdyaWRBdXRvRmxvd0NvbHVtbiI+Ci0gICAgICAgIDxkaXYgY2xh
c3M9InNpemVkVG9HcmlkQXJlYSBvdmVyZmxvd2luZ1Jvd0ZpcnN0Q29sdW1uIiBkYXRhLW9mZnNl
dC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1l
eHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgotICAgICAgICA8ZGl2
IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgc2Vjb25kUm93T3ZlcmZsb3dpbmdDb2x1bW4iIGRhdGEt
b2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KLSAgICA8
L2Rpdj4KK1BBU1MKIFhYWFhYIFhYWFhYIFhYWFhYCiBYWFhYWCBYWFhYWCBYWFhYWAotRkFJTDoK
LUV4cGVjdGVkIDUwIGZvciBoZWlnaHQsIGJ1dCBnb3QgMzAuIAotRXhwZWN0ZWQgMCBmb3Igb2Zm
c2V0VG9wLCBidXQgZ290IDUwMC4gCi1FeHBlY3RlZCA1MCBmb3Igd2lkdGgsIGJ1dCBnb3QgMTcw
LiAKLUV4cGVjdGVkIDAgZm9yIG9mZnNldExlZnQsIGJ1dCBnb3QgNTAwLiAKLQotPGRpdiBjbGFz
cz0iZ3JpZCBiaWdHcmlkIGdyaWRBdXRvRmxvd1JvdyI+Ci0gICAgICAgIDxkaXYgY2xhc3M9InNp
emVkVG9HcmlkQXJlYSBvdmVyZmxvd2luZ1Jvd0ZpcnN0Q29sdW1uIiBkYXRhLW9mZnNldC14PSIw
IiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3Rl
ZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNz
PSJzaXplZFRvR3JpZEFyZWEgc2Vjb25kUm93T3ZlcmZsb3dpbmdDb2x1bW4iIGRhdGEtb2Zmc2V0
LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1l
eHBlY3RlZC1oZWlnaHQ9IjEwMCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KLSAgICA8L2Rpdj4K
K1BBU1MKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorUEFTUwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192315</attachid>
            <date>2013-03-08 17:22:56 -0800</date>
            <delta_ts>2013-03-08 17:50:27 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-111885-20130308171859.patch</filename>
            <type>text/plain</type>
            <size>13404</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVhNzcxZmM2MjViNDZk
YzUzNzdiNDkwMmMxNzE2MTIyNTY4YTNmMC4uNDk0NTdhYWIwZmVlZTBhYjU2OGExZjIwYWU4Zjkx
MjVkNmVmMmQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTA4ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIFJlc29sdmUgZ3JpZC17ZW5kfGFmdGVyfSBpbnRlZ2VyIGFnYWluc3QgdGhlIGVu
ZHxhZnRlciBlZGdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTE4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgorCisgICAgICAg
IFRoZSBjdXJyZW50IGNvZGUgcmVzb2x2ZXMgZ3JpZC1lbmQgKHJlc3AuIGdyaWQtYWZ0ZXIpIDxp
bnRlZ2VyPidzIGZvcm1hdCBhZ2FpbnN0IHRoZSBzdGFydAorICAgICAgICAocmVzcC4gYmVmb3Jl
KSBheGlzLiBUaGUgc3BlY2lmaWNhdGlvbiBjaGFuZ2VkIHNvIHRoYXQgdGhleSBhcmUgcmVzb2x2
ZWQgYWdhaW5zdCB0aGVpciBtYXRjaGluZworICAgICAgICBheGlzLgorCisgICAgICAgIFRlc3Q6
IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24uaHRtbAorCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyR3JpZDo6bWF4aW11bUluZGV4SW5EaXJlY3Rpb24pOgorICAgICAgICBVcGRhdGVkIHRoZSBj
b2RlIHRvIGRvIHRoZSBncmlkIHNpemluZyBtZWFzdXJlbWVudCB3aXRob3V0IHJlc29sdmVHcmlk
UG9zaXRpb25zRnJvbVN0eWxlLiBUaGF0J3MgcmVxdWlyZWQKKyAgICAgICAgYXMgcmVzb2x2ZUdy
aWRQb3NpdGlvbnNGcm9tU3R5bGUgcmVxdWlyZXMgdGhlIGdyaWQgdG8gYmUgc2l6ZWQuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQpOgorICAgICAgICBB
ZGRlZCBhIGNvbW1lbnQgYWJvdXQgbm90IHJlY29tcHV0aW5nIGFmdGVyIGdyaWQgZ3Jvd3RoLiBU
aGlzIGlzc3VlIHdhcyByYWlzZWQgdG8gd3d3LXN0eWxlCisgICAgICAgIChodHRwOi8vbGlzdHMu
dzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctc3R5bGUvMjAxM01hci8wMTgyLmh0bWwpLgorCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHls
ZSk6CisgICAgICAgIEFkZGVkIGFuIEFTU0VSVCBub3cgdGhhdCB3ZSBkb24ndCBjYWxsIGl0IGR1
cmluZyBncmlkIGNvbnN0cnVjdGlvbi4gQWxzbyBhZGRlZCBzb21lIGNvZGUgdG8gcGFzcworICAg
ICAgICB0aGUgc2lkZSBvZiB0aGUgR3JpZFBvc2l0aW9uIHdlIGdpdmUgdG8gcmVzb2x2ZUdyaWRQ
b3NpdGlvbkZyb21TdHlsZS4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2
ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIFVwZGF0ZWQgdGhlIGNvZGUgdG8gcmVz
b2x2ZSB0aGUgZ3JpZCBwb3NpdGlvbiBhZ2FpbnN0IHRoZSByaWdodCBzaWRlLgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAgQWRkZWQgR3JpZFBvc2l0aW9uU2lk
ZSBhbmQgdXBkYXRlZCByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlJ3Mgc2lnbmF0dXJlLgor
CiAyMDEzLTAzLTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEFmdGVyIHNlbmRpbmcgbWVzc2FnZSwgTWFpbCBjaGFuZ2VzIGZvcm1hdHRpbmcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCBlNjc5ZmM4MmM1ZGVlODBmZDhlN2I1
MzQ5ZmU2MTY3YzI3M2QyZWJmLi5jY2U1NzE0YTZkMTg1ODdkOWUwZDM2ZmVjNTAzNjY0NTVhYTFh
ZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0zMzUsMTQg
KzMzNSwxNiBAQCBzaXplX3QgUmVuZGVyR3JpZDo6bWF4aW11bUluZGV4SW5EaXJlY3Rpb24oVHJh
Y2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAogCiAgICAgZm9yIChSZW5kZXJCb3gq
IGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmdCb3goKSkgewogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBjYWNoZSAo
Y2FjaGVkR3JpZENvb3JkaW5hdGUoKSkgYXMgaXQgaXMgdXNlZCB0byBidWlsZCBpdC4KLSAgICAg
ICAgT3duUHRyPEdyaWRTcGFuPiBwb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21T
dHlsZShjaGlsZCwgZGlyZWN0aW9uKTsKKyAgICAgICAgLy8gQWxzbyB3ZSBjYW4ndCBjYWxsIHJl
c29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlIGhlcmUgYXMgaXQgYXNzdW1lcyB0aGF0IHRoZSBn
cmlkIGlzIGJ1aWxkIGFuZCB3ZSBhcmUgaW4KKyAgICAgICAgLy8gdGhlIG1pZGRsZSBvZiBidWls
ZGluZyBpdC4gSG93ZXZlciB3ZSBzaG91bGQgYmUgYWJsZSB0byBzaGFyZSBtb3JlIGNvZGUgd2l0
aCB0aGUgcHJldmlvdXMgbG9naWMgKEZJWE1FKS4KKyAgICAgICAgY29uc3QgR3JpZFBvc2l0aW9u
JiBpbml0aWFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gY2hpbGQtPnN0
eWxlKCktPmdyaWRJdGVtU3RhcnQoKSA6IGNoaWxkLT5zdHlsZSgpLT5ncmlkSXRlbUJlZm9yZSgp
OworICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24mIGZpbmFsUG9zaXRpb24gPSAoZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMpID8gY2hpbGQtPnN0eWxlKCktPmdyaWRJdGVtRW5kKCkgOiBjaGlsZC0+
c3R5bGUoKS0+Z3JpZEl0ZW1BZnRlcigpOwogCi0gICAgICAgIC8vIE5vIHxwb3NpdGlvbnN8IG1l
YW5zIHRoYXQgdGhlIGl0ZW0ncyBwb3NpdGlvbiB3aWxsIG5lZWQgdG8gYmUgcmVzb2x2ZWQgYnkg
dGhlIGF1dG8gcGxhY2VtZW50IGFsZ29yaXRobQotICAgICAgICAvLyB0aHVzIHdlIGRvbid0IG5l
ZWQgdG8gYWNjb3VudCBmb3IgaXQgaGVyZS4KLSAgICAgICAgaWYgKCFwb3NpdGlvbnMpCi0gICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgc2l6ZV90IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
ID0gaW5pdGlhbFBvc2l0aW9uLmlzQXV0bygpID8gMSA6IGluaXRpYWxQb3NpdGlvbi5pbnRlZ2Vy
UG9zaXRpb24oKTsKKyAgICAgICAgc2l6ZV90IHJlc29sdmVkRmluYWxQb3NpdGlvbiA9IGZpbmFs
UG9zaXRpb24uaXNBdXRvKCkgPyAxIDogZmluYWxQb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKTsK
IAotICAgICAgICBtYXhpbXVtSW5kZXggPSBzdGQ6Om1heChtYXhpbXVtSW5kZXgsIHBvc2l0aW9u
cy0+ZmluYWxQb3NpdGlvbkluZGV4ICsgMSk7CisgICAgICAgIG1heGltdW1JbmRleCA9IHN0ZDo6
bWF4KG1heGltdW1JbmRleCwgcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pOworICAgICAgICBtYXhp
bXVtSW5kZXggPSBzdGQ6Om1heChtYXhpbXVtSW5kZXgsIHJlc29sdmVkRmluYWxQb3NpdGlvbik7
CiAgICAgfQogCiAgICAgcmV0dXJuIG1heGltdW1JbmRleDsKQEAgLTUyNyw2ICs1MjksOCBAQCB2
b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoKQogICAgIFZlY3RvcjxSZW5kZXJCb3gq
PiBzcGVjaWZpZWRNYWpvckF4aXNBdXRvR3JpZEl0ZW1zOwogICAgIEdyaWRBdXRvRmxvdyBhdXRv
RmxvdyA9IHN0eWxlKCktPmdyaWRBdXRvRmxvdygpOwogICAgIGZvciAoUmVuZGVyQm94KiBjaGls
ZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nQm94
KCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIG5ldmVyIHJlLXJlc29sdmUgcG9zaXRpb25zIGlm
IHRoZSBncmlkIGlzIGdyb3duIGR1cmluZyBhdXRvLXBsYWNlbWVudCB3aGljaCBtYXkgbGVhZCBh
dXRvIC8gPGludGVnZXI+CisgICAgICAgIC8vIHBvc2l0aW9ucyB0byBub3QgbWF0Y2ggdGhlIGF1
dGhvcidzIGludGVudC4gVGhlIHNwZWNpZmljYXRpb24gaXMgdW5jbGVhciBvbiB3aGF0IHNob3Vs
ZCBiZSBkb25lIGluIHRoaXMgY2FzZS4KICAgICAgICAgT3duUHRyPEdyaWRTcGFuPiByb3dQb3Np
dGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwgRm9yUm93cyk7CiAg
ICAgICAgIE93blB0cjxHcmlkU3Bhbj4gY29sdW1uUG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3Np
dGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZvckNvbHVtbnMpOwogICAgICAgICBpZiAoIXJvd1Bvc2l0
aW9ucyB8fCAhY29sdW1uUG9zaXRpb25zKSB7CkBAIC02ODIsOCArNjg2LDEyIEBAIFJlbmRlckdy
aWQ6OkdyaWRDb29yZGluYXRlIFJlbmRlckdyaWQ6OmNhY2hlZEdyaWRDb29yZGluYXRlKGNvbnN0
IFJlbmRlckJveCogZ3JpCiAKIFBhc3NPd25QdHI8UmVuZGVyR3JpZDo6R3JpZFNwYW4+IFJlbmRl
ckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlckJveCogZ3Jp
ZEl0ZW0sIFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKIHsKKyAgICBBU1NF
UlQoZ3JpZFdhc1BvcHVsYXRlZCgpKTsKKwogICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgaW5pdGlh
bFBvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGdyaWRJdGVtLT5zdHlsZSgp
LT5ncmlkSXRlbVN0YXJ0KCkgOiBncmlkSXRlbS0+c3R5bGUoKS0+Z3JpZEl0ZW1CZWZvcmUoKTsK
KyAgICBjb25zdCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUgPSAoZGlyZWN0
aW9uID09IEZvckNvbHVtbnMpID8gU3RhcnRTaWRlIDogQmVmb3JlU2lkZTsKICAgICBjb25zdCBH
cmlkUG9zaXRpb24mIGZpbmFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8g
Z3JpZEl0ZW0tPnN0eWxlKCktPmdyaWRJdGVtRW5kKCkgOiBncmlkSXRlbS0+c3R5bGUoKS0+Z3Jp
ZEl0ZW1BZnRlcigpOworICAgIGNvbnN0IEdyaWRQb3NpdGlvblNpZGUgZmluYWxQb3NpdGlvblNp
ZGUgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gRW5kU2lkZSA6IEFmdGVyU2lkZTsKIAog
ICAgIGlmIChpbml0aWFsUG9zaXRpb24uaXNBdXRvKCkgJiYgZmluYWxQb3NpdGlvbi5pc0F1dG8o
KSkgewogICAgICAgICBpZiAoc3R5bGUoKS0+Z3JpZEF1dG9GbG93KCkgPT0gQXV0b0Zsb3dOb25l
KQpAQCAtNjk1LDI5ICs3MDMsMzYgQEAgUGFzc093blB0cjxSZW5kZXJHcmlkOjpHcmlkU3Bhbj4g
UmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QKIAogICAgIGlm
IChpbml0aWFsUG9zaXRpb24uaXNBdXRvKCkpIHsKICAgICAgICAgLy8gSW5mZXIgdGhlIHBvc2l0
aW9uIGZyb20gdGhlIGZpbmFsIHBvc2l0aW9uICgnYXV0byAvIDEnIGNhc2UpLgotICAgICAgICBj
b25zdCBzaXplX3QgZmluYWxSZXNvbHZlZFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZy
b21TdHlsZShmaW5hbFBvc2l0aW9uKTsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGZpbmFsUmVzb2x2
ZWRQb3NpdGlvbiA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoZmluYWxQb3NpdGlvbiwg
ZmluYWxQb3NpdGlvblNpZGUpOwogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdyaWRTcGFu
KGZpbmFsUmVzb2x2ZWRQb3NpdGlvbiwgZmluYWxSZXNvbHZlZFBvc2l0aW9uKSk7CiAgICAgfQog
CiAgICAgaWYgKGZpbmFsUG9zaXRpb24uaXNBdXRvKCkpIHsKICAgICAgICAgLy8gSW5mZXIgb3Vy
IHBvc2l0aW9uIGZyb20gdGhlIGluaXRpYWwgcG9zaXRpb24gKCcxIC8gYXV0bycgY2FzZSkuCi0g
ICAgICAgIGNvbnN0IHNpemVfdCBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUoaW5pdGlhbFBvc2l0aW9uKTsKKyAgICAgICAgY29uc3Qgc2l6ZV90
IGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShp
bml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUpOwogICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IEdyaWRTcGFuKGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uLCBpbml0aWFsUmVzb2x2
ZWRQb3NpdGlvbikpOwogICAgIH0KIAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgR3JpZFNwYW4o
cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShpbml0aWFsUG9zaXRpb24pLCByZXNvbHZlR3Jp
ZFBvc2l0aW9uRnJvbVN0eWxlKGZpbmFsUG9zaXRpb24pKSk7CisgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBHcmlkU3BhbihyZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGluaXRpYWxQb3NpdGlv
biwgaW5pdGlhbFBvc2l0aW9uU2lkZSksIHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoZmlu
YWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpKSk7CiB9CiAKLXNpemVfdCBSZW5kZXJHcmlk
OjpyZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRp
b24pIGNvbnN0CitzaXplX3QgUmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHls
ZShjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNv
bnN0CiB7CisgICAgQVNTRVJUKGdyaWRXYXNQb3B1bGF0ZWQoKSk7CisKICAgICAvLyBGSVhNRTog
SGFuZGxlIG90aGVyIHZhbHVlcyBmb3IgZ3JpZC17cm93LGNvbHVtbn0gbGlrZSByYW5nZXMgb3Ig
bGluZSBuYW1lcy4KICAgICBzd2l0Y2ggKHBvc2l0aW9uLnR5cGUoKSkgewotICAgIGNhc2UgSW50
ZWdlclBvc2l0aW9uOgorICAgIGNhc2UgSW50ZWdlclBvc2l0aW9uOiB7CiAgICAgICAgIC8vIEZJ
WE1FOiBXaGF0IGRvZXMgYSBub24tcG9zaXRpdmUgaW50ZWdlciBtZWFuIGZvciBhIGNvbHVtbi9y
b3c/Ci0gICAgICAgIGlmICghcG9zaXRpb24uaXNQb3NpdGl2ZSgpKQotICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHNpemVfdCByZXNvbHZlZFBvc2l0aW9uID0gcG9zaXRpb24uaXNQb3Np
dGl2ZSgpID8gcG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkgLSAxIDogMDsKKworICAgICAgICBp
ZiAoc2lkZSA9PSBTdGFydFNpZGUgfHwgc2lkZSA9PSBCZWZvcmVTaWRlKQorICAgICAgICAgICAg
cmV0dXJuIHJlc29sdmVkUG9zaXRpb247CiAKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uLmludGVn
ZXJQb3NpdGlvbigpIC0gMTsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGVuZE9mVHJhY2sgPSAoc2lk
ZSA9PSBFbmRTaWRlKSA/IGdyaWRDb2x1bW5Db3VudCgpIC0gMSA6IGdyaWRSb3dDb3VudCgpIC0g
MTsKKyAgICAgICAgQVNTRVJUKGVuZE9mVHJhY2sgPj0gcmVzb2x2ZWRQb3NpdGlvbik7CisgICAg
ICAgIHJldHVybiBlbmRPZlRyYWNrIC0gcmVzb2x2ZWRQb3NpdGlvbjsKKyAgICB9CiAgICAgY2Fz
ZSBBdXRvUG9zaXRpb246CiAgICAgICAgIC8vICdhdXRvJyBkZXBlbmRzIG9uIHRoZSBvcHBvc2l0
ZSBwb3NpdGlvbiBmb3IgcmVzb2x1dGlvbiAoZS5nLiBncmlkLXJvdzogYXV0byAvIDEpLgogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5oCmluZGV4IDYwOGM5NGU1ZTg2YWRjOTU5NzFlNzlmNGFlYTBkZWE2M2M5YmFhNWUuLjdlNTg3
OGVkMjAzNWU1N2YxNTI4OWQxYmEzMWE4OTQyNzBlYWE3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuaApAQCAtMTE3LDcgKzExNywxMyBAQCBwcml2YXRlOgogICAgIEdyaWRD
b29yZGluYXRlIGNhY2hlZEdyaWRDb29yZGluYXRlKGNvbnN0IFJlbmRlckJveCopIGNvbnN0Owog
CiAgICAgUGFzc093blB0cjxHcmlkU3Bhbj4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUo
Y29uc3QgUmVuZGVyQm94KiwgVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwotICAgIHNpemVf
dCByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYpIGNvbnN0
OworICAgIGVudW0gR3JpZFBvc2l0aW9uU2lkZSB7CisgICAgICAgIFN0YXJ0U2lkZSwKKyAgICAg
ICAgRW5kU2lkZSwKKyAgICAgICAgQmVmb3JlU2lkZSwKKyAgICAgICAgQWZ0ZXJTaWRlCisgICAg
fTsKKyAgICBzaXplX3QgcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlkUG9z
aXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKSBjb25zdDsKIAogI2lmbmRlZiBOREVCVUcKICAgICBi
b29sIHRyYWNrc0FyZVdpZGVyVGhhbk1pblRyYWNrQnJlYWR0aChUcmFja1NpemluZ0RpcmVjdGlv
biwgY29uc3QgVmVjdG9yPEdyaWRUcmFjaz4mKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MTI0OGYxZGZiZWVjNjRhNWI1
Y2FhOWVkMDM5YzBiYzQxYzE2MjFjLi4xODgxN2U2N2QyNmFiMWU3N2ZhNDUzYzllNjNmYjE0YmQz
OWI3YjVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDMtMDggIEp1bGllbiBDaGFmZnJh
aXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
UmVzb2x2ZSBncmlkLXtlbmR8YWZ0ZXJ9IGludGVnZXIgYWdhaW5zdCB0aGUgZW5kfGFmdGVyIGVk
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTg4
NQorCisgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKKyAgICAgICAgKiBmYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgTW9hciBwYXNzaW5nIHRlc3RzIQorCiAyMDEzLTAzLTA4ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFmdGVyIHNlbmRpbmcgbWVzc2FnZSwgTWFpbCBj
aGFuZ2VzIGZvcm1hdHRpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQt
bGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi1leHBlY3Rl
ZC50eHQKaW5kZXggY2E4NGJkZmM1NGFiYmIxY2Y1NDNhYzQ4MWM4YzcxODg1NzFjNGFiYi4uMjI5
NTY1YjA3YzNkMWEzNWNjYjU0Y2U3YjE1NDBhZjUzYmM1MTcxYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRv
LWZsb3ctcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTM2LDU4ICszNiwxNiBAQCBYWFhYWCBY
WFhYWCBYWFhYWAogWFhYWFggWFhYWFggWFhYWFgKIFhYWFhYIFhYWFhYIFhYWFhYCiBYWFhYWCBY
WFhYWCBYWFhYWAotRkFJTDoKLUV4cGVjdGVkIDIwMCBmb3Igd2lkdGgsIGJ1dCBnb3QgNTAuIAot
RXhwZWN0ZWQgMjAwIGZvciBoZWlnaHQsIGJ1dCBnb3QgNTAuIAotRXhwZWN0ZWQgMzAwIGZvciBv
ZmZzZXRMZWZ0LCBidXQgZ290IDAuIAotRXhwZWN0ZWQgMzAwIGZvciBvZmZzZXRUb3AsIGJ1dCBn
b3QgMC4gCi0KLTxkaXYgY2xhc3M9ImdyaWQgYmlnR3JpZCBncmlkQXV0b0Zsb3dDb2x1bW4iPgot
ICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b0ZpcnN0Um93QXV0b0ZpcnN0
Q29sdW1uIiBkYXRhLW9mZnNldC14PSIzMDAiIGRhdGEtb2Zmc2V0LXk9IjMwMCIgZGF0YS1leHBl
Y3RlZC13aWR0aD0iMjAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAwIj5YWFhYWCBYWFhYWCBY
WFhYWDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgZmlyc3RBdXRv
Um93U2Vjb25kQXV0b0NvbHVtbiIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEg
c2Vjb25kUm93QXV0b0NvbHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iNTAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEg
Zmlyc3RSb3dGaXJzdENvbHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIg
ZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFgg
WFhYWFggWFhYWFg8L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1
dG9Sb3dBdXRvQ29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIxNTAiIGRh
dGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTUwIj5YWFhYWCBY
WFhYWCBYWFhYWDwvZGl2PgotICAgIDwvZGl2PgorUEFTUwogWFhYWFggWFhYWFggWFhYWFgKIFhY
WFhYIFhYWFhYIFhYWFhYCiBYWFhYWCBYWFhYWCBYWFhYWAogWFhYWFggWFhYWFggWFhYWFgKIFhY
WFhYIFhYWFhYIFhYWFhYCi1GQUlMOgotRXhwZWN0ZWQgMjAwIGZvciB3aWR0aCwgYnV0IGdvdCA1
MC4gCi1FeHBlY3RlZCAyMDAgZm9yIGhlaWdodCwgYnV0IGdvdCA1MC4gCi1FeHBlY3RlZCAzMDAg
Zm9yIG9mZnNldExlZnQsIGJ1dCBnb3QgMC4gCi1FeHBlY3RlZCAzMDAgZm9yIG9mZnNldFRvcCwg
YnV0IGdvdCAwLiAKLQotPGRpdiBjbGFzcz0iZ3JpZCBiaWdHcmlkIGdyaWRBdXRvRmxvd1JvdyI+
Ci0gICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvRmlyc3RSb3dBdXRvRmly
c3RDb2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjMwMCIgZGF0YS1vZmZzZXQteT0iMzAwIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSIyMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAiPlhYWFhYIFhYWFhY
IFhYWFhYPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBmaXJzdEF1
dG9Sb3dTZWNvbmRBdXRvQ29sdW1uIiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0i
MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhY
WFhYIFhYWFhYIFhYWFhYPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJl
YSBzZWNvbmRSb3dBdXRvQ29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1
MCIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhY
WFhYIFhYWFhYIFhYWFhYPC9kaXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJl
YSBmaXJzdFJvd0ZpcnN0Q29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIw
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEg
YXV0b1Jvd0F1dG9Db2x1bW4iIGRhdGEtb2Zmc2V0LXg9IjE1MCIgZGF0YS1vZmZzZXQteT0iMCIg
ZGF0YS1leHBlY3RlZC13aWR0aD0iMTUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNTAiPlhYWFhY
IFhYWFhYIFhYWFhYPC9kaXY+Ci0gICAgPC9kaXY+Ci1YWFhYWCBYWFhYWCBYWFhYWAotWFhYWFgg
WFhYWFggWFhYWFgKLUZBSUw6Ci1FeHBlY3RlZCA1MCBmb3IgaGVpZ2h0LCBidXQgZ290IDMwLiAK
LUV4cGVjdGVkIDAgZm9yIG9mZnNldFRvcCwgYnV0IGdvdCA1MDAuIAotRXhwZWN0ZWQgNTAgZm9y
IHdpZHRoLCBidXQgZ290IDE3MC4gCi1FeHBlY3RlZCAwIGZvciBvZmZzZXRMZWZ0LCBidXQgZ290
IDUwMC4gCi0KLTxkaXYgY2xhc3M9ImdyaWQgYmlnR3JpZCBncmlkQXV0b0Zsb3dDb2x1bW4iPgot
ICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgb3ZlcmZsb3dpbmdSb3dGaXJzdENv
bHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13
aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rp
dj4KLSAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd092ZXJmbG93
aW5nQ29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1leHBl
Y3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhYWFhYIFhY
WFhYPC9kaXY+Ci0gICAgPC9kaXY+CitQQVNTCiBYWFhYWCBYWFhYWCBYWFhYWAogWFhYWFggWFhY
WFggWFhYWFgKLUZBSUw6Ci1FeHBlY3RlZCA1MCBmb3IgaGVpZ2h0LCBidXQgZ290IDMwLiAKLUV4
cGVjdGVkIDAgZm9yIG9mZnNldFRvcCwgYnV0IGdvdCA1MDAuIAotRXhwZWN0ZWQgNTAgZm9yIHdp
ZHRoLCBidXQgZ290IDE3MC4gCi1FeHBlY3RlZCAwIGZvciBvZmZzZXRMZWZ0LCBidXQgZ290IDUw
MC4gCi0KLTxkaXYgY2xhc3M9ImdyaWQgYmlnR3JpZCBncmlkQXV0b0Zsb3dSb3ciPgotICAgICAg
ICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgb3ZlcmZsb3dpbmdSb3dGaXJzdENvbHVtbiIg
ZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0aD0i
NTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KLSAg
ICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd092ZXJmbG93aW5nQ29s
dW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSI1MCIgZGF0YS1leHBlY3RlZC13
aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhYWFhYIFhYWFhYPC9k
aXY+Ci0gICAgPC9kaXY+CitQQVNTCitYWFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhYWFggWFhY
WFgKK1BBU1MK
</data>

          </attachment>
      

    </bug>

</bugzilla>