<?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>176783</bug_id>
          
          <creation_ts>2017-09-12 07:27:46 -0700</creation_ts>
          <short_desc>[css-grid] Stretching auto tracks should be done as part of the track sizing algorithm</short_desc>
          <delta_ts>2017-09-27 12:33:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.chromium.org/p/chromium/issues/detail?id=763386</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BlinkMergeCandidate, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>60731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jfernandez</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1347891</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2017-09-12 07:27:46 -0700</bug_when>
    <thetext>CSS WG has agreed to modify the track sizing algorithm to include a new step: https://drafts.csswg.org/css-grid/#algo-stretch

We used to do the stretch of the &quot;auto&quot; tracks at the end of the track sizing algorithm, however the change integrates this into the algorithm itself as the last step.

See: https://github.com/w3c/csswg-drafts/issues/1150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347894</commentid>
    <comment_count>1</comment_count>
      <attachid>320547</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2017-09-12 07:37:10 -0700</bug_when>
    <thetext>Created attachment 320547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347927</commentid>
    <comment_count>2</comment_count>
      <attachid>320547</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-09-12 09:32:13 -0700</bug_when>
    <thetext>Comment on attachment 320547
Patch

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

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1077
&gt; +    std::optional&lt;LayoutUnit&gt; currentFreeSpace = freeSpace(m_direction);

auto currentFreeSpace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347970</commentid>
    <comment_count>3</comment_count>
      <attachid>320557</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2017-09-12 11:49:04 -0700</bug_when>
    <thetext>Created attachment 320557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347971</commentid>
    <comment_count>4</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2017-09-12 11:49:43 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Sergio Villar Senin from comment #2)
&gt; Comment on attachment 320547 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=320547&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1077
&gt; &gt; +    std::optional&lt;LayoutUnit&gt; currentFreeSpace = freeSpace(m_direction);
&gt; 
&gt; auto currentFreeSpace

Ack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347978</commentid>
    <comment_count>5</comment_count>
      <attachid>320557</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-12 12:19:51 -0700</bug_when>
    <thetext>Comment on attachment 320557
Patch

Clearing flags on attachment: 320557

Committed r221931: &lt;http://trac.webkit.org/changeset/221931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347979</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-12 12:19:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353467</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:33:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693473&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320547</attachid>
            <date>2017-09-12 07:37:10 -0700</date>
            <delta_ts>2017-09-12 11:49:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176783-20170912163709.patch</filename>
            <type>text/plain</type>
            <size>14374</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxOTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODE1OTVlNWY2NjUwOWEy
MGNlNWViZDFjOGZhZTQ4YmEzZjc2NjljOC4uOTM2ZWY3NWM3NjFjOTFmYzYxNzI3NWQ5OTFkNDM0
M2ZiYWU3NzhmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTA5LTEyICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtZ3Jp
ZF0gU3RyZXRjaGluZyBhdXRvIHRyYWNrcyBzaG91bGQgYmUgZG9uZSBhcyBwYXJ0IG9mIHRoZSB0
cmFjayBzaXppbmcgYWxnb3JpdGhtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzY3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDU1MgV0cgaGFzIGFncmVlZCB0byBtb2RpZnkgdGhlIHRyYWNrIHNpemlu
ZyBhbGdvcml0aG0gdG8gaW5jbHVkZQorICAgICAgICBhIG5ldyBzdGVwOiBodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3NzLWdyaWQvI2FsZ28tc3RyZXRjaAorICAgICAgICBXZSB1c2VkIHRvIGRv
IHRoZSBzdHJldGNoIG9mIHRoZSAiYXV0byIgdHJhY2tzIGF0IHRoZSBlbmQgb2YKKyAgICAgICAg
dGhlIHRyYWNrIHNpemluZyBhbGdvcml0aG0sIGhvd2V2ZXIgdGhpcyBjaGFuZ2UgaW50ZWdyYXRl
cyBpdAorICAgICAgICBpbnRvIHRoZSBhbGdvcml0aG0gaXRzZWxmIGFzIHRoZSBsYXN0IHN0ZXAu
CisgICAgICAgIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVz
LzExNTAKKworICAgICAgICBUaGUgcGF0Y2ggbW92ZXMgdGhlIG1ldGhvZAorICAgICAgICBSZW5k
ZXJHcmlkOjphcHBseVN0cmV0Y2hBbGlnbm1lbnRUb1RyYWNrc0lmTmVlZGVkKCkgdG8KKyAgICAg
ICAgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpzdHJldGNoQXV0b1RyYWNrcygpLgorICAgICAg
ICBBbmQgdGhlbiBtb2RpZmllcyB0aGUgZ3JpZCB0cmFjayBzaXppbmcgYWxnb3JpdGhtIHRvIGV4
ZWN1dGUKKyAgICAgICAgdGhlIG5ldyBzdGVwLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXNlcyB0
aGUgV1BUIHRlc3QgdXBkYXRlZCB0byBjaGVjayB0aGUgbmV3IGJlaGF2aW9yLgorCisgICAgICAg
ICogcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmluaXRpYWxpemVUcmFja1NpemVzKTogSW5p
dGlhbGl6ZQorICAgICAgICB0aGUgbGlzdCBvZiBhdXRvIHRyYWNrcy4KKyAgICAgICAgKFdlYkNv
cmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6c3RyZXRjaEZsZXhpYmxlVHJhY2tzKTogQWRk
CisgICAgICAgIGVhcmx5IHJldHVybiBpZiB0aGVyZSBhcmUgbm90IGZsZXhpYmxlIHRyYWNrcy4K
KyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6c3RyZXRjaEF1dG9U
cmFja3MpOiBDb2RlIG1vdmVkIGZyb20KKyAgICAgICAgUmVuZGVyR3JpZDo6YXBwbHlTdHJldGNo
QWxpZ25tZW50VG9UcmFja3NJZk5lZWRlZCgpLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtOjpzZXR1cCk6IFJlc2V0IGxpc3Qgb2YgYXV0byB0cmFja3MuCisgICAg
ICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnJ1bik6IEFkZCBuZXcgc3Rl
cAorICAgICAgICBzdHJldGNoQXV0b1RyYWNrcygpLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRy
YWNrU2l6aW5nQWxnb3JpdGhtOjpyZXNldCk6IFJlc2V0IGF1dG8gdHJhY2tzLgorICAgICAgICAq
IHJlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaDogQWRkIG1fYXV0b1NpemVkVHJh
Y2tzSW5kZXguCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0QmxvY2spOiBBdm9pZCBhcHBseWluZyBzdHJldGNo
IGhlcmUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb250ZW50QWxpZ25tZW50Tm9y
bWFsQmVoYXZpb3JHcmlkKTogTWFrZSBwdWJsaWMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjphcHBseVN0cmV0Y2hBbGlnbm1lbnRUb1RyYWNrc0lmTmVlZGVkKTogTW92ZWQgdG8KKyAg
ICAgICAgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpzdHJldGNoQXV0b1RyYWNrcygpLgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisKIDIwMTctMDktMTIgIE1hbnVlbCBSZWdv
IENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlkXSBVc2Ug
dHJhbnNmZXJyZWQgc2l6ZSBvdmVyIGNvbnRlbnQgc2l6ZSBmb3IgYXV0b21hdGljIG1pbmltdW0g
c2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1Npemlu
Z0FsZ29yaXRobS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtLmNwcAppbmRleCBkZWQ2YjFiODM4M2NjNGM5ZTZlOTM4YTEwM2M0YTRlZTRkMGFk
MDMyLi40M2E0OTc0OWUwNTRhNTJhNGMyY2Q1M2JlNjZmYTRkNTc2OWZkZjQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNw
cApAQCAtOTcwLDYgKzk3MCw3IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjppbml0
aWFsaXplVHJhY2tTaXplcygpCiB7CiAgICAgQVNTRVJUKG1fY29udGVudFNpemVkVHJhY2tzSW5k
ZXguaXNFbXB0eSgpKTsKICAgICBBU1NFUlQobV9mbGV4aWJsZVNpemVkVHJhY2tzSW5kZXguaXNF
bXB0eSgpKTsKKyAgICBBU1NFUlQobV9hdXRvU2l6ZWRUcmFja3NJbmRleC5pc0VtcHR5KCkpOwog
CiAgICAgVmVjdG9yPEdyaWRUcmFjaz4mIGFsbFRyYWNrcyA9IHRyYWNrcyhtX2RpcmVjdGlvbik7
CiAgICAgY29uc3QgYm9vbCBoYXNEZWZpbml0ZUZyZWVTcGFjZSA9ICEhYXZhaWxhYmxlU3BhY2Uo
KTsKQEAgLTk5Miw2ICs5OTMsOCBAQCB2b2lkIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6aW5p
dGlhbGl6ZVRyYWNrU2l6ZXMoKQogICAgICAgICAgICAgbV9jb250ZW50U2l6ZWRUcmFja3NJbmRl
eC5hcHBlbmQoaSk7CiAgICAgICAgIGlmICh0cmFja1NpemUubWF4VHJhY2tCcmVhZHRoKCkuaXNG
bGV4KCkpCiAgICAgICAgICAgICBtX2ZsZXhpYmxlU2l6ZWRUcmFja3NJbmRleC5hcHBlbmQoaSk7
CisgICAgICAgIGlmICh0cmFja1NpemUuaGFzQXV0b01heFRyYWNrQnJlYWR0aCgpKQorICAgICAg
ICAgICAgbV9hdXRvU2l6ZWRUcmFja3NJbmRleC5hcHBlbmQoaSk7CiAgICAgfQogfQogCkBAIC0x
MDM5LDYgKzEwNDIsOSBAQCB2b2lkIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6cmVzb2x2ZUlu
dHJpbnNpY1RyYWNrU2l6ZXMoKQogCiB2b2lkIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6c3Ry
ZXRjaEZsZXhpYmxlVHJhY2tzKHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gZnJlZVNwYWNlKQog
eworICAgIGlmIChtX2ZsZXhpYmxlU2l6ZWRUcmFja3NJbmRleC5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKwogICAgIGRvdWJsZSBmbGV4RnJhY3Rpb24gPSBtX3N0cmF0ZWd5LT5maW5kVXNl
ZEZsZXhGcmFjdGlvbihtX2ZsZXhpYmxlU2l6ZWRUcmFja3NJbmRleCwgbV9kaXJlY3Rpb24sIGZy
ZWVTcGFjZSk7CiAKICAgICBMYXlvdXRVbml0IHRvdGFsR3Jvd3RoOwpAQCAtMTA2Myw2ICsxMDY5
LDI4IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpzdHJldGNoRmxleGlibGVUcmFj
a3Moc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmCiAgICAgbV9tYXhDb250ZW50U2l6ZSArPSB0
b3RhbEdyb3d0aDsKIH0KIAordm9pZCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnN0cmV0Y2hB
dXRvVHJhY2tzKCkKK3sKKyAgICBpZiAobV9hdXRvU2l6ZWRUcmFja3NJbmRleC5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gY3VycmVu
dEZyZWVTcGFjZSA9IGZyZWVTcGFjZShtX2RpcmVjdGlvbik7CisgICAgaWYgKCFjdXJyZW50RnJl
ZVNwYWNlCisgICAgICAgIHx8IGN1cnJlbnRGcmVlU3BhY2UudmFsdWUoKSA8PSAwCisgICAgICAg
IHx8IChtX2RpcmVjdGlvbiA9PSBGb3JDb2x1bW5zICYmIG1fcmVuZGVyR3JpZC0+c3R5bGUoKS5y
ZXNvbHZlZEp1c3RpZnlDb250ZW50RGlzdHJpYnV0aW9uKG1fcmVuZGVyR3JpZC0+Y29udGVudEFs
aWdubWVudE5vcm1hbEJlaGF2aW9yR3JpZCgpKSAhPSBDb250ZW50RGlzdHJpYnV0aW9uU3RyZXRj
aCkKKyAgICAgICAgfHwgKG1fZGlyZWN0aW9uID09IEZvclJvd3MgJiYgbV9yZW5kZXJHcmlkLT5z
dHlsZSgpLnJlc29sdmVkQWxpZ25Db250ZW50RGlzdHJpYnV0aW9uKG1fcmVuZGVyR3JpZC0+Y29u
dGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yR3JpZCgpKSAhPSBDb250ZW50RGlzdHJpYnV0aW9u
U3RyZXRjaCkpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxHcmlkVHJhY2s+JiBhbGxU
cmFja3MgPSB0cmFja3MobV9kaXJlY3Rpb24pOworICAgIHVuc2lnbmVkIG51bWJlck9mQXV0b1Np
emVkVHJhY2tzID0gbV9hdXRvU2l6ZWRUcmFja3NJbmRleC5zaXplKCk7CisgICAgTGF5b3V0VW5p
dCBzaXplVG9JbmNyZWFzZSA9IGN1cnJlbnRGcmVlU3BhY2UudmFsdWUoKSAvIG51bWJlck9mQXV0
b1NpemVkVHJhY2tzOworICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2tJbmRleCA6IG1fYXV0b1Np
emVkVHJhY2tzSW5kZXgpIHsKKyAgICAgICAgYXV0byYgdHJhY2sgPSBhbGxUcmFja3NbdHJhY2tJ
bmRleF07CisgICAgICAgIHRyYWNrLnNldEJhc2VTaXplKHRyYWNrLmJhc2VTaXplKCkgKyBzaXpl
VG9JbmNyZWFzZSk7CisgICAgfQorICAgIHNldEZyZWVTcGFjZShtX2RpcmVjdGlvbiwgTGF5b3V0
VW5pdCgpKTsKK30KKwogdm9pZCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmFkdmFuY2VOZXh0
U3RhdGUoKQogewogICAgIHN3aXRjaCAobV9zaXppbmdTdGF0ZSkgewpAQCAtMTExNyw2ICsxMTQ1
LDcgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnNldHVwKEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiBkaXJlY3Rpb24sIHVuc2lnbmUKIAogICAgIG1fY29udGVudFNpemVkVHJhY2tz
SW5kZXguc2hyaW5rKDApOwogICAgIG1fZmxleGlibGVTaXplZFRyYWNrc0luZGV4LnNocmluaygw
KTsKKyAgICBtX2F1dG9TaXplZFRyYWNrc0luZGV4LnNocmluaygwKTsKIAogICAgIHNldEZyZWVT
cGFjZShkaXJlY3Rpb24sIGZyZWVTcGFjZSk7CiAgICAgdHJhY2tzKGRpcmVjdGlvbikucmVzaXpl
KG51bVRyYWNrcyk7CkBAIC0xMTUwLDExICsxMTc5LDExIEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtOjpydW4oKQogICAgIC8vIFN0ZXAgMy4KICAgICBtX3N0cmF0ZWd5LT5tYXhpbWl6
ZVRyYWNrcyh0cmFja3MobV9kaXJlY3Rpb24pLCBtX2RpcmVjdGlvbiA9PSBGb3JDb2x1bW5zID8g
bV9mcmVlU3BhY2VDb2x1bW5zIDogbV9mcmVlU3BhY2VSb3dzKTsKIAotICAgIGlmIChtX2ZsZXhp
YmxlU2l6ZWRUcmFja3NJbmRleC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8v
IFN0ZXAgNC4KICAgICBzdHJldGNoRmxleGlibGVUcmFja3MoaW5pdGlhbEZyZWVTcGFjZSk7CisK
KyAgICAvLyBTdGVwIDUuCisgICAgc3RyZXRjaEF1dG9UcmFja3MoKTsKIH0KIAogdm9pZCBHcmlk
VHJhY2tTaXppbmdBbGdvcml0aG06OnJlc2V0KCkKQEAgLTExNjQsNiArMTE5Myw3IEBAIHZvaWQg
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpyZXNldCgpCiAgICAgbV9yb3dzLnNocmluaygwKTsK
ICAgICBtX2NvbnRlbnRTaXplZFRyYWNrc0luZGV4LnNocmluaygwKTsKICAgICBtX2ZsZXhpYmxl
U2l6ZWRUcmFja3NJbmRleC5zaHJpbmsoMCk7CisgICAgbV9hdXRvU2l6ZWRUcmFja3NJbmRleC5z
aHJpbmsoMCk7CiAgICAgc2V0QXZhaWxhYmxlU3BhY2UoRm9yUm93cywgc3RkOjpudWxsb3B0KTsK
ICAgICBzZXRBdmFpbGFibGVTcGFjZShGb3JDb2x1bW5zLCBzdGQ6Om51bGxvcHQpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRo
bS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5o
CmluZGV4IGRjZTYyN2Q5MzI2ODBmYzAzMTFhYTE4NWU1ZmZiMzgxYmNmNjc4NmIuLjViZmMxMGQ2
ZGQ3Njg1YmU1NjljYjUwYTViODNmOWZkZWYzOGY3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmgKQEAgLTE1Myw2ICsxNTMs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZVRyYWNrU2l6ZXMoKTsKICAgICB2b2lk
IHJlc29sdmVJbnRyaW5zaWNUcmFja1NpemVzKCk7CiAgICAgdm9pZCBzdHJldGNoRmxleGlibGVU
cmFja3Moc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmcmVlU3BhY2UpOworICAgIHZvaWQgc3Ry
ZXRjaEF1dG9UcmFja3MoKTsKIAogICAgIC8vIFN0YXRlIG1hY2hpbmUuCiAgICAgdm9pZCBhZHZh
bmNlTmV4dFN0YXRlKCk7CkBAIC0xNzEsNiArMTcyLDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8
R3JpZFRyYWNrPiBtX3Jvd3M7CiAgICAgVmVjdG9yPHVuc2lnbmVkPiBtX2NvbnRlbnRTaXplZFRy
YWNrc0luZGV4OwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gbV9mbGV4aWJsZVNpemVkVHJhY2tzSW5k
ZXg7CisgICAgVmVjdG9yPHVuc2lnbmVkPiBtX2F1dG9TaXplZFRyYWNrc0luZGV4OwogCiAgICAg
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIG1fZGlyZWN0aW9uOwogICAgIFNpemluZ09wZXJhdGlv
biBtX3NpemluZ09wZXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cAppbmRleCA3NzNmNTIyZDlhMGI5MTBkMzJhMzQ0Njk1NTFlNjg1OTllYzM2NTk2Li42Y2ZjMzdi
ZDQ1NjZmM2JkMWM4ODNlZGU0YzNhYjI0MWU5ODFkYTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuY3BwCkBAIC0zMDUsOSArMzA1LDYgQEAgdm9pZCBSZW5kZXJHcmlkOjps
YXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgICAgIHNl
dExvZ2ljYWxIZWlnaHQoc3RkOjptYXgobG9naWNhbEhlaWdodCgpLCBtaW5IZWlnaHRGb3JFbXB0
eUxpbmUpKTsKICAgICB9CiAKLSAgICBhcHBseVN0cmV0Y2hBbGlnbm1lbnRUb1RyYWNrc0lmTmVl
ZGVkKEZvckNvbHVtbnMpOwotICAgIGFwcGx5U3RyZXRjaEFsaWdubWVudFRvVHJhY2tzSWZOZWVk
ZWQoRm9yUm93cyk7Ci0KICAgICBsYXlvdXRHcmlkSXRlbXMoKTsKICAgICBtX3RyYWNrU2l6aW5n
QWxnb3JpdGhtLnJlc2V0KCk7CiAKQEAgLTg4MCw0MiArODc3LDEyIEBAIFZlY3RvcjxMYXlvdXRV
bml0PiBSZW5kZXJHcmlkOjp0cmFja1NpemVzRm9yQ29tcHV0ZWRTdHlsZShHcmlkVHJhY2tTaXpp
bmdEaXJlY3RpCiAgICAgcmV0dXJuIHRyYWNrczsKIH0KIAotc3RhdGljIGNvbnN0IFN0eWxlQ29u
dGVudEFsaWdubWVudERhdGEmIGNvbnRlbnRBbGlnbm1lbnROb3JtYWxCZWhhdmlvckdyaWQoKQor
Y29uc3QgU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YSYgUmVuZGVyR3JpZDo6Y29udGVudEFsaWdu
bWVudE5vcm1hbEJlaGF2aW9yR3JpZCgpCiB7CiAgICAgc3RhdGljIGNvbnN0IFN0eWxlQ29udGVu
dEFsaWdubWVudERhdGEgbm9ybWFsQmVoYXZpb3IgPSB7Q29udGVudFBvc2l0aW9uTm9ybWFsLCBD
b250ZW50RGlzdHJpYnV0aW9uU3RyZXRjaH07CiAgICAgcmV0dXJuIG5vcm1hbEJlaGF2aW9yOwog
fQogCi12b2lkIFJlbmRlckdyaWQ6OmFwcGx5U3RyZXRjaEFsaWdubWVudFRvVHJhY2tzSWZOZWVk
ZWQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKLXsKLSAgICBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGZyZWVTcGFjZSA9IG1fdHJhY2tTaXppbmdBbGdvcml0aG0uZnJlZVNw
YWNlKGRpcmVjdGlvbik7Ci0gICAgaWYgKCFmcmVlU3BhY2UKLSAgICAgICAgfHwgZnJlZVNwYWNl
LnZhbHVlKCkgPD0gMAotICAgICAgICB8fCAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMgJiYgc3R5
bGUoKS5yZXNvbHZlZEp1c3RpZnlDb250ZW50RGlzdHJpYnV0aW9uKGNvbnRlbnRBbGlnbm1lbnRO
b3JtYWxCZWhhdmlvckdyaWQoKSkgIT0gQ29udGVudERpc3RyaWJ1dGlvblN0cmV0Y2gpCi0gICAg
ICAgIHx8IChkaXJlY3Rpb24gPT0gRm9yUm93cyAmJiBzdHlsZSgpLnJlc29sdmVkQWxpZ25Db250
ZW50RGlzdHJpYnV0aW9uKGNvbnRlbnRBbGlnbm1lbnROb3JtYWxCZWhhdmlvckdyaWQoKSkgIT0g
Q29udGVudERpc3RyaWJ1dGlvblN0cmV0Y2gpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBT
cGVjIGRlZmluZXMgYXV0by1zaXplZCB0cmFja3MgYXMgdGhlIG9uZXMgd2l0aCBhbiAnYXV0bycg
bWF4LXNpemluZyBmdW5jdGlvbi4KLSAgICBWZWN0b3I8R3JpZFRyYWNrPiYgYWxsVHJhY2tzID0g
bV90cmFja1NpemluZ0FsZ29yaXRobS50cmFja3MoZGlyZWN0aW9uKTsKLSAgICBWZWN0b3I8dW5z
aWduZWQ+IGF1dG9TaXplZFRyYWNrc0luZGV4OwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBhbGxUcmFja3Muc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYg
dHJhY2tTaXplID0gbV90cmFja1NpemluZ0FsZ29yaXRobS5ncmlkVHJhY2tTaXplKGRpcmVjdGlv
biwgaSk7Ci0gICAgICAgIGlmICh0cmFja1NpemUuaGFzQXV0b01heFRyYWNrQnJlYWR0aCgpKQot
ICAgICAgICAgICAgYXV0b1NpemVkVHJhY2tzSW5kZXguYXBwZW5kKGkpOwotICAgIH0KLQotICAg
IHVuc2lnbmVkIG51bWJlck9mQXV0b1NpemVkVHJhY2tzID0gYXV0b1NpemVkVHJhY2tzSW5kZXgu
c2l6ZSgpOwotICAgIGlmIChudW1iZXJPZkF1dG9TaXplZFRyYWNrcyA8IDEpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIExheW91dFVuaXQgc2l6ZVRvSW5jcmVhc2UgPSBmcmVlU3BhY2UudmFsdWUo
KSAvIG51bWJlck9mQXV0b1NpemVkVHJhY2tzOwotICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2tJ
bmRleCA6IGF1dG9TaXplZFRyYWNrc0luZGV4KSB7Ci0gICAgICAgIGF1dG8mIHRyYWNrID0gYWxs
VHJhY2tzW3RyYWNrSW5kZXhdOwotICAgICAgICB0cmFjay5zZXRCYXNlU2l6ZSh0cmFjay5iYXNl
U2l6ZSgpICsgc2l6ZVRvSW5jcmVhc2UpOwotICAgIH0KLSAgICBtX3RyYWNrU2l6aW5nQWxnb3Jp
dGhtLnNldEZyZWVTcGFjZShkaXJlY3Rpb24sIExheW91dFVuaXQoKSk7Ci19Ci0KIHZvaWQgUmVu
ZGVyR3JpZDo6bGF5b3V0R3JpZEl0ZW1zKCkKIHsKICAgICBwb3B1bGF0ZUdyaWRQb3NpdGlvbnNG
b3JEaXJlY3Rpb24oRm9yQ29sdW1ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
aAppbmRleCBiZWE5NzI4YjJhZGIzMGVlNDI1ZGUzYTExYTcxMmEzMjM0MTg1ZGMwLi40OGI0NGNm
YzlkOWQ1ZDgzYzVhYmJkMTNiNGNjNTIyNmM0YzRlMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmgKQEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNPcnRo
b2dvbmFsQ2hpbGQoY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBndXR0
ZXJzU2l6ZShjb25zdCBHcmlkJiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCB1bnNpZ25lZCBz
dGFydExpbmUsIHVuc2lnbmVkIHNwYW4sIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxh
YmxlU2l6ZSkgY29uc3Q7CiAKKyAgICBzdGF0aWMgY29uc3QgU3R5bGVDb250ZW50QWxpZ25tZW50
RGF0YSYgY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yR3JpZCgpOworCiBwcm90ZWN0ZWQ6
CiAgICAgSXRlbVBvc2l0aW9uIHNlbGZBbGlnbm1lbnROb3JtYWxCZWhhdmlvcihjb25zdCBSZW5k
ZXJCb3gqIGNoaWxkID0gbnVsbHB0cikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CkBAIC0xMzIsOCAr
MTM0LDYgQEAgcHJpdmF0ZToKIAogICAgIExheW91dFVuaXQgZ3JpZEFyZWFCcmVhZHRoRm9yQ2hp
bGRJbmNsdWRpbmdBbGlnbm1lbnRPZmZzZXRzKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbikgY29uc3Q7CiAKLSAgICB2b2lkIGFwcGx5U3RyZXRjaEFsaWdubWVudFRv
VHJhY2tzSWZOZWVkZWQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKLQogICAgIHZvaWQgcGFp
bnRDaGlsZHJlbihQYWludEluZm8mIGZvclNlbGYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpIG92ZXJyaWRlOwog
ICAgIExheW91dFVuaXQgbWFyZ2luTG9naWNhbFNpemVGb3JDaGlsZChHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24sIGNvbnN0IFJlbmRlckJveCYpIGNvbnN0OwogICAgIExheW91dFVuaXQgY29tcHV0
ZU1hcmdpbkxvZ2ljYWxTaXplRm9yQ2hpbGQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25z
dCBSZW5kZXJCb3gmKSBjb25zdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDU5
MzUwNzFiZTkxMTdmNTQ0YTczYWQ5NjYxNzA1MjdlYjU5MzA5N2YuLjQ1YmEwZDA1OWQ1ODdhNWYy
YzAwMmNiYjdhMDIzOGI0OTU1MGRhZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDE3LTA5LTEyICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVn
b0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtZ3JpZF0gU3RyZXRjaGluZyBhdXRvIHRyYWNr
cyBzaG91bGQgYmUgZG9uZSBhcyBwYXJ0IG9mIHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY3ODMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBvcnQgY2hh
bmdlcyBvbiB0aGUgdGVzdCByZWxhdGVkIHRvIHRoZSBuZXcgYmVoYXZpb3IuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkLTEvZ3JpZC1pdGVtcy9ncmlkLW1pbmlt
dW0tc2l6ZS1ncmlkLWl0ZW1zLTAyMS5odG1sOgorCiAyMDE3LTA5LTEyICBNYW51ZWwgUmVnbyBD
YXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZ3JpZF0gVXNlIHRy
YW5zZmVycmVkIHNpemUgb3ZlciBjb250ZW50IHNpemUgZm9yIGF1dG9tYXRpYyBtaW5pbXVtIHNp
emUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1ncmlkLTEvZ3JpZC1pdGVtcy9ncmlkLW1pbmltdW0tc2l6ZS1ncmlkLWl0ZW1z
LTAyMS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWdyaWQtMS9ncmlkLWl0ZW1zL2dyaWQtbWluaW11bS1zaXplLWdyaWQtaXRlbXMtMDIx
Lmh0bWwKaW5kZXggNmQ3MjYzZDM1MTU1ZmRjMjZkMmY2NzI1ZjExNWJiYWMxYWUzMGViYS4uNjEx
OGVkZDU4NTQ4ZTBiMjEyYTM5YmEyYmEwMjhhMTUxNzk2ZDk5MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQtMS9ncmlk
LWl0ZW1zL2dyaWQtbWluaW11bS1zaXplLWdyaWQtaXRlbXMtMDIxLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQtMS9ncmlk
LWl0ZW1zL2dyaWQtbWluaW11bS1zaXplLWdyaWQtaXRlbXMtMDIxLmh0bWwKQEAgLTY4LDE0ICs2
OCwxNCBAQAogICBmdW5jdGlvbiBydW5UZXN0cygpIHsKICAgICBjaGVja0dyaWRTaXplVHJhY2tz
QW5kSW1hZ2VTaXplKCJncmlkLTEiLCAiaW1nLTEiLCAiMjAwcHgiLCAiMjAwcHgiLCAiMjAwcHgi
LCAiMjAwcHgiLCAiMjAwcHgiLCAiMjAwcHgiKTsKICAgICBjaGVja0dyaWRTaXplVHJhY2tzQW5k
SW1hZ2VTaXplKCJncmlkLTIiLCAiaW1nLTIiLCAiMTBweCIsICIxMHB4IiwgIjIwMHB4IiwgIjIw
MHB4IiwgIjIwMHB4IiwgIjIwMHB4Iik7Ci0gICAgY2hlY2tHcmlkU2l6ZVRyYWNrc0FuZEltYWdl
U2l6ZSgiZ3JpZC0zIiwgImltZy0zIiwgIjIwMHB4IiwgIjUwcHgiLCAiMjAwcHgiLCAiNTBweCIs
ICIyMDBweCIsICIyMDBweCIpOwotICAgIGNoZWNrR3JpZFNpemVUcmFja3NBbmRJbWFnZVNpemUo
ImdyaWQtNCIsICJpbWctNCIsICIyMDBweCIsICIxMHB4IiwgIjIwMHB4IiwgIjUwcHgiLCAiMjAw
cHgiLCAiMjAwcHgiKTsKKyAgICBjaGVja0dyaWRTaXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlk
LTMiLCAiaW1nLTMiLCAiMjAwcHgiLCAiMjAwcHgiLCAiMjAwcHgiLCAiMjAwcHgiLCAiMjAwcHgi
LCAiMjAwcHgiKTsKKyAgICBjaGVja0dyaWRTaXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlkLTQi
LCAiaW1nLTQiLCAiMjAwcHgiLCAiMTBweCIsICIyMDBweCIsICIyMDBweCIsICIyMDBweCIsICIy
MDBweCIpOwogICAgIGNoZWNrR3JpZFNpemVUcmFja3NBbmRJbWFnZVNpemUoImdyaWQtNSIsICJp
bWctNSIsICIyMDBweCIsICI1MHB4IiwgIjUwcHgiLCAiNTBweCIsICI1MHB4IiwgIjUwcHgiKTsK
ICAgICBjaGVja0dyaWRTaXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlkLTYiLCAiaW1nLTYiLCAi
MjAwcHgiLCAiMTBweCIsICI1MHB4IiwgIjUwcHgiLCAiNTBweCIsICI1MHB4Iik7CiAgICAgY2hl
Y2tHcmlkU2l6ZVRyYWNrc0FuZEltYWdlU2l6ZSgiZ3JpZC03IiwgImltZy03IiwgIjIwMHB4Iiwg
IjIyNXB4IiwgIjIwMHB4IiwgIjIwMHB4IDI1cHgiLCAiMjAwcHgiLCAiMjAwcHgiKTsKICAgICBj
aGVja0dyaWRTaXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlkLTgiLCAiaW1nLTgiLCAiMTBweCIs
ICIxMHB4IiwgIjIwMHB4IiwgIjIwMHB4IDI1cHgiLCAiMjAwcHgiLCAiMjAwcHgiKTsKLSAgICBj
aGVja0dyaWRTaXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlkLTkiLCAiaW1nLTkiLCAiMjAwcHgi
LCAiMTI1cHgiLCAiMjAwcHgiLCAiMTAwcHggMjVweCIsICIyMDBweCIsICIyMDBweCIpOwotICAg
IGNoZWNrR3JpZFNpemVUcmFja3NBbmRJbWFnZVNpemUoImdyaWQtMTAiLCAiaW1nLTEwIiwgIjIw
MHB4IiwgIjEwcHgiLCAiMjAwcHgiLCAiMTAwcHggMjVweCIsICIyMDBweCIsICIyMDBweCIpOwor
ICAgIGNoZWNrR3JpZFNpemVUcmFja3NBbmRJbWFnZVNpemUoImdyaWQtOSIsICJpbWctOSIsICIy
MDBweCIsICIyMjVweCIsICIyMDBweCIsICIyMDBweCAyNXB4IiwgIjIwMHB4IiwgIjIwMHB4Iik7
CisgICAgY2hlY2tHcmlkU2l6ZVRyYWNrc0FuZEltYWdlU2l6ZSgiZ3JpZC0xMCIsICJpbWctMTAi
LCAiMjAwcHgiLCAiMTBweCIsICIyMDBweCIsICIyMDBweCAyNXB4IiwgIjIwMHB4IiwgIjIwMHB4
Iik7CiAgICAgY2hlY2tHcmlkU2l6ZVRyYWNrc0FuZEltYWdlU2l6ZSgiZ3JpZC0xMSIsICJpbWct
MTEiLCAiMjAwcHgiLCAiMTI1cHgiLCAiMTAwcHgiLCAiMTAwcHggMjVweCIsICIxMDBweCIsICIx
MDBweCIpOwogICAgIGNoZWNrR3JpZFNpemVUcmFja3NBbmRJbWFnZVNpemUoImdyaWQtMTIiLCAi
aW1nLTEyIiwgIjIwMHB4IiwgIjEwcHgiLCAiMTAwcHgiLCAiMTAwcHggMjVweCIsICIxMDBweCIs
ICIxMDBweCIpOwogICAgIGNoZWNrR3JpZFNpemVUcmFja3NBbmRJbWFnZVNpemUoImdyaWQtMTMi
LCAiaW1nLTEzIiwgIjIwMHB4IiwgIjIwMHB4IiwgIjIwMHB4IiwgIjIwMHB4IiwgIjIwMHB4Iiwg
IjIwMHB4Iik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320557</attachid>
            <date>2017-09-12 11:49:04 -0700</date>
            <delta_ts>2017-09-12 12:19:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176783-20170912204902.patch</filename>
            <type>text/plain</type>
            <size>14363</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxOTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODE1OTVlNWY2NjUwOWEy
MGNlNWViZDFjOGZhZTQ4YmEzZjc2NjljOC4uZWM5NTVjNTQ2ODQ2YWY1MTYwZGM3MTgxOWI5ODM1
MGM2ZmE1OWJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTA5LTEyICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtZ3Jp
ZF0gU3RyZXRjaGluZyBhdXRvIHRyYWNrcyBzaG91bGQgYmUgZG9uZSBhcyBwYXJ0IG9mIHRoZSB0
cmFjayBzaXppbmcgYWxnb3JpdGhtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzY3ODMKKworICAgICAgICBSZXZpZXdlZCBieSBTZXJnaW8gVmlsbGFy
IFNlbmluLgorCisgICAgICAgIENTUyBXRyBoYXMgYWdyZWVkIHRvIG1vZGlmeSB0aGUgdHJhY2sg
c2l6aW5nIGFsZ29yaXRobSB0byBpbmNsdWRlCisgICAgICAgIGEgbmV3IHN0ZXA6IGh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC8jYWxnby1zdHJldGNoCisgICAgICAgIFdlIHVzZWQg
dG8gZG8gdGhlIHN0cmV0Y2ggb2YgdGhlICJhdXRvIiB0cmFja3MgYXQgdGhlIGVuZCBvZgorICAg
ICAgICB0aGUgdHJhY2sgc2l6aW5nIGFsZ29yaXRobSwgaG93ZXZlciB0aGlzIGNoYW5nZSBpbnRl
Z3JhdGVzIGl0CisgICAgICAgIGludG8gdGhlIGFsZ29yaXRobSBpdHNlbGYgYXMgdGhlIGxhc3Qg
c3RlcC4KKyAgICAgICAgU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9p
c3N1ZXMvMTE1MAorCisgICAgICAgIFRoZSBwYXRjaCBtb3ZlcyB0aGUgbWV0aG9kCisgICAgICAg
IFJlbmRlckdyaWQ6OmFwcGx5U3RyZXRjaEFsaWdubWVudFRvVHJhY2tzSWZOZWVkZWQoKSB0bwor
ICAgICAgICBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnN0cmV0Y2hBdXRvVHJhY2tzKCkuCisg
ICAgICAgIEFuZCB0aGVuIG1vZGlmaWVzIHRoZSBncmlkIHRyYWNrIHNpemluZyBhbGdvcml0aG0g
dG8gZXhlY3V0ZQorICAgICAgICB0aGUgbmV3IHN0ZXAuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1
c2VzIHRoZSBXUFQgdGVzdCB1cGRhdGVkIHRvIGNoZWNrIHRoZSBuZXcgYmVoYXZpb3IuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6aW5pdGlhbGl6ZVRyYWNrU2l6ZXMp
OiBJbml0aWFsaXplCisgICAgICAgIHRoZSBsaXN0IG9mIGF1dG8gdHJhY2tzLgorICAgICAgICAo
V2ViQ29yZTo6R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpzdHJldGNoRmxleGlibGVUcmFja3Mp
OiBBZGQKKyAgICAgICAgZWFybHkgcmV0dXJuIGlmIHRoZXJlIGFyZSBub3QgZmxleGlibGUgdHJh
Y2tzLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpzdHJldGNo
QXV0b1RyYWNrcyk6IENvZGUgbW92ZWQgZnJvbQorICAgICAgICBSZW5kZXJHcmlkOjphcHBseVN0
cmV0Y2hBbGlnbm1lbnRUb1RyYWNrc0lmTmVlZGVkKCkuCisgICAgICAgIChXZWJDb3JlOjpHcmlk
VHJhY2tTaXppbmdBbGdvcml0aG06OnNldHVwKTogUmVzZXQgbGlzdCBvZiBhdXRvIHRyYWNrcy4K
KyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6cnVuKTogQWRkIG5l
dyBzdGVwCisgICAgICAgIHN0cmV0Y2hBdXRvVHJhY2tzKCkuCisgICAgICAgIChXZWJDb3JlOjpH
cmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnJlc2V0KTogUmVzZXQgYXV0byB0cmFja3MuCisgICAg
ICAgICogcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oOiBBZGQgbV9hdXRvU2l6
ZWRUcmFja3NJbmRleC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRCbG9jayk6IEF2b2lkIGFwcGx5aW5nIHN0
cmV0Y2ggaGVyZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbnRlbnRBbGlnbm1l
bnROb3JtYWxCZWhhdmlvckdyaWQpOiBNYWtlIHB1YmxpYy4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmFwcGx5U3RyZXRjaEFsaWdubWVudFRvVHJhY2tzSWZOZWVkZWQpOiBNb3ZlZCB0
bworICAgICAgICBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnN0cmV0Y2hBdXRvVHJhY2tzKCku
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKwogMjAxNy0wOS0xMiAgTWFudWVs
IFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWdyaWRd
IFVzZSB0cmFuc2ZlcnJlZCBzaXplIG92ZXIgY29udGVudCBzaXplIGZvciBhdXRvbWF0aWMgbWlu
aW11bSBzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tT
aXppbmdBbGdvcml0aG0uY3BwCmluZGV4IGRlZDZiMWI4MzgzY2M0YzllNmU5MzhhMTAzYzRhNGVl
NGQwYWQwMzIuLjNhM2ViOTU4MTlmZTk3ZWRjMjllZmQzOWI2ODI4ZTg2Yzk5N2ExOTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0
aG0uY3BwCkBAIC05NzAsNiArOTcwLDcgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06
OmluaXRpYWxpemVUcmFja1NpemVzKCkKIHsKICAgICBBU1NFUlQobV9jb250ZW50U2l6ZWRUcmFj
a3NJbmRleC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChtX2ZsZXhpYmxlU2l6ZWRUcmFja3NJbmRl
eC5pc0VtcHR5KCkpOworICAgIEFTU0VSVChtX2F1dG9TaXplZFRyYWNrc0luZGV4LmlzRW1wdHko
KSk7CiAKICAgICBWZWN0b3I8R3JpZFRyYWNrPiYgYWxsVHJhY2tzID0gdHJhY2tzKG1fZGlyZWN0
aW9uKTsKICAgICBjb25zdCBib29sIGhhc0RlZmluaXRlRnJlZVNwYWNlID0gISFhdmFpbGFibGVT
cGFjZSgpOwpAQCAtOTkyLDYgKzk5Myw4IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGht
Ojppbml0aWFsaXplVHJhY2tTaXplcygpCiAgICAgICAgICAgICBtX2NvbnRlbnRTaXplZFRyYWNr
c0luZGV4LmFwcGVuZChpKTsKICAgICAgICAgaWYgKHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgo
KS5pc0ZsZXgoKSkKICAgICAgICAgICAgIG1fZmxleGlibGVTaXplZFRyYWNrc0luZGV4LmFwcGVu
ZChpKTsKKyAgICAgICAgaWYgKHRyYWNrU2l6ZS5oYXNBdXRvTWF4VHJhY2tCcmVhZHRoKCkpCisg
ICAgICAgICAgICBtX2F1dG9TaXplZFRyYWNrc0luZGV4LmFwcGVuZChpKTsKICAgICB9CiB9CiAK
QEAgLTEwMzksNiArMTA0Miw5IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpyZXNv
bHZlSW50cmluc2ljVHJhY2tTaXplcygpCiAKIHZvaWQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGht
OjpzdHJldGNoRmxleGlibGVUcmFja3Moc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmcmVlU3Bh
Y2UpCiB7CisgICAgaWYgKG1fZmxleGlibGVTaXplZFRyYWNrc0luZGV4LmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgZG91YmxlIGZsZXhGcmFjdGlvbiA9IG1fc3RyYXRlZ3ktPmZp
bmRVc2VkRmxleEZyYWN0aW9uKG1fZmxleGlibGVTaXplZFRyYWNrc0luZGV4LCBtX2RpcmVjdGlv
biwgZnJlZVNwYWNlKTsKIAogICAgIExheW91dFVuaXQgdG90YWxHcm93dGg7CkBAIC0xMDYzLDYg
KzEwNjksMjggQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnN0cmV0Y2hGbGV4aWJs
ZVRyYWNrcyhzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IGYKICAgICBtX21heENvbnRlbnRTaXpl
ICs9IHRvdGFsR3Jvd3RoOwogfQogCit2b2lkIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6c3Ry
ZXRjaEF1dG9UcmFja3MoKQoreworICAgIGlmIChtX2F1dG9TaXplZFRyYWNrc0luZGV4LmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBjdXJyZW50RnJlZVNwYWNlID0gZnJl
ZVNwYWNlKG1fZGlyZWN0aW9uKTsKKyAgICBpZiAoIWN1cnJlbnRGcmVlU3BhY2UKKyAgICAgICAg
fHwgY3VycmVudEZyZWVTcGFjZS52YWx1ZSgpIDw9IDAKKyAgICAgICAgfHwgKG1fZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMgJiYgbV9yZW5kZXJHcmlkLT5zdHlsZSgpLnJlc29sdmVkSnVzdGlmeUNv
bnRlbnREaXN0cmlidXRpb24obV9yZW5kZXJHcmlkLT5jb250ZW50QWxpZ25tZW50Tm9ybWFsQmVo
YXZpb3JHcmlkKCkpICE9IENvbnRlbnREaXN0cmlidXRpb25TdHJldGNoKQorICAgICAgICB8fCAo
bV9kaXJlY3Rpb24gPT0gRm9yUm93cyAmJiBtX3JlbmRlckdyaWQtPnN0eWxlKCkucmVzb2x2ZWRB
bGlnbkNvbnRlbnREaXN0cmlidXRpb24obV9yZW5kZXJHcmlkLT5jb250ZW50QWxpZ25tZW50Tm9y
bWFsQmVoYXZpb3JHcmlkKCkpICE9IENvbnRlbnREaXN0cmlidXRpb25TdHJldGNoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgVmVjdG9yPEdyaWRUcmFjaz4mIGFsbFRyYWNrcyA9IHRyYWNrcyht
X2RpcmVjdGlvbik7CisgICAgdW5zaWduZWQgbnVtYmVyT2ZBdXRvU2l6ZWRUcmFja3MgPSBtX2F1
dG9TaXplZFRyYWNrc0luZGV4LnNpemUoKTsKKyAgICBMYXlvdXRVbml0IHNpemVUb0luY3JlYXNl
ID0gY3VycmVudEZyZWVTcGFjZS52YWx1ZSgpIC8gbnVtYmVyT2ZBdXRvU2l6ZWRUcmFja3M7Cisg
ICAgZm9yIChjb25zdCBhdXRvJiB0cmFja0luZGV4IDogbV9hdXRvU2l6ZWRUcmFja3NJbmRleCkg
eworICAgICAgICBhdXRvJiB0cmFjayA9IGFsbFRyYWNrc1t0cmFja0luZGV4XTsKKyAgICAgICAg
dHJhY2suc2V0QmFzZVNpemUodHJhY2suYmFzZVNpemUoKSArIHNpemVUb0luY3JlYXNlKTsKKyAg
ICB9CisgICAgc2V0RnJlZVNwYWNlKG1fZGlyZWN0aW9uLCBMYXlvdXRVbml0KCkpOworfQorCiB2
b2lkIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6YWR2YW5jZU5leHRTdGF0ZSgpCiB7CiAgICAg
c3dpdGNoIChtX3NpemluZ1N0YXRlKSB7CkBAIC0xMTE3LDYgKzExNDUsNyBAQCB2b2lkIEdyaWRU
cmFja1NpemluZ0FsZ29yaXRobTo6c2V0dXAoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVj
dGlvbiwgdW5zaWduZQogCiAgICAgbV9jb250ZW50U2l6ZWRUcmFja3NJbmRleC5zaHJpbmsoMCk7
CiAgICAgbV9mbGV4aWJsZVNpemVkVHJhY2tzSW5kZXguc2hyaW5rKDApOworICAgIG1fYXV0b1Np
emVkVHJhY2tzSW5kZXguc2hyaW5rKDApOwogCiAgICAgc2V0RnJlZVNwYWNlKGRpcmVjdGlvbiwg
ZnJlZVNwYWNlKTsKICAgICB0cmFja3MoZGlyZWN0aW9uKS5yZXNpemUobnVtVHJhY2tzKTsKQEAg
LTExNTAsMTEgKzExNzksMTEgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OnJ1bigp
CiAgICAgLy8gU3RlcCAzLgogICAgIG1fc3RyYXRlZ3ktPm1heGltaXplVHJhY2tzKHRyYWNrcyht
X2RpcmVjdGlvbiksIG1fZGlyZWN0aW9uID09IEZvckNvbHVtbnMgPyBtX2ZyZWVTcGFjZUNvbHVt
bnMgOiBtX2ZyZWVTcGFjZVJvd3MpOwogCi0gICAgaWYgKG1fZmxleGlibGVTaXplZFRyYWNrc0lu
ZGV4LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gU3RlcCA0LgogICAgIHN0
cmV0Y2hGbGV4aWJsZVRyYWNrcyhpbml0aWFsRnJlZVNwYWNlKTsKKworICAgIC8vIFN0ZXAgNS4K
KyAgICBzdHJldGNoQXV0b1RyYWNrcygpOwogfQogCiB2b2lkIEdyaWRUcmFja1NpemluZ0FsZ29y
aXRobTo6cmVzZXQoKQpAQCAtMTE2NCw2ICsxMTkzLDcgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdB
bGdvcml0aG06OnJlc2V0KCkKICAgICBtX3Jvd3Muc2hyaW5rKDApOwogICAgIG1fY29udGVudFNp
emVkVHJhY2tzSW5kZXguc2hyaW5rKDApOwogICAgIG1fZmxleGlibGVTaXplZFRyYWNrc0luZGV4
LnNocmluaygwKTsKKyAgICBtX2F1dG9TaXplZFRyYWNrc0luZGV4LnNocmluaygwKTsKICAgICBz
ZXRBdmFpbGFibGVTcGFjZShGb3JSb3dzLCBzdGQ6Om51bGxvcHQpOwogICAgIHNldEF2YWlsYWJs
ZVNwYWNlKEZvckNvbHVtbnMsIHN0ZDo6bnVsbG9wdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmgKaW5kZXggZGNlNjI3ZDkz
MjY4MGZjMDMxMWFhMTg1ZTVmZmIzODFiY2Y2Nzg2Yi4uNWJmYzEwZDZkZDc2ODViZTU2OWNiNTBh
NWI4M2Y5ZmRlZjM4ZjdkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dy
aWRUcmFja1NpemluZ0FsZ29yaXRobS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9H
cmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaApAQCAtMTUzLDYgKzE1Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBpbml0aWFsaXplVHJhY2tTaXplcygpOwogICAgIHZvaWQgcmVzb2x2ZUludHJpbnNp
Y1RyYWNrU2l6ZXMoKTsKICAgICB2b2lkIHN0cmV0Y2hGbGV4aWJsZVRyYWNrcyhzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IGZyZWVTcGFjZSk7CisgICAgdm9pZCBzdHJldGNoQXV0b1RyYWNrcygp
OwogCiAgICAgLy8gU3RhdGUgbWFjaGluZS4KICAgICB2b2lkIGFkdmFuY2VOZXh0U3RhdGUoKTsK
QEAgLTE3MSw2ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxHcmlkVHJhY2s+IG1fcm93
czsKICAgICBWZWN0b3I8dW5zaWduZWQ+IG1fY29udGVudFNpemVkVHJhY2tzSW5kZXg7CiAgICAg
VmVjdG9yPHVuc2lnbmVkPiBtX2ZsZXhpYmxlU2l6ZWRUcmFja3NJbmRleDsKKyAgICBWZWN0b3I8
dW5zaWduZWQ+IG1fYXV0b1NpemVkVHJhY2tzSW5kZXg7CiAKICAgICBHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24gbV9kaXJlY3Rpb247CiAgICAgU2l6aW5nT3BlcmF0aW9uIG1fc2l6aW5nT3BlcmF0
aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDc3M2Y1MjJk
OWEwYjkxMGQzMmEzNDQ2OTU1MWU2ODU5OWVjMzY1OTYuLjZjZmMzN2JkNDU2NmYzYmQxYzg4M2Vk
ZTRjM2FiMjQxZTk4MWRhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5j
cHAKQEAgLTMwNSw5ICszMDUsNiBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEJsb2NrKGJvb2wg
cmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICAgICAgc2V0TG9naWNhbEhlaWdodChz
dGQ6Om1heChsb2dpY2FsSGVpZ2h0KCksIG1pbkhlaWdodEZvckVtcHR5TGluZSkpOwogICAgIH0K
IAotICAgIGFwcGx5U3RyZXRjaEFsaWdubWVudFRvVHJhY2tzSWZOZWVkZWQoRm9yQ29sdW1ucyk7
Ci0gICAgYXBwbHlTdHJldGNoQWxpZ25tZW50VG9UcmFja3NJZk5lZWRlZChGb3JSb3dzKTsKLQog
ICAgIGxheW91dEdyaWRJdGVtcygpOwogICAgIG1fdHJhY2tTaXppbmdBbGdvcml0aG0ucmVzZXQo
KTsKIApAQCAtODgwLDQyICs4NzcsMTIgQEAgVmVjdG9yPExheW91dFVuaXQ+IFJlbmRlckdyaWQ6
OnRyYWNrU2l6ZXNGb3JDb21wdXRlZFN0eWxlKEdyaWRUcmFja1NpemluZ0RpcmVjdGkKICAgICBy
ZXR1cm4gdHJhY2tzOwogfQogCi1zdGF0aWMgY29uc3QgU3R5bGVDb250ZW50QWxpZ25tZW50RGF0
YSYgY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yR3JpZCgpCitjb25zdCBTdHlsZUNvbnRl
bnRBbGlnbm1lbnREYXRhJiBSZW5kZXJHcmlkOjpjb250ZW50QWxpZ25tZW50Tm9ybWFsQmVoYXZp
b3JHcmlkKCkKIHsKICAgICBzdGF0aWMgY29uc3QgU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YSBu
b3JtYWxCZWhhdmlvciA9IHtDb250ZW50UG9zaXRpb25Ob3JtYWwsIENvbnRlbnREaXN0cmlidXRp
b25TdHJldGNofTsKICAgICByZXR1cm4gbm9ybWFsQmVoYXZpb3I7CiB9CiAKLXZvaWQgUmVuZGVy
R3JpZDo6YXBwbHlTdHJldGNoQWxpZ25tZW50VG9UcmFja3NJZk5lZWRlZChHcmlkVHJhY2tTaXpp
bmdEaXJlY3Rpb24gZGlyZWN0aW9uKQotewotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4g
ZnJlZVNwYWNlID0gbV90cmFja1NpemluZ0FsZ29yaXRobS5mcmVlU3BhY2UoZGlyZWN0aW9uKTsK
LSAgICBpZiAoIWZyZWVTcGFjZQotICAgICAgICB8fCBmcmVlU3BhY2UudmFsdWUoKSA8PSAwCi0g
ICAgICAgIHx8IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucyAmJiBzdHlsZSgpLnJlc29sdmVkSnVz
dGlmeUNvbnRlbnREaXN0cmlidXRpb24oY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yR3Jp
ZCgpKSAhPSBDb250ZW50RGlzdHJpYnV0aW9uU3RyZXRjaCkKLSAgICAgICAgfHwgKGRpcmVjdGlv
biA9PSBGb3JSb3dzICYmIHN0eWxlKCkucmVzb2x2ZWRBbGlnbkNvbnRlbnREaXN0cmlidXRpb24o
Y29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yR3JpZCgpKSAhPSBDb250ZW50RGlzdHJpYnV0
aW9uU3RyZXRjaCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFNwZWMgZGVmaW5lcyBhdXRv
LXNpemVkIHRyYWNrcyBhcyB0aGUgb25lcyB3aXRoIGFuICdhdXRvJyBtYXgtc2l6aW5nIGZ1bmN0
aW9uLgotICAgIFZlY3RvcjxHcmlkVHJhY2s+JiBhbGxUcmFja3MgPSBtX3RyYWNrU2l6aW5nQWxn
b3JpdGhtLnRyYWNrcyhkaXJlY3Rpb24pOwotICAgIFZlY3Rvcjx1bnNpZ25lZD4gYXV0b1NpemVk
VHJhY2tzSW5kZXg7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFsbFRyYWNrcy5zaXpl
KCk7ICsraSkgewotICAgICAgICBjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUgPSBtX3Ry
YWNrU2l6aW5nQWxnb3JpdGhtLmdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCBpKTsKLSAgICAgICAg
aWYgKHRyYWNrU2l6ZS5oYXNBdXRvTWF4VHJhY2tCcmVhZHRoKCkpCi0gICAgICAgICAgICBhdXRv
U2l6ZWRUcmFja3NJbmRleC5hcHBlbmQoaSk7Ci0gICAgfQotCi0gICAgdW5zaWduZWQgbnVtYmVy
T2ZBdXRvU2l6ZWRUcmFja3MgPSBhdXRvU2l6ZWRUcmFja3NJbmRleC5zaXplKCk7Ci0gICAgaWYg
KG51bWJlck9mQXV0b1NpemVkVHJhY2tzIDwgMSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTGF5
b3V0VW5pdCBzaXplVG9JbmNyZWFzZSA9IGZyZWVTcGFjZS52YWx1ZSgpIC8gbnVtYmVyT2ZBdXRv
U2l6ZWRUcmFja3M7Ci0gICAgZm9yIChjb25zdCBhdXRvJiB0cmFja0luZGV4IDogYXV0b1NpemVk
VHJhY2tzSW5kZXgpIHsKLSAgICAgICAgYXV0byYgdHJhY2sgPSBhbGxUcmFja3NbdHJhY2tJbmRl
eF07Ci0gICAgICAgIHRyYWNrLnNldEJhc2VTaXplKHRyYWNrLmJhc2VTaXplKCkgKyBzaXplVG9J
bmNyZWFzZSk7Ci0gICAgfQotICAgIG1fdHJhY2tTaXppbmdBbGdvcml0aG0uc2V0RnJlZVNwYWNl
KGRpcmVjdGlvbiwgTGF5b3V0VW5pdCgpKTsKLX0KLQogdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRH
cmlkSXRlbXMoKQogewogICAgIHBvcHVsYXRlR3JpZFBvc2l0aW9uc0ZvckRpcmVjdGlvbihGb3JD
b2x1bW5zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IGJlYTk3Mjhi
MmFkYjMwZWU0MjVkZTNhMTFhNzEyYTMyMzQxODVkYzAuLjQ4YjQ0Y2ZjOWQ5ZDVkODNjNWFiYmQx
M2I0Y2M1MjI2YzRjNGUyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApA
QCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc09ydGhvZ29uYWxDaGlsZChjb25z
dCBSZW5kZXJCb3gmKSBjb25zdDsKICAgICBMYXlvdXRVbml0IGd1dHRlcnNTaXplKGNvbnN0IEdy
aWQmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIHVuc2lnbmVkIHN0YXJ0TGluZSwgdW5zaWdu
ZWQgc3Bhbiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVTaXplKSBjb25zdDsK
IAorICAgIHN0YXRpYyBjb25zdCBTdHlsZUNvbnRlbnRBbGlnbm1lbnREYXRhJiBjb250ZW50QWxp
Z25tZW50Tm9ybWFsQmVoYXZpb3JHcmlkKCk7CisKIHByb3RlY3RlZDoKICAgICBJdGVtUG9zaXRp
b24gc2VsZkFsaWdubWVudE5vcm1hbEJlaGF2aW9yKGNvbnN0IFJlbmRlckJveCogY2hpbGQgPSBu
dWxscHRyKSBjb25zdCBvdmVycmlkZQogICAgIHsKQEAgLTEzMiw4ICsxMzQsNiBAQCBwcml2YXRl
OgogCiAgICAgTGF5b3V0VW5pdCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZEluY2x1ZGluZ0FsaWdu
bWVudE9mZnNldHMoY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBj
b25zdDsKIAotICAgIHZvaWQgYXBwbHlTdHJldGNoQWxpZ25tZW50VG9UcmFja3NJZk5lZWRlZChH
cmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pOwotCiAgICAgdm9pZCBwYWludENoaWxkcmVuKFBhaW50
SW5mbyYgZm9yU2VsZiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8m
IGZvckNoaWxkLCBib29sIHVzZVByaW50UmVjdCkgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBt
YXJnaW5Mb2dpY2FsU2l6ZUZvckNoaWxkKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3Qg
UmVuZGVyQm94JikgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlTWFyZ2luTG9naWNhbFNp
emVGb3JDaGlsZChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IFJlbmRlckJveCYpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNTkzNTA3MWJlOTExN2Y1NDRh
NzNhZDk2NjE3MDUyN2ViNTkzMDk3Zi4uNjY0ZDQ5NDE0YzA0YTIzNzU4NTgzZDE4YWZkNzQyMDE1
YmU4NzMxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTctMDktMTIgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW2Nzcy1ncmlkXSBTdHJldGNoaW5nIGF1dG8gdHJhY2tzIHNob3VsZCBiZSBkb25l
IGFzIHBhcnQgb2YgdGhlIHRyYWNrIHNpemluZyBhbGdvcml0aG0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njc4MworCisgICAgICAgIFJldmlld2Vk
IGJ5IFNlcmdpbyBWaWxsYXIgU2VuaW4uCisKKyAgICAgICAgSW1wb3J0IGNoYW5nZXMgb24gdGhl
IHRlc3QgcmVsYXRlZCB0byB0aGUgbmV3IGJlaGF2aW9yLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC0xL2dyaWQtaXRlbXMvZ3JpZC1taW5pbXVtLXNpemUtZ3Jp
ZC1pdGVtcy0wMjEuaHRtbDoKKwogMjAxNy0wOS0xMiAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAg
PHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWdyaWRdIFVzZSB0cmFuc2ZlcnJlZCBz
aXplIG92ZXIgY29udGVudCBzaXplIGZvciBhdXRvbWF0aWMgbWluaW11bSBzaXplCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Z3JpZC0xL2dyaWQtaXRlbXMvZ3JpZC1taW5pbXVtLXNpemUtZ3JpZC1pdGVtcy0wMjEuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlk
LTEvZ3JpZC1pdGVtcy9ncmlkLW1pbmltdW0tc2l6ZS1ncmlkLWl0ZW1zLTAyMS5odG1sCmluZGV4
IDZkNzI2M2QzNTE1NWZkYzI2ZDJmNjcyNWYxMTViYmFjMWFlMzBlYmEuLjYxMThlZGQ1ODU0OGUw
YjIxMmEzOWJhMmJhMDI4YTE1MTc5NmQ5OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkLTEvZ3JpZC1pdGVtcy9ncmlk
LW1pbmltdW0tc2l6ZS1ncmlkLWl0ZW1zLTAyMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkLTEvZ3JpZC1pdGVtcy9ncmlk
LW1pbmltdW0tc2l6ZS1ncmlkLWl0ZW1zLTAyMS5odG1sCkBAIC02OCwxNCArNjgsMTQgQEAKICAg
ZnVuY3Rpb24gcnVuVGVzdHMoKSB7CiAgICAgY2hlY2tHcmlkU2l6ZVRyYWNrc0FuZEltYWdlU2l6
ZSgiZ3JpZC0xIiwgImltZy0xIiwgIjIwMHB4IiwgIjIwMHB4IiwgIjIwMHB4IiwgIjIwMHB4Iiwg
IjIwMHB4IiwgIjIwMHB4Iik7CiAgICAgY2hlY2tHcmlkU2l6ZVRyYWNrc0FuZEltYWdlU2l6ZSgi
Z3JpZC0yIiwgImltZy0yIiwgIjEwcHgiLCAiMTBweCIsICIyMDBweCIsICIyMDBweCIsICIyMDBw
eCIsICIyMDBweCIpOwotICAgIGNoZWNrR3JpZFNpemVUcmFja3NBbmRJbWFnZVNpemUoImdyaWQt
MyIsICJpbWctMyIsICIyMDBweCIsICI1MHB4IiwgIjIwMHB4IiwgIjUwcHgiLCAiMjAwcHgiLCAi
MjAwcHgiKTsKLSAgICBjaGVja0dyaWRTaXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlkLTQiLCAi
aW1nLTQiLCAiMjAwcHgiLCAiMTBweCIsICIyMDBweCIsICI1MHB4IiwgIjIwMHB4IiwgIjIwMHB4
Iik7CisgICAgY2hlY2tHcmlkU2l6ZVRyYWNrc0FuZEltYWdlU2l6ZSgiZ3JpZC0zIiwgImltZy0z
IiwgIjIwMHB4IiwgIjIwMHB4IiwgIjIwMHB4IiwgIjIwMHB4IiwgIjIwMHB4IiwgIjIwMHB4Iik7
CisgICAgY2hlY2tHcmlkU2l6ZVRyYWNrc0FuZEltYWdlU2l6ZSgiZ3JpZC00IiwgImltZy00Iiwg
IjIwMHB4IiwgIjEwcHgiLCAiMjAwcHgiLCAiMjAwcHgiLCAiMjAwcHgiLCAiMjAwcHgiKTsKICAg
ICBjaGVja0dyaWRTaXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlkLTUiLCAiaW1nLTUiLCAiMjAw
cHgiLCAiNTBweCIsICI1MHB4IiwgIjUwcHgiLCAiNTBweCIsICI1MHB4Iik7CiAgICAgY2hlY2tH
cmlkU2l6ZVRyYWNrc0FuZEltYWdlU2l6ZSgiZ3JpZC02IiwgImltZy02IiwgIjIwMHB4IiwgIjEw
cHgiLCAiNTBweCIsICI1MHB4IiwgIjUwcHgiLCAiNTBweCIpOwogICAgIGNoZWNrR3JpZFNpemVU
cmFja3NBbmRJbWFnZVNpemUoImdyaWQtNyIsICJpbWctNyIsICIyMDBweCIsICIyMjVweCIsICIy
MDBweCIsICIyMDBweCAyNXB4IiwgIjIwMHB4IiwgIjIwMHB4Iik7CiAgICAgY2hlY2tHcmlkU2l6
ZVRyYWNrc0FuZEltYWdlU2l6ZSgiZ3JpZC04IiwgImltZy04IiwgIjEwcHgiLCAiMTBweCIsICIy
MDBweCIsICIyMDBweCAyNXB4IiwgIjIwMHB4IiwgIjIwMHB4Iik7Ci0gICAgY2hlY2tHcmlkU2l6
ZVRyYWNrc0FuZEltYWdlU2l6ZSgiZ3JpZC05IiwgImltZy05IiwgIjIwMHB4IiwgIjEyNXB4Iiwg
IjIwMHB4IiwgIjEwMHB4IDI1cHgiLCAiMjAwcHgiLCAiMjAwcHgiKTsKLSAgICBjaGVja0dyaWRT
aXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlkLTEwIiwgImltZy0xMCIsICIyMDBweCIsICIxMHB4
IiwgIjIwMHB4IiwgIjEwMHB4IDI1cHgiLCAiMjAwcHgiLCAiMjAwcHgiKTsKKyAgICBjaGVja0dy
aWRTaXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlkLTkiLCAiaW1nLTkiLCAiMjAwcHgiLCAiMjI1
cHgiLCAiMjAwcHgiLCAiMjAwcHggMjVweCIsICIyMDBweCIsICIyMDBweCIpOworICAgIGNoZWNr
R3JpZFNpemVUcmFja3NBbmRJbWFnZVNpemUoImdyaWQtMTAiLCAiaW1nLTEwIiwgIjIwMHB4Iiwg
IjEwcHgiLCAiMjAwcHgiLCAiMjAwcHggMjVweCIsICIyMDBweCIsICIyMDBweCIpOwogICAgIGNo
ZWNrR3JpZFNpemVUcmFja3NBbmRJbWFnZVNpemUoImdyaWQtMTEiLCAiaW1nLTExIiwgIjIwMHB4
IiwgIjEyNXB4IiwgIjEwMHB4IiwgIjEwMHB4IDI1cHgiLCAiMTAwcHgiLCAiMTAwcHgiKTsKICAg
ICBjaGVja0dyaWRTaXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlkLTEyIiwgImltZy0xMiIsICIy
MDBweCIsICIxMHB4IiwgIjEwMHB4IiwgIjEwMHB4IDI1cHgiLCAiMTAwcHgiLCAiMTAwcHgiKTsK
ICAgICBjaGVja0dyaWRTaXplVHJhY2tzQW5kSW1hZ2VTaXplKCJncmlkLTEzIiwgImltZy0xMyIs
ICIyMDBweCIsICIyMDBweCIsICIyMDBweCIsICIyMDBweCIsICIyMDBweCIsICIyMDBweCIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>