<?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>125995</bug_id>
          
          <creation_ts>2013-12-19 09:48:39 -0800</creation_ts>
          <short_desc>[CSS Shapes] Simplify FloatRoundedRect, BoxShape construction</short_desc>
          <delta_ts>2014-01-03 08:53:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>961415</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-12-19 09:48:39 -0800</bug_when>
    <thetext>Just a small cleanup suggested by Eric Seidel.  In Shape.cpp::createShape() (creates a BoxShape), replace this:

     FloatRoundedRect bounds(rect, roundedRect.radii().topLeft(), roundedRect.radii().topRight(), roundedRect.radii().bottomLeft(), roundedRect.radii().bottomRight());

with this:

    FloatRoundedRect bounds(rect, roundedRect.radii());

Also: make the change suggested here https://bugs.webkit.org/show_bug.cgi?id=125548#c2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961505</commentid>
    <comment_count>1</comment_count>
      <attachid>219676</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-12-19 12:34:26 -0800</bug_when>
    <thetext>Created attachment 219676
Patch.

Cleanup of various internal Shape issues:
- Removed unnecessary Shape() initialization list entries in Shape subclasses per https://bugs.webkit.org/show_bug.cgi?id=125548#c2.
- Used const references instead of pointers for non-deprecated Shape:createShape() logic.
- Replaced createShape() overloads for Rasters and Boxes with functions named createRasterShape() and createBoxShape().
- Added a FloatRoundedRect::Radii() constructor to reduce the parameter list length of the FloatRoundedRect constructor in createBoxShape().

There are no new tests, this is just internal refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964089</commentid>
    <comment_count>2</comment_count>
      <attachid>219676</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-01-03 06:54:46 -0800</bug_when>
    <thetext>Comment on attachment 219676
Patch.

I thought I set r+ on this patch weeks ago :|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964101</commentid>
    <comment_count>3</comment_count>
      <attachid>219676</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-03 08:11:01 -0800</bug_when>
    <thetext>Comment on attachment 219676
Patch.

Rejecting attachment 219676 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 219676, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

/Volumes/Data/EWS/WebKit/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-queues.appspot.com/results/5819974354468864</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964103</commentid>
    <comment_count>4</comment_count>
      <attachid>220305</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2014-01-03 08:18:32 -0800</bug_when>
    <thetext>Created attachment 220305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964113</commentid>
    <comment_count>5</comment_count>
      <attachid>220305</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-03 08:53:30 -0800</bug_when>
    <thetext>Comment on attachment 220305
Patch

Clearing flags on attachment: 220305

Committed r161260: &lt;http://trac.webkit.org/changeset/161260&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964114</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-03 08:53:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219676</attachid>
            <date>2013-12-19 12:34:26 -0800</date>
            <delta_ts>2014-01-03 08:18:32 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>15113</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MTRhYTRhLi5iZTdiYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTMtMTItMTkgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAg
ICAgW0NTUyBTaGFwZXNdIFNpbXBsaWZ5IEZsb2F0Um91bmRlZFJlY3QsIEJveFNoYXBlIGNvbnN0
cnVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI1OTk1CisKKyAgICAgICAgQ2xlYW51cCBvZiB2YXJpb3VzIGludGVybmFsIFNoYXBlIGlzc3Vl
czoKKyAgICAgICAgLSBSZW1vdmVkIHVubmVjZXNzYXJ5IFNoYXBlKCkgaW5pdGlhbGl6YXRpb24g
bGlzdCBlbnRyaWVzIGluIFNoYXBlIHN1YmNsYXNzZXMKKyAgICAgICAgICBwZXIgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTU0OCNjMi4KKyAgICAgICAgLSBVc2Vk
IGNvbnN0IHJlZmVyZW5jZXMgaW5zdGVhZCBvZiBwb2ludGVycyBmb3Igbm9uLWRlcHJlY2F0ZWQg
U2hhcGU6Y3JlYXRlU2hhcGUoKSBsb2dpYy4KKyAgICAgICAgLSBSZXBsYWNlZCBjcmVhdGVTaGFw
ZSgpIG92ZXJsb2FkcyBmb3IgUmFzdGVycyBhbmQgQm94ZXMgd2l0aCBmdW5jdGlvbnMgbmFtZWQK
KyAgICAgICAgICBjcmVhdGVSYXN0ZXJTaGFwZSgpIGFuZCBjcmVhdGVCb3hTaGFwZSgpLgorICAg
ICAgICAtIEFkZGVkIGEgRmxvYXRSb3VuZGVkUmVjdDo6UmFkaWkoKSBjb25zdHJ1Y3RvciB0byBy
ZWR1Y2UgdGhlIHBhcmFtZXRlciBsaXN0CisgICAgICAgICAgbGVuZ3RoIG9mIHRoZSBGbG9hdFJv
dW5kZWRSZWN0IGNvbnN0cnVjdG9yIGluIGNyZWF0ZUJveFNoYXBlKCkuCisKKyAgICAgICAgVGhl
cmUgYXJlIG5vIG5ldyB0ZXN0cywgdGhpcyBpcyBqdXN0IGludGVybmFsIHJlZmFjdG9yaW5nLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OlJhZGlpKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6
Qm94U2hhcGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQb2x5Z29uU2hhcGU6OlBvbHlnb25TaGFwZSk6CisgICAgICAgICog
cmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmFzdGVy
U2hhcGU6OlJhc3RlclNoYXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1JlY3Rhbmds
ZVNoYXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWN0YW5nbGVTaGFwZTo6UmVjdGFuZ2xlU2hh
cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSW5zZXRTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZTo6Y3JlYXRl
U2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGU6OmNyZWF0ZVJhc3RlclNoYXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXBlOjpjcmVhdGVCb3hTaGFwZSk6CisgICAgICAgICogcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlSW5mbzxSZW5kZXJUeXBlPjo6Y29tcHV0ZWRT
aGFwZSk6CisKIDIwMTMtMTItMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQnVpbGQgZml4IGZvciBwbGF0Zm9ybXMgd2hpY2ggZG8gbm90IGRlZmluZSAtW0FW
U2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciBtdXRlZF0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmgKaW5kZXggZjY2Y2I5NC4uZmJk
NDQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
b3VuZGVkUmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
Um91bmRlZFJlY3QuaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiRmxvYXRSZWN0Lmgi
CiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCisjaW5jbHVkZSAiUm91bmRlZFJlY3QuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCw2ICs0OSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHsK
ICAgICAgICAgfQogCisgICAgICAgIFJhZGlpKGNvbnN0IFJvdW5kZWRSZWN0OjpSYWRpaSYgaW50
UmFkaWkpCisgICAgICAgICAgICA6IG1fdG9wTGVmdChpbnRSYWRpaS50b3BMZWZ0KCkpCisgICAg
ICAgICAgICAsIG1fdG9wUmlnaHQoaW50UmFkaWkudG9wUmlnaHQoKSkKKyAgICAgICAgICAgICwg
bV9ib3R0b21MZWZ0KGludFJhZGlpLmJvdHRvbUxlZnQoKSkKKyAgICAgICAgICAgICwgbV9ib3R0
b21SaWdodChpbnRSYWRpaS5ib3R0b21SaWdodCgpKQorICAgICAgICB7CisgICAgICAgIH0KKwog
ICAgICAgICB2b2lkIHNldFRvcExlZnQoY29uc3QgRmxvYXRTaXplJiBzaXplKSB7IG1fdG9wTGVm
dCA9IHNpemU7IH0KICAgICAgICAgdm9pZCBzZXRUb3BSaWdodChjb25zdCBGbG9hdFNpemUmIHNp
emUpIHsgbV90b3BSaWdodCA9IHNpemU7IH0KICAgICAgICAgdm9pZCBzZXRCb3R0b21MZWZ0KGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSkgeyBtX2JvdHRvbUxlZnQgPSBzaXplOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgKaW5kZXggOTU3NDY5Zi4uMDk5ZWM4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaApAQCAtMzgsOCAr
MzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCb3hTaGFwZSA6IHB1YmxpYyBTaGFw
ZSB7CiBwdWJsaWM6CiAgICAgQm94U2hhcGUoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYm91bmRz
KQotICAgICAgICA6IFNoYXBlKCkKLSAgICAgICAgLCBtX2JvdW5kcyhib3VuZHMpCisgICAgICAg
IDogbV9ib3VuZHMoYm91bmRzKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCmluZGV4IDJiNmQ4NjguLjUyMTRmYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaApAQCAt
ODMsOCArODMsNyBAQCBjbGFzcyBQb2x5Z29uU2hhcGUgOiBwdWJsaWMgU2hhcGUgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFBvbHlnb25TaGFwZSk7CiBwdWJsaWM6CiAgICAgUG9seWdvblNo
YXBlKFBhc3NPd25QdHI8VmVjdG9yPEZsb2F0UG9pbnQ+PiB2ZXJ0aWNlcywgV2luZFJ1bGUgZmls
bFJ1bGUpCi0gICAgICAgIDogU2hhcGUoKQotICAgICAgICAsIG1fcG9seWdvbih2ZXJ0aWNlcywg
ZmlsbFJ1bGUpCisgICAgICAgIDogbV9wb2x5Z29uKHZlcnRpY2VzLCBmaWxsUnVsZSkKICAgICAg
ICAgLCBtX21hcmdpbkJvdW5kcyhudWxscHRyKQogICAgICAgICAsIG1fcGFkZGluZ0JvdW5kcyhu
dWxscHRyKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvUmFzdGVyU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmFzdGVy
U2hhcGUuaAppbmRleCA4MTc2MzAzLi5jY2JiOGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCkBAIC05MCw4ICs5MCw3IEBAIGNsYXNzIFJhc3Rl
clNoYXBlIDogcHVibGljIFNoYXBlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSYXN0ZXJT
aGFwZSk7CiBwdWJsaWM6CiAgICAgUmFzdGVyU2hhcGUoUGFzc093blB0cjxSYXN0ZXJTaGFwZUlu
dGVydmFscz4gaW50ZXJ2YWxzLCBjb25zdCBJbnRTaXplJiBpbWFnZVNpemUpCi0gICAgICAgIDog
U2hhcGUoKQotICAgICAgICAsIG1faW50ZXJ2YWxzKGludGVydmFscykKKyAgICAgICAgOiBtX2lu
dGVydmFscyhpbnRlcnZhbHMpCiAgICAgICAgICwgbV9pbWFnZVNpemUoaW1hZ2VTaXplKQogICAg
IHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jl
Y3RhbmdsZVNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1JlY3Rhbmds
ZVNoYXBlLmgKaW5kZXggMTY2ODcxMi4uNDdiYWQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaApAQCAtNDIsOCArNDIsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZWN0YW5nbGVTaGFwZSA6IHB1YmxpYyBTaGFwZSB7CiBw
dWJsaWM6CiAgICAgUmVjdGFuZ2xlU2hhcGUoY29uc3QgRmxvYXRSZWN0JiBib3VuZHMsIGNvbnN0
IEZsb2F0U2l6ZSYgcmFkaWkpCi0gICAgICAgIDogU2hhcGUoKQotICAgICAgICAsIG1fYm91bmRz
KGJvdW5kcykKKyAgICAgICAgOiBtX2JvdW5kcyhib3VuZHMpCiAgICAgICAgICwgbV9yYWRpaShy
YWRpaSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9TaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBl
LmNwcAppbmRleCAyYTc4OTczLi5iODU3ZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1NoYXBlLmNwcApAQCAtNDYsNyArNDYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBjcmVhdGVCb3hTaGFwZShjb25zdCBGbG9hdFJv
dW5kZWRSZWN0JiBib3VuZHMpCitzdGF0aWMgUGFzc093blB0cjxTaGFwZT4gY3JlYXRlSW5zZXRT
aGFwZShjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiBib3VuZHMpCiB7CiAgICAgQVNTRVJUKGJvdW5k
cy5yZWN0KCkud2lkdGgoKSA+PSAwICYmIGJvdW5kcy5yZWN0KCkuaGVpZ2h0KCkgPj0gMCk7CiAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCb3hTaGFwZShib3VuZHMpKTsKQEAgLTEyMywxNSArMTIz
LDE1IEBAIFBhc3NPd25QdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVTaGFwZShjb25zdCBCYXNpY1No
YXBlKiBiYXNpY1NoYXBlLCBjb25zdCBMYXlvdXRTCiAgICAgc3dpdGNoIChiYXNpY1NoYXBlLT50
eXBlKCkpIHsKIAogICAgIGNhc2UgQmFzaWNTaGFwZTo6QmFzaWNTaGFwZVJlY3RhbmdsZVR5cGU6
IHsKLSAgICAgICAgY29uc3QgQmFzaWNTaGFwZVJlY3RhbmdsZSogcmVjdGFuZ2xlID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgQmFzaWNTaGFwZVJlY3RhbmdsZSo+KGJhc2ljU2hhcGUpOworICAgICAgICBj
b25zdCBCYXNpY1NoYXBlUmVjdGFuZ2xlJiByZWN0YW5nbGUgPSAqc3RhdGljX2Nhc3Q8Y29uc3Qg
QmFzaWNTaGFwZVJlY3RhbmdsZSo+KGJhc2ljU2hhcGUpOwogICAgICAgICBGbG9hdFJlY3QgYm91
bmRzKAotICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUtPngoKSwgYm94
V2lkdGgpLAotICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUtPnkoKSwg
Ym94SGVpZ2h0KSwKLSAgICAgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgocmVjdGFuZ2xlLT53
aWR0aCgpLCBib3hXaWR0aCksCi0gICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJlY3Rh
bmdsZS0+aGVpZ2h0KCksIGJveEhlaWdodCkpOworICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxl
bmd0aChyZWN0YW5nbGUueCgpLCBib3hXaWR0aCksCisgICAgICAgICAgICBmbG9hdFZhbHVlRm9y
TGVuZ3RoKHJlY3RhbmdsZS55KCksIGJveEhlaWdodCksCisgICAgICAgICAgICBmbG9hdFZhbHVl
Rm9yTGVuZ3RoKHJlY3RhbmdsZS53aWR0aCgpLCBib3hXaWR0aCksCisgICAgICAgICAgICBmbG9h
dFZhbHVlRm9yTGVuZ3RoKHJlY3RhbmdsZS5oZWlnaHQoKSwgYm94SGVpZ2h0KSk7CiAgICAgICAg
IEZsb2F0U2l6ZSBjb3JuZXJSYWRpaSgKLSAgICAgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgo
cmVjdGFuZ2xlLT5jb3JuZXJSYWRpdXNYKCksIGJveFdpZHRoKSwKLSAgICAgICAgICAgIGZsb2F0
VmFsdWVGb3JMZW5ndGgocmVjdGFuZ2xlLT5jb3JuZXJSYWRpdXNZKCksIGJveEhlaWdodCkpOwor
ICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUuY29ybmVyUmFkaXVzWCgp
LCBib3hXaWR0aCksCisgICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJlY3RhbmdsZS5j
b3JuZXJSYWRpdXNZKCksIGJveEhlaWdodCkpOwogICAgICAgICBlbnN1cmVSYWRpaURvTm90T3Zl
cmxhcChib3VuZHMsIGNvcm5lclJhZGlpKTsKICAgICAgICAgRmxvYXRSZWN0IGxvZ2ljYWxCb3Vu
ZHMgPSBwaHlzaWNhbFJlY3RUb0xvZ2ljYWwoYm91bmRzLCBsb2dpY2FsQm94U2l6ZS5oZWlnaHQo
KSwgd3JpdGluZ01vZGUpOwogCkBAIC0xODcsOCArMTg3LDggQEAgUGFzc093blB0cjxTaGFwZT4g
U2hhcGU6OmNyZWF0ZVNoYXBlKGNvbnN0IEJhc2ljU2hhcGUqIGJhc2ljU2hhcGUsIGNvbnN0IExh
eW91dFMKICAgICB9CiAKICAgICBjYXNlIEJhc2ljU2hhcGU6OkJhc2ljU2hhcGVQb2x5Z29uVHlw
ZTogewotICAgICAgICBjb25zdCBCYXNpY1NoYXBlUG9seWdvbiogcG9seWdvbiA9IHN0YXRpY19j
YXN0PGNvbnN0IEJhc2ljU2hhcGVQb2x5Z29uKj4oYmFzaWNTaGFwZSk7Ci0gICAgICAgIGNvbnN0
IFZlY3RvcjxMZW5ndGg+JiB2YWx1ZXMgPSBwb2x5Z29uLT52YWx1ZXMoKTsKKyAgICAgICAgY29u
c3QgQmFzaWNTaGFwZVBvbHlnb24mIHBvbHlnb24gPSAqc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNT
aGFwZVBvbHlnb24qPihiYXNpY1NoYXBlKTsKKyAgICAgICAgY29uc3QgVmVjdG9yPExlbmd0aD4m
IHZhbHVlcyA9IHBvbHlnb24udmFsdWVzKCk7CiAgICAgICAgIHNpemVfdCB2YWx1ZXNTaXplID0g
dmFsdWVzLnNpemUoKTsKICAgICAgICAgQVNTRVJUKCEodmFsdWVzU2l6ZSAlIDIpKTsKICAgICAg
ICAgT3duUHRyPFZlY3RvcjxGbG9hdFBvaW50Pj4gdmVydGljZXMgPSBhZG9wdFB0cihuZXcgVmVj
dG9yPEZsb2F0UG9pbnQ+KHZhbHVlc1NpemUgLyAyKSk7CkBAIC0xOTksMjIgKzE5OSwyMiBAQCBQ
YXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgQmFzaWNTaGFwZSogYmFz
aWNTaGFwZSwgY29uc3QgTGF5b3V0UwogICAgICAgICAgICAgKCp2ZXJ0aWNlcylbaSAvIDJdID0g
cGh5c2ljYWxQb2ludFRvTG9naWNhbCh2ZXJ0ZXgsIGxvZ2ljYWxCb3hTaXplLmhlaWdodCgpLCB3
cml0aW5nTW9kZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzaGFwZSA9IGNyZWF0ZVBvbHlnb25T
aGFwZSh2ZXJ0aWNlcy5yZWxlYXNlKCksIHBvbHlnb24tPndpbmRSdWxlKCkpOworICAgICAgICBz
aGFwZSA9IGNyZWF0ZVBvbHlnb25TaGFwZSh2ZXJ0aWNlcy5yZWxlYXNlKCksIHBvbHlnb24ud2lu
ZFJ1bGUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGNhc2UgQmFzaWNTaGFwZTo6
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlVHlwZTogewotICAgICAgICBjb25zdCBCYXNpY1NoYXBl
SW5zZXRSZWN0YW5nbGUqIHJlY3RhbmdsZSA9IHN0YXRpY19jYXN0PGNvbnN0IEJhc2ljU2hhcGVJ
bnNldFJlY3RhbmdsZSo+KGJhc2ljU2hhcGUpOwotICAgICAgICBmbG9hdCBsZWZ0ID0gZmxvYXRW
YWx1ZUZvckxlbmd0aChyZWN0YW5nbGUtPmxlZnQoKSwgYm94V2lkdGgpOwotICAgICAgICBmbG9h
dCB0b3AgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJlY3RhbmdsZS0+dG9wKCksIGJveEhlaWdodCk7
CisgICAgICAgIGNvbnN0IEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSYgcmVjdGFuZ2xlID0gKnN0
YXRpY19jYXN0PGNvbnN0IEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSo+KGJhc2ljU2hhcGUpOwor
ICAgICAgICBmbG9hdCBsZWZ0ID0gZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUubGVmdCgp
LCBib3hXaWR0aCk7CisgICAgICAgIGZsb2F0IHRvcCA9IGZsb2F0VmFsdWVGb3JMZW5ndGgocmVj
dGFuZ2xlLnRvcCgpLCBib3hIZWlnaHQpOwogICAgICAgICBGbG9hdFJlY3QgYm91bmRzKAogICAg
ICAgICAgICAgbGVmdCwKICAgICAgICAgICAgIHRvcCwKLSAgICAgICAgICAgIGJveFdpZHRoIC0g
bGVmdCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgocmVjdGFuZ2xlLT5yaWdodCgpLCBib3hXaWR0aCks
Ci0gICAgICAgICAgICBib3hIZWlnaHQgLSB0b3AgLSBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJlY3Rh
bmdsZS0+Ym90dG9tKCksIGJveEhlaWdodCkpOworICAgICAgICAgICAgYm94V2lkdGggLSBsZWZ0
IC0gZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUucmlnaHQoKSwgYm94V2lkdGgpLAorICAg
ICAgICAgICAgYm94SGVpZ2h0IC0gdG9wIC0gZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUu
Ym90dG9tKCksIGJveEhlaWdodCkpOwogICAgICAgICBGbG9hdFNpemUgY29ybmVyUmFkaWkoCi0g
ICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJlY3RhbmdsZS0+Y29ybmVyUmFkaXVzWCgp
LCBib3hXaWR0aCksCi0gICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJlY3RhbmdsZS0+
Y29ybmVyUmFkaXVzWSgpLCBib3hIZWlnaHQpKTsKKyAgICAgICAgICAgIGZsb2F0VmFsdWVGb3JM
ZW5ndGgocmVjdGFuZ2xlLmNvcm5lclJhZGl1c1goKSwgYm94V2lkdGgpLAorICAgICAgICAgICAg
ZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUuY29ybmVyUmFkaXVzWSgpLCBib3hIZWlnaHQp
KTsKICAgICAgICAgZW5zdXJlUmFkaWlEb05vdE92ZXJsYXAoYm91bmRzLCBjb3JuZXJSYWRpaSk7
CiAgICAgICAgIEZsb2F0UmVjdCBsb2dpY2FsQm91bmRzID0gcGh5c2ljYWxSZWN0VG9Mb2dpY2Fs
KGJvdW5kcywgbG9naWNhbEJveFNpemUuaGVpZ2h0KCksIHdyaXRpbmdNb2RlKTsKIApAQCAtMjIz
LDI0ICsyMjMsMjAgQEAgUGFzc093blB0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVNoYXBlKGNvbnN0
IEJhc2ljU2hhcGUqIGJhc2ljU2hhcGUsIGNvbnN0IExheW91dFMKICAgICB9CiAKICAgICBjYXNl
IEJhc2ljU2hhcGU6OkJhc2ljU2hhcGVJbnNldFR5cGU6IHsKLSAgICAgICAgY29uc3QgQmFzaWNT
aGFwZUluc2V0KiByZWN0YW5nbGUgPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY1NoYXBlSW5zZXQq
PihiYXNpY1NoYXBlKTsKLSAgICAgICAgZmxvYXQgbGVmdCA9IGZsb2F0VmFsdWVGb3JMZW5ndGgo
cmVjdGFuZ2xlLT5sZWZ0KCksIGJveFdpZHRoKTsKLSAgICAgICAgZmxvYXQgdG9wID0gZmxvYXRW
YWx1ZUZvckxlbmd0aChyZWN0YW5nbGUtPnRvcCgpLCBib3hIZWlnaHQpOwotCisgICAgICAgIGNv
bnN0IEJhc2ljU2hhcGVJbnNldCYgaW5zZXQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNTaGFw
ZUluc2V0Kj4oYmFzaWNTaGFwZSk7CisgICAgICAgIGZsb2F0IGxlZnQgPSBmbG9hdFZhbHVlRm9y
TGVuZ3RoKGluc2V0LmxlZnQoKSwgYm94V2lkdGgpOworICAgICAgICBmbG9hdCB0b3AgPSBmbG9h
dFZhbHVlRm9yTGVuZ3RoKGluc2V0LnRvcCgpLCBib3hIZWlnaHQpOwogICAgICAgICBGbG9hdFJl
Y3QgcmVjdChsZWZ0LAogICAgICAgICAgICAgdG9wLAotICAgICAgICAgICAgYm94V2lkdGggLSBs
ZWZ0IC0gZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUtPnJpZ2h0KCksIGJveFdpZHRoKSwK
LSAgICAgICAgICAgIGJveEhlaWdodCAtIHRvcCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgocmVjdGFu
Z2xlLT5ib3R0b20oKSwgYm94SGVpZ2h0KSk7CisgICAgICAgICAgICBib3hXaWR0aCAtIGxlZnQg
LSBmbG9hdFZhbHVlRm9yTGVuZ3RoKGluc2V0LnJpZ2h0KCksIGJveFdpZHRoKSwKKyAgICAgICAg
ICAgIGJveEhlaWdodCAtIHRvcCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgoaW5zZXQuYm90dG9tKCks
IGJveEhlaWdodCkpOwogICAgICAgICBGbG9hdFJlY3QgbG9naWNhbFJlY3QgPSBwaHlzaWNhbFJl
Y3RUb0xvZ2ljYWwocmVjdCwgbG9naWNhbEJveFNpemUuaGVpZ2h0KCksIHdyaXRpbmdNb2RlKTsK
IAotICAgICAgICAvLyBGbG9hdFJvdW5kZWRSZWN0IGNvbnN0dWN0b3IgaGFzIGRpZmZlcmVudCBv
cmRlciBmb3IgdGhlIGNvcm5lcnM6IHRvcExlZnQsIHRvcFJpZ2h0LCBib3R0b21MZWZ0LCBib3R0
b21SaWdodAotICAgICAgICBGbG9hdFJvdW5kZWRSZWN0IGxvZ2ljYWxCb3VuZHMobG9naWNhbFJl
Y3QsCi0gICAgICAgICAgICByZWN0YW5nbGUtPnRvcExlZnRSYWRpdXMoKS5mbG9hdFNpemUoKSwK
LSAgICAgICAgICAgIHJlY3RhbmdsZS0+dG9wUmlnaHRSYWRpdXMoKS5mbG9hdFNpemUoKSwKLSAg
ICAgICAgICAgIHJlY3RhbmdsZS0+Ym90dG9tTGVmdFJhZGl1cygpLmZsb2F0U2l6ZSgpLAotICAg
ICAgICAgICAgcmVjdGFuZ2xlLT5ib3R0b21SaWdodFJhZGl1cygpLmZsb2F0U2l6ZSgpKTsKLQot
ICAgICAgICBzaGFwZSA9IGNyZWF0ZUJveFNoYXBlKGxvZ2ljYWxCb3VuZHMpOworICAgICAgICBz
aGFwZSA9IGNyZWF0ZUluc2V0U2hhcGUoRmxvYXRSb3VuZGVkUmVjdChsb2dpY2FsUmVjdCwKKyAg
ICAgICAgICAgIGluc2V0LnRvcExlZnRSYWRpdXMoKS5mbG9hdFNpemUoKSwKKyAgICAgICAgICAg
IGluc2V0LnRvcFJpZ2h0UmFkaXVzKCkuZmxvYXRTaXplKCksCisgICAgICAgICAgICBpbnNldC5i
b3R0b21MZWZ0UmFkaXVzKCkuZmxvYXRTaXplKCksCisgICAgICAgICAgICBpbnNldC5ib3R0b21S
aWdodFJhZGl1cygpLmZsb2F0U2l6ZSgpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAt
MjU1LDcgKzI1MSw3IEBAIFBhc3NPd25QdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVTaGFwZShjb25z
dCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlLCBjb25zdCBMYXlvdXRTCiAgICAgcmV0dXJuIHNoYXBl
LnJlbGVhc2UoKTsKIH0KIAotUGFzc093blB0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVNoYXBlKGNv
bnN0IFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UsIGZsb2F0IHRocmVzaG9sZCwgY29uc3QgTGF5b3V0
U2l6ZSYsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFk
ZGluZykKK1Bhc3NPd25QdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVSYXN0ZXJTaGFwZShjb25zdCBT
dHlsZUltYWdlKiBzdHlsZUltYWdlLCBmbG9hdCB0aHJlc2hvbGQsIGNvbnN0IExheW91dFNpemUm
LCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgTGVuZ3RoIG1hcmdpbiwgTGVuZ3RoIHBhZGRpbmcp
CiB7CiAgICAgQVNTRVJUKHN0eWxlSW1hZ2UgJiYgc3R5bGVJbWFnZS0+aXNDYWNoZWRJbWFnZSgp
ICYmIHN0eWxlSW1hZ2UtPmNhY2hlZEltYWdlKCkgJiYgc3R5bGVJbWFnZS0+Y2FjaGVkSW1hZ2Uo
KS0+aW1hZ2UoKSk7CiAKQEAgLTI5OCwxNiArMjk0LDE4IEBAIFBhc3NPd25QdHI8U2hhcGU+IFNo
YXBlOjpjcmVhdGVTaGFwZShjb25zdCBTdHlsZUltYWdlKiBzdHlsZUltYWdlLCBmbG9hdCB0aHJl
c2hvCiAgICAgcmV0dXJuIHJhc3RlclNoYXBlLnJlbGVhc2UoKTsKIH0KIAotUGFzc093blB0cjxT
aGFwZT4gU2hhcGU6OmNyZWF0ZVNoYXBlKGNvbnN0IFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCwg
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKQor
UGFzc093blB0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZUJveFNoYXBlKGNvbnN0IFJvdW5kZWRSZWN0
JiByb3VuZGVkUmVjdCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExl
bmd0aCBwYWRkaW5nKQogewotICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIHJvdW5kZWRSZWN0LnJl
Y3QoKS53aWR0aCgpLCByb3VuZGVkUmVjdC5yZWN0KCkuaGVpZ2h0KCkpOwotICAgIEZsb2F0Um91
bmRlZFJlY3QgYm91bmRzKHJlY3QsIHJvdW5kZWRSZWN0LnJhZGlpKCkudG9wTGVmdCgpLCByb3Vu
ZGVkUmVjdC5yYWRpaSgpLnRvcFJpZ2h0KCksIHJvdW5kZWRSZWN0LnJhZGlpKCkuYm90dG9tTGVm
dCgpLCByb3VuZGVkUmVjdC5yYWRpaSgpLmJvdHRvbVJpZ2h0KCkpOworICAgIEFTU0VSVChyb3Vu
ZGVkUmVjdC5yZWN0KCkud2lkdGgoKSA+PSAwICYmIHJvdW5kZWRSZWN0LnJlY3QoKS5oZWlnaHQo
KSA+PSAwKTsKIAotICAgIE93blB0cjxTaGFwZT4gc2hhcGUgPSBjcmVhdGVCb3hTaGFwZShib3Vu
ZHMpOworICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIHJvdW5kZWRSZWN0LnJlY3QoKS53aWR0aCgp
LCByb3VuZGVkUmVjdC5yZWN0KCkuaGVpZ2h0KCkpOworICAgIEZsb2F0Um91bmRlZFJlY3QgYm91
bmRzKHJlY3QsIHJvdW5kZWRSZWN0LnJhZGlpKCkpOworICAgIE93blB0cjxTaGFwZT4gc2hhcGUg
PSBhZG9wdFB0cihuZXcgQm94U2hhcGUoYm91bmRzKSk7CiAgICAgc2hhcGUtPm1fd3JpdGluZ01v
ZGUgPSB3cml0aW5nTW9kZTsKICAgICBzaGFwZS0+bV9tYXJnaW4gPSBmbG9hdFZhbHVlRm9yTGVu
Z3RoKG1hcmdpbiwgMCk7CiAgICAgc2hhcGUtPm1fcGFkZGluZyA9IGZsb2F0VmFsdWVGb3JMZW5n
dGgocGFkZGluZywgMCk7CiAKICAgICByZXR1cm4gc2hhcGUucmVsZWFzZSgpOwogfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1NoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgK
aW5kZXggOGI3ZmM5Yy4uMzQ1Mzk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
U2hhcGUuaApAQCAtNjgsOCArNjgsOCBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHN0YXRpYyBQ
YXNzT3duUHRyPFNoYXBlPiBjcmVhdGVTaGFwZShjb25zdCBCYXNpY1NoYXBlKiwgY29uc3QgTGF5
b3V0U2l6ZSYgbG9naWNhbEJveFNpemUsIFdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBMZW5n
dGggcGFkZGluZyk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZVNoYXBlKGNv
bnN0IFN0eWxlSW1hZ2UqLCBmbG9hdCB0aHJlc2hvbGQsIGNvbnN0IExheW91dFNpemUmIGxvZ2lj
YWxCb3hTaXplLCBXcml0aW5nTW9kZSwgTGVuZ3RoIG1hcmdpbiwgTGVuZ3RoIHBhZGRpbmcpOwot
ICAgIHN0YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBjcmVhdGVTaGFwZShjb25zdCBSb3VuZGVkUmVj
dCYsIFdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGluZyk7CisgICAgc3Rh
dGljIFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZVJhc3RlclNoYXBlKGNvbnN0IFN0eWxlSW1hZ2Uq
LCBmbG9hdCB0aHJlc2hvbGQsIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxCb3hTaXplLCBXcml0
aW5nTW9kZSwgTGVuZ3RoIG1hcmdpbiwgTGVuZ3RoIHBhZGRpbmcpOworICAgIHN0YXRpYyBQYXNz
T3duUHRyPFNoYXBlPiBjcmVhdGVCb3hTaGFwZShjb25zdCBSb3VuZGVkUmVjdCYsIFdyaXRpbmdN
b2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGluZyk7CiAKICAgICB2aXJ0dWFsIH5TaGFw
ZSgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5j
cHAKaW5kZXggYWU0YzYzYS4uNTZmZWI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGVJbmZvLmNwcApAQCAtNzQsMTEgKzc0LDExIEBAIGNvbnN0IFNoYXBlJiBT
aGFwZUluZm88UmVuZGVyVHlwZT46OmNvbXB1dGVkU2hhcGUoKSBjb25zdAogICAgICAgICBicmVh
azsKICAgICBjYXNlIFNoYXBlVmFsdWU6OkltYWdlOgogICAgICAgICBBU1NFUlQoc2hhcGVWYWx1
ZS0+aW1hZ2UoKSk7Ci0gICAgICAgIG1fc2hhcGUgPSBTaGFwZTo6Y3JlYXRlU2hhcGUoc2hhcGVW
YWx1ZS0+aW1hZ2UoKSwgc2hhcGVJbWFnZVRocmVzaG9sZCwgbV9zaGFwZUxvZ2ljYWxTaXplLCB3
cml0aW5nTW9kZSwgbWFyZ2luLCBwYWRkaW5nKTsKKyAgICAgICAgbV9zaGFwZSA9IFNoYXBlOjpj
cmVhdGVSYXN0ZXJTaGFwZShzaGFwZVZhbHVlLT5pbWFnZSgpLCBzaGFwZUltYWdlVGhyZXNob2xk
LCBtX3NoYXBlTG9naWNhbFNpemUsIHdyaXRpbmdNb2RlLCBtYXJnaW4sIHBhZGRpbmcpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFNoYXBlVmFsdWU6OkJveDogewogICAgICAgICBjb25zdCBS
b3VuZGVkUmVjdCYgc2hhcGVSZWN0ID0gbV9yZW5kZXJlci5zdHlsZSgpLmdldFJvdW5kZWRCb3Jk
ZXJGb3IoTGF5b3V0UmVjdChMYXlvdXRQb2ludCgpLCBtX3NoYXBlTG9naWNhbFNpemUpLCAmKG1f
cmVuZGVyZXIudmlldygpKSk7Ci0gICAgICAgIG1fc2hhcGUgPSBTaGFwZTo6Y3JlYXRlU2hhcGUo
c2hhcGVSZWN0LCB3cml0aW5nTW9kZSwgbWFyZ2luLCBwYWRkaW5nKTsKKyAgICAgICAgbV9zaGFw
ZSA9IFNoYXBlOjpjcmVhdGVCb3hTaGFwZShzaGFwZVJlY3QsIHdyaXRpbmdNb2RlLCBtYXJnaW4s
IHBhZGRpbmcpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBTaGFwZVZhbHVlOjpP
dXRzaWRlOgo=
</data>
<flag name="review"
          id="243337"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="244002"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220305</attachid>
            <date>2014-01-03 08:18:32 -0800</date>
            <delta_ts>2014-01-03 08:53:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>15122</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MDg4MWU2Li41N2RiY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTMtMTItMTkgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAg
ICAgW0NTUyBTaGFwZXNdIFNpbXBsaWZ5IEZsb2F0Um91bmRlZFJlY3QsIEJveFNoYXBlIGNvbnN0
cnVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI1OTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAgICAgICBD
bGVhbnVwIG9mIHZhcmlvdXMgaW50ZXJuYWwgU2hhcGUgaXNzdWVzOgorICAgICAgICAtIFJlbW92
ZWQgdW5uZWNlc3NhcnkgU2hhcGUoKSBpbml0aWFsaXphdGlvbiBsaXN0IGVudHJpZXMgaW4gU2hh
cGUgc3ViY2xhc3NlcworICAgICAgICAgIHBlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI1NTQ4I2MyLgorICAgICAgICAtIFVzZWQgY29uc3QgcmVmZXJlbmNlcyBp
bnN0ZWFkIG9mIHBvaW50ZXJzIGZvciBub24tZGVwcmVjYXRlZCBTaGFwZTpjcmVhdGVTaGFwZSgp
IGxvZ2ljLgorICAgICAgICAtIFJlcGxhY2VkIGNyZWF0ZVNoYXBlKCkgb3ZlcmxvYWRzIGZvciBS
YXN0ZXJzIGFuZCBCb3hlcyB3aXRoIGZ1bmN0aW9ucyBuYW1lZAorICAgICAgICAgIGNyZWF0ZVJh
c3RlclNoYXBlKCkgYW5kIGNyZWF0ZUJveFNoYXBlKCkuCisgICAgICAgIC0gQWRkZWQgYSBGbG9h
dFJvdW5kZWRSZWN0OjpSYWRpaSgpIGNvbnN0cnVjdG9yIHRvIHJlZHVjZSB0aGUgcGFyYW1ldGVy
IGxpc3QKKyAgICAgICAgICBsZW5ndGggb2YgdGhlIEZsb2F0Um91bmRlZFJlY3QgY29uc3RydWN0
b3IgaW4gY3JlYXRlQm94U2hhcGUoKS4KKworICAgICAgICBUaGVyZSBhcmUgbm8gbmV3IHRlc3Rz
LCB0aGlzIGlzIGp1c3QgaW50ZXJuYWwgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJv
dW5kZWRSZWN0OjpSYWRpaTo6UmFkaWkpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvQm94
U2hhcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJveFNoYXBlOjpCb3hTaGFwZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBv
bHlnb25TaGFwZTo6UG9seWdvblNoYXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1Jh
c3RlclNoYXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpSYXN0ZXJTaGFwZTo6UmFzdGVyU2hhcGUp
OgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlY3RhbmdsZVNoYXBlOjpSZWN0YW5nbGVTaGFwZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJbnNldFNo
YXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlOjpjcmVhdGVTaGFwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFwZTo6Y3JlYXRlUmFzdGVyU2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cGU6OmNyZWF0ZUJveFNoYXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmg6
CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhcGVJbmZvPFJlbmRlclR5cGU+Ojpjb21wdXRlZFNoYXBlKToKKwogMjAxNC0wMS0w
MyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVu
dXNlZCBEb2N1bWVudDo6b3BlblNlYXJjaERlc2NyaXB0aW9uVVJMKCkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmgKaW5kZXggZjY2
Y2I5NC4uZmJkNDQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRSb3VuZGVkUmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0Um91bmRlZFJlY3QuaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCisjaW5jbHVkZSAiUm91bmRlZFJlY3Qu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCw2ICs0OSwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIHsKICAgICAgICAgfQogCisgICAgICAgIFJhZGlpKGNvbnN0IFJvdW5kZWRSZWN0OjpS
YWRpaSYgaW50UmFkaWkpCisgICAgICAgICAgICA6IG1fdG9wTGVmdChpbnRSYWRpaS50b3BMZWZ0
KCkpCisgICAgICAgICAgICAsIG1fdG9wUmlnaHQoaW50UmFkaWkudG9wUmlnaHQoKSkKKyAgICAg
ICAgICAgICwgbV9ib3R0b21MZWZ0KGludFJhZGlpLmJvdHRvbUxlZnQoKSkKKyAgICAgICAgICAg
ICwgbV9ib3R0b21SaWdodChpbnRSYWRpaS5ib3R0b21SaWdodCgpKQorICAgICAgICB7CisgICAg
ICAgIH0KKwogICAgICAgICB2b2lkIHNldFRvcExlZnQoY29uc3QgRmxvYXRTaXplJiBzaXplKSB7
IG1fdG9wTGVmdCA9IHNpemU7IH0KICAgICAgICAgdm9pZCBzZXRUb3BSaWdodChjb25zdCBGbG9h
dFNpemUmIHNpemUpIHsgbV90b3BSaWdodCA9IHNpemU7IH0KICAgICAgICAgdm9pZCBzZXRCb3R0
b21MZWZ0KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkgeyBtX2JvdHRvbUxlZnQgPSBzaXplOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgKaW5kZXggOTU3NDY5Zi4u
MDk5ZWM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hT
aGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaApA
QCAtMzgsOCArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCb3hTaGFwZSA6IHB1
YmxpYyBTaGFwZSB7CiBwdWJsaWM6CiAgICAgQm94U2hhcGUoY29uc3QgRmxvYXRSb3VuZGVkUmVj
dCYgYm91bmRzKQotICAgICAgICA6IFNoYXBlKCkKLSAgICAgICAgLCBtX2JvdW5kcyhib3VuZHMp
CisgICAgICAgIDogbV9ib3VuZHMoYm91bmRzKQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5oCmluZGV4IDJiNmQ4NjguLjUy
MTRmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9seWdv
blNoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Qb2x5Z29uU2hh
cGUuaApAQCAtODMsOCArODMsNyBAQCBjbGFzcyBQb2x5Z29uU2hhcGUgOiBwdWJsaWMgU2hhcGUg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBvbHlnb25TaGFwZSk7CiBwdWJsaWM6CiAgICAg
UG9seWdvblNoYXBlKFBhc3NPd25QdHI8VmVjdG9yPEZsb2F0UG9pbnQ+PiB2ZXJ0aWNlcywgV2lu
ZFJ1bGUgZmlsbFJ1bGUpCi0gICAgICAgIDogU2hhcGUoKQotICAgICAgICAsIG1fcG9seWdvbih2
ZXJ0aWNlcywgZmlsbFJ1bGUpCisgICAgICAgIDogbV9wb2x5Z29uKHZlcnRpY2VzLCBmaWxsUnVs
ZSkKICAgICAgICAgLCBtX21hcmdpbkJvdW5kcyhudWxscHRyKQogICAgICAgICAsIG1fcGFkZGlu
Z0JvdW5kcyhudWxscHRyKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zaGFwZXMvUmFzdGVyU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvUmFzdGVyU2hhcGUuaAppbmRleCA4MTc2MzAzLi5jY2JiOGEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SYXN0ZXJTaGFwZS5oCkBAIC05MCw4ICs5MCw3IEBAIGNs
YXNzIFJhc3RlclNoYXBlIDogcHVibGljIFNoYXBlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShSYXN0ZXJTaGFwZSk7CiBwdWJsaWM6CiAgICAgUmFzdGVyU2hhcGUoUGFzc093blB0cjxSYXN0
ZXJTaGFwZUludGVydmFscz4gaW50ZXJ2YWxzLCBjb25zdCBJbnRTaXplJiBpbWFnZVNpemUpCi0g
ICAgICAgIDogU2hhcGUoKQotICAgICAgICAsIG1faW50ZXJ2YWxzKGludGVydmFscykKKyAgICAg
ICAgOiBtX2ludGVydmFscyhpbnRlcnZhbHMpCiAgICAgICAgICwgbV9pbWFnZVNpemUoaW1hZ2VT
aXplKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1JlY3RhbmdsZVNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1JlY3RhbmdsZVNoYXBlLmgKaW5kZXggMTY2ODcxMi4uNDdiYWQ1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUuaApAQCAtNDIsOCArNDIs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZWN0YW5nbGVTaGFwZSA6IHB1YmxpYyBT
aGFwZSB7CiBwdWJsaWM6CiAgICAgUmVjdGFuZ2xlU2hhcGUoY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZHMsIGNvbnN0IEZsb2F0U2l6ZSYgcmFkaWkpCi0gICAgICAgIDogU2hhcGUoKQotICAgICAgICAs
IG1fYm91bmRzKGJvdW5kcykKKyAgICAgICAgOiBtX2JvdW5kcyhib3VuZHMpCiAgICAgICAgICwg
bV9yYWRpaShyYWRpaSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1NoYXBlLmNwcAppbmRleCAyYTc4OTczLi5iODU3ZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcApAQCAtNDYsNyArNDYsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBjcmVhdGVCb3hTaGFwZShjb25z
dCBGbG9hdFJvdW5kZWRSZWN0JiBib3VuZHMpCitzdGF0aWMgUGFzc093blB0cjxTaGFwZT4gY3Jl
YXRlSW5zZXRTaGFwZShjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiBib3VuZHMpCiB7CiAgICAgQVNT
RVJUKGJvdW5kcy5yZWN0KCkud2lkdGgoKSA+PSAwICYmIGJvdW5kcy5yZWN0KCkuaGVpZ2h0KCkg
Pj0gMCk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBCb3hTaGFwZShib3VuZHMpKTsKQEAgLTEy
MywxNSArMTIzLDE1IEBAIFBhc3NPd25QdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVTaGFwZShjb25z
dCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlLCBjb25zdCBMYXlvdXRTCiAgICAgc3dpdGNoIChiYXNp
Y1NoYXBlLT50eXBlKCkpIHsKIAogICAgIGNhc2UgQmFzaWNTaGFwZTo6QmFzaWNTaGFwZVJlY3Rh
bmdsZVR5cGU6IHsKLSAgICAgICAgY29uc3QgQmFzaWNTaGFwZVJlY3RhbmdsZSogcmVjdGFuZ2xl
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNTaGFwZVJlY3RhbmdsZSo+KGJhc2ljU2hhcGUpOwor
ICAgICAgICBjb25zdCBCYXNpY1NoYXBlUmVjdGFuZ2xlJiByZWN0YW5nbGUgPSAqc3RhdGljX2Nh
c3Q8Y29uc3QgQmFzaWNTaGFwZVJlY3RhbmdsZSo+KGJhc2ljU2hhcGUpOwogICAgICAgICBGbG9h
dFJlY3QgYm91bmRzKAotICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUt
PngoKSwgYm94V2lkdGgpLAotICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5n
bGUtPnkoKSwgYm94SGVpZ2h0KSwKLSAgICAgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgocmVj
dGFuZ2xlLT53aWR0aCgpLCBib3hXaWR0aCksCi0gICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVu
Z3RoKHJlY3RhbmdsZS0+aGVpZ2h0KCksIGJveEhlaWdodCkpOworICAgICAgICAgICAgZmxvYXRW
YWx1ZUZvckxlbmd0aChyZWN0YW5nbGUueCgpLCBib3hXaWR0aCksCisgICAgICAgICAgICBmbG9h
dFZhbHVlRm9yTGVuZ3RoKHJlY3RhbmdsZS55KCksIGJveEhlaWdodCksCisgICAgICAgICAgICBm
bG9hdFZhbHVlRm9yTGVuZ3RoKHJlY3RhbmdsZS53aWR0aCgpLCBib3hXaWR0aCksCisgICAgICAg
ICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJlY3RhbmdsZS5oZWlnaHQoKSwgYm94SGVpZ2h0KSk7
CiAgICAgICAgIEZsb2F0U2l6ZSBjb3JuZXJSYWRpaSgKLSAgICAgICAgICAgIGZsb2F0VmFsdWVG
b3JMZW5ndGgocmVjdGFuZ2xlLT5jb3JuZXJSYWRpdXNYKCksIGJveFdpZHRoKSwKLSAgICAgICAg
ICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgocmVjdGFuZ2xlLT5jb3JuZXJSYWRpdXNZKCksIGJveEhl
aWdodCkpOworICAgICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUuY29ybmVy
UmFkaXVzWCgpLCBib3hXaWR0aCksCisgICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJl
Y3RhbmdsZS5jb3JuZXJSYWRpdXNZKCksIGJveEhlaWdodCkpOwogICAgICAgICBlbnN1cmVSYWRp
aURvTm90T3ZlcmxhcChib3VuZHMsIGNvcm5lclJhZGlpKTsKICAgICAgICAgRmxvYXRSZWN0IGxv
Z2ljYWxCb3VuZHMgPSBwaHlzaWNhbFJlY3RUb0xvZ2ljYWwoYm91bmRzLCBsb2dpY2FsQm94U2l6
ZS5oZWlnaHQoKSwgd3JpdGluZ01vZGUpOwogCkBAIC0xODcsOCArMTg3LDggQEAgUGFzc093blB0
cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVNoYXBlKGNvbnN0IEJhc2ljU2hhcGUqIGJhc2ljU2hhcGUs
IGNvbnN0IExheW91dFMKICAgICB9CiAKICAgICBjYXNlIEJhc2ljU2hhcGU6OkJhc2ljU2hhcGVQ
b2x5Z29uVHlwZTogewotICAgICAgICBjb25zdCBCYXNpY1NoYXBlUG9seWdvbiogcG9seWdvbiA9
IHN0YXRpY19jYXN0PGNvbnN0IEJhc2ljU2hhcGVQb2x5Z29uKj4oYmFzaWNTaGFwZSk7Ci0gICAg
ICAgIGNvbnN0IFZlY3RvcjxMZW5ndGg+JiB2YWx1ZXMgPSBwb2x5Z29uLT52YWx1ZXMoKTsKKyAg
ICAgICAgY29uc3QgQmFzaWNTaGFwZVBvbHlnb24mIHBvbHlnb24gPSAqc3RhdGljX2Nhc3Q8Y29u
c3QgQmFzaWNTaGFwZVBvbHlnb24qPihiYXNpY1NoYXBlKTsKKyAgICAgICAgY29uc3QgVmVjdG9y
PExlbmd0aD4mIHZhbHVlcyA9IHBvbHlnb24udmFsdWVzKCk7CiAgICAgICAgIHNpemVfdCB2YWx1
ZXNTaXplID0gdmFsdWVzLnNpemUoKTsKICAgICAgICAgQVNTRVJUKCEodmFsdWVzU2l6ZSAlIDIp
KTsKICAgICAgICAgT3duUHRyPFZlY3RvcjxGbG9hdFBvaW50Pj4gdmVydGljZXMgPSBhZG9wdFB0
cihuZXcgVmVjdG9yPEZsb2F0UG9pbnQ+KHZhbHVlc1NpemUgLyAyKSk7CkBAIC0xOTksMjIgKzE5
OSwyMiBAQCBQYXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRlU2hhcGUoY29uc3QgQmFzaWNT
aGFwZSogYmFzaWNTaGFwZSwgY29uc3QgTGF5b3V0UwogICAgICAgICAgICAgKCp2ZXJ0aWNlcylb
aSAvIDJdID0gcGh5c2ljYWxQb2ludFRvTG9naWNhbCh2ZXJ0ZXgsIGxvZ2ljYWxCb3hTaXplLmhl
aWdodCgpLCB3cml0aW5nTW9kZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzaGFwZSA9IGNyZWF0
ZVBvbHlnb25TaGFwZSh2ZXJ0aWNlcy5yZWxlYXNlKCksIHBvbHlnb24tPndpbmRSdWxlKCkpOwor
ICAgICAgICBzaGFwZSA9IGNyZWF0ZVBvbHlnb25TaGFwZSh2ZXJ0aWNlcy5yZWxlYXNlKCksIHBv
bHlnb24ud2luZFJ1bGUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGNhc2UgQmFz
aWNTaGFwZTo6QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlVHlwZTogewotICAgICAgICBjb25zdCBC
YXNpY1NoYXBlSW5zZXRSZWN0YW5nbGUqIHJlY3RhbmdsZSA9IHN0YXRpY19jYXN0PGNvbnN0IEJh
c2ljU2hhcGVJbnNldFJlY3RhbmdsZSo+KGJhc2ljU2hhcGUpOwotICAgICAgICBmbG9hdCBsZWZ0
ID0gZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUtPmxlZnQoKSwgYm94V2lkdGgpOwotICAg
ICAgICBmbG9hdCB0b3AgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJlY3RhbmdsZS0+dG9wKCksIGJv
eEhlaWdodCk7CisgICAgICAgIGNvbnN0IEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSYgcmVjdGFu
Z2xlID0gKnN0YXRpY19jYXN0PGNvbnN0IEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZSo+KGJhc2lj
U2hhcGUpOworICAgICAgICBmbG9hdCBsZWZ0ID0gZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5n
bGUubGVmdCgpLCBib3hXaWR0aCk7CisgICAgICAgIGZsb2F0IHRvcCA9IGZsb2F0VmFsdWVGb3JM
ZW5ndGgocmVjdGFuZ2xlLnRvcCgpLCBib3hIZWlnaHQpOwogICAgICAgICBGbG9hdFJlY3QgYm91
bmRzKAogICAgICAgICAgICAgbGVmdCwKICAgICAgICAgICAgIHRvcCwKLSAgICAgICAgICAgIGJv
eFdpZHRoIC0gbGVmdCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgocmVjdGFuZ2xlLT5yaWdodCgpLCBi
b3hXaWR0aCksCi0gICAgICAgICAgICBib3hIZWlnaHQgLSB0b3AgLSBmbG9hdFZhbHVlRm9yTGVu
Z3RoKHJlY3RhbmdsZS0+Ym90dG9tKCksIGJveEhlaWdodCkpOworICAgICAgICAgICAgYm94V2lk
dGggLSBsZWZ0IC0gZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUucmlnaHQoKSwgYm94V2lk
dGgpLAorICAgICAgICAgICAgYm94SGVpZ2h0IC0gdG9wIC0gZmxvYXRWYWx1ZUZvckxlbmd0aChy
ZWN0YW5nbGUuYm90dG9tKCksIGJveEhlaWdodCkpOwogICAgICAgICBGbG9hdFNpemUgY29ybmVy
UmFkaWkoCi0gICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJlY3RhbmdsZS0+Y29ybmVy
UmFkaXVzWCgpLCBib3hXaWR0aCksCi0gICAgICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJl
Y3RhbmdsZS0+Y29ybmVyUmFkaXVzWSgpLCBib3hIZWlnaHQpKTsKKyAgICAgICAgICAgIGZsb2F0
VmFsdWVGb3JMZW5ndGgocmVjdGFuZ2xlLmNvcm5lclJhZGl1c1goKSwgYm94V2lkdGgpLAorICAg
ICAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUuY29ybmVyUmFkaXVzWSgpLCBi
b3hIZWlnaHQpKTsKICAgICAgICAgZW5zdXJlUmFkaWlEb05vdE92ZXJsYXAoYm91bmRzLCBjb3Ju
ZXJSYWRpaSk7CiAgICAgICAgIEZsb2F0UmVjdCBsb2dpY2FsQm91bmRzID0gcGh5c2ljYWxSZWN0
VG9Mb2dpY2FsKGJvdW5kcywgbG9naWNhbEJveFNpemUuaGVpZ2h0KCksIHdyaXRpbmdNb2RlKTsK
IApAQCAtMjIzLDI0ICsyMjMsMjAgQEAgUGFzc093blB0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVNo
YXBlKGNvbnN0IEJhc2ljU2hhcGUqIGJhc2ljU2hhcGUsIGNvbnN0IExheW91dFMKICAgICB9CiAK
ICAgICBjYXNlIEJhc2ljU2hhcGU6OkJhc2ljU2hhcGVJbnNldFR5cGU6IHsKLSAgICAgICAgY29u
c3QgQmFzaWNTaGFwZUluc2V0KiByZWN0YW5nbGUgPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY1No
YXBlSW5zZXQqPihiYXNpY1NoYXBlKTsKLSAgICAgICAgZmxvYXQgbGVmdCA9IGZsb2F0VmFsdWVG
b3JMZW5ndGgocmVjdGFuZ2xlLT5sZWZ0KCksIGJveFdpZHRoKTsKLSAgICAgICAgZmxvYXQgdG9w
ID0gZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUtPnRvcCgpLCBib3hIZWlnaHQpOwotCisg
ICAgICAgIGNvbnN0IEJhc2ljU2hhcGVJbnNldCYgaW5zZXQgPSAqc3RhdGljX2Nhc3Q8Y29uc3Qg
QmFzaWNTaGFwZUluc2V0Kj4oYmFzaWNTaGFwZSk7CisgICAgICAgIGZsb2F0IGxlZnQgPSBmbG9h
dFZhbHVlRm9yTGVuZ3RoKGluc2V0LmxlZnQoKSwgYm94V2lkdGgpOworICAgICAgICBmbG9hdCB0
b3AgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKGluc2V0LnRvcCgpLCBib3hIZWlnaHQpOwogICAgICAg
ICBGbG9hdFJlY3QgcmVjdChsZWZ0LAogICAgICAgICAgICAgdG9wLAotICAgICAgICAgICAgYm94
V2lkdGggLSBsZWZ0IC0gZmxvYXRWYWx1ZUZvckxlbmd0aChyZWN0YW5nbGUtPnJpZ2h0KCksIGJv
eFdpZHRoKSwKLSAgICAgICAgICAgIGJveEhlaWdodCAtIHRvcCAtIGZsb2F0VmFsdWVGb3JMZW5n
dGgocmVjdGFuZ2xlLT5ib3R0b20oKSwgYm94SGVpZ2h0KSk7CisgICAgICAgICAgICBib3hXaWR0
aCAtIGxlZnQgLSBmbG9hdFZhbHVlRm9yTGVuZ3RoKGluc2V0LnJpZ2h0KCksIGJveFdpZHRoKSwK
KyAgICAgICAgICAgIGJveEhlaWdodCAtIHRvcCAtIGZsb2F0VmFsdWVGb3JMZW5ndGgoaW5zZXQu
Ym90dG9tKCksIGJveEhlaWdodCkpOwogICAgICAgICBGbG9hdFJlY3QgbG9naWNhbFJlY3QgPSBw
aHlzaWNhbFJlY3RUb0xvZ2ljYWwocmVjdCwgbG9naWNhbEJveFNpemUuaGVpZ2h0KCksIHdyaXRp
bmdNb2RlKTsKIAotICAgICAgICAvLyBGbG9hdFJvdW5kZWRSZWN0IGNvbnN0dWN0b3IgaGFzIGRp
ZmZlcmVudCBvcmRlciBmb3IgdGhlIGNvcm5lcnM6IHRvcExlZnQsIHRvcFJpZ2h0LCBib3R0b21M
ZWZ0LCBib3R0b21SaWdodAotICAgICAgICBGbG9hdFJvdW5kZWRSZWN0IGxvZ2ljYWxCb3VuZHMo
bG9naWNhbFJlY3QsCi0gICAgICAgICAgICByZWN0YW5nbGUtPnRvcExlZnRSYWRpdXMoKS5mbG9h
dFNpemUoKSwKLSAgICAgICAgICAgIHJlY3RhbmdsZS0+dG9wUmlnaHRSYWRpdXMoKS5mbG9hdFNp
emUoKSwKLSAgICAgICAgICAgIHJlY3RhbmdsZS0+Ym90dG9tTGVmdFJhZGl1cygpLmZsb2F0U2l6
ZSgpLAotICAgICAgICAgICAgcmVjdGFuZ2xlLT5ib3R0b21SaWdodFJhZGl1cygpLmZsb2F0U2l6
ZSgpKTsKLQotICAgICAgICBzaGFwZSA9IGNyZWF0ZUJveFNoYXBlKGxvZ2ljYWxCb3VuZHMpOwor
ICAgICAgICBzaGFwZSA9IGNyZWF0ZUluc2V0U2hhcGUoRmxvYXRSb3VuZGVkUmVjdChsb2dpY2Fs
UmVjdCwKKyAgICAgICAgICAgIGluc2V0LnRvcExlZnRSYWRpdXMoKS5mbG9hdFNpemUoKSwKKyAg
ICAgICAgICAgIGluc2V0LnRvcFJpZ2h0UmFkaXVzKCkuZmxvYXRTaXplKCksCisgICAgICAgICAg
ICBpbnNldC5ib3R0b21MZWZ0UmFkaXVzKCkuZmxvYXRTaXplKCksCisgICAgICAgICAgICBpbnNl
dC5ib3R0b21SaWdodFJhZGl1cygpLmZsb2F0U2l6ZSgpKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIApAQCAtMjU1LDcgKzI1MSw3IEBAIFBhc3NPd25QdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVT
aGFwZShjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlLCBjb25zdCBMYXlvdXRTCiAgICAgcmV0
dXJuIHNoYXBlLnJlbGVhc2UoKTsKIH0KIAotUGFzc093blB0cjxTaGFwZT4gU2hhcGU6OmNyZWF0
ZVNoYXBlKGNvbnN0IFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UsIGZsb2F0IHRocmVzaG9sZCwgY29u
c3QgTGF5b3V0U2l6ZSYsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBM
ZW5ndGggcGFkZGluZykKK1Bhc3NPd25QdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVSYXN0ZXJTaGFw
ZShjb25zdCBTdHlsZUltYWdlKiBzdHlsZUltYWdlLCBmbG9hdCB0aHJlc2hvbGQsIGNvbnN0IExh
eW91dFNpemUmLCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgTGVuZ3RoIG1hcmdpbiwgTGVuZ3Ro
IHBhZGRpbmcpCiB7CiAgICAgQVNTRVJUKHN0eWxlSW1hZ2UgJiYgc3R5bGVJbWFnZS0+aXNDYWNo
ZWRJbWFnZSgpICYmIHN0eWxlSW1hZ2UtPmNhY2hlZEltYWdlKCkgJiYgc3R5bGVJbWFnZS0+Y2Fj
aGVkSW1hZ2UoKS0+aW1hZ2UoKSk7CiAKQEAgLTI5OCwxNiArMjk0LDE4IEBAIFBhc3NPd25QdHI8
U2hhcGU+IFNoYXBlOjpjcmVhdGVTaGFwZShjb25zdCBTdHlsZUltYWdlKiBzdHlsZUltYWdlLCBm
bG9hdCB0aHJlc2hvCiAgICAgcmV0dXJuIHJhc3RlclNoYXBlLnJlbGVhc2UoKTsKIH0KIAotUGFz
c093blB0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVNoYXBlKGNvbnN0IFJvdW5kZWRSZWN0JiByb3Vu
ZGVkUmVjdCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBw
YWRkaW5nKQorUGFzc093blB0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZUJveFNoYXBlKGNvbnN0IFJv
dW5kZWRSZWN0JiByb3VuZGVkUmVjdCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExlbmd0aCBt
YXJnaW4sIExlbmd0aCBwYWRkaW5nKQogewotICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIHJvdW5k
ZWRSZWN0LnJlY3QoKS53aWR0aCgpLCByb3VuZGVkUmVjdC5yZWN0KCkuaGVpZ2h0KCkpOwotICAg
IEZsb2F0Um91bmRlZFJlY3QgYm91bmRzKHJlY3QsIHJvdW5kZWRSZWN0LnJhZGlpKCkudG9wTGVm
dCgpLCByb3VuZGVkUmVjdC5yYWRpaSgpLnRvcFJpZ2h0KCksIHJvdW5kZWRSZWN0LnJhZGlpKCku
Ym90dG9tTGVmdCgpLCByb3VuZGVkUmVjdC5yYWRpaSgpLmJvdHRvbVJpZ2h0KCkpOworICAgIEFT
U0VSVChyb3VuZGVkUmVjdC5yZWN0KCkud2lkdGgoKSA+PSAwICYmIHJvdW5kZWRSZWN0LnJlY3Qo
KS5oZWlnaHQoKSA+PSAwKTsKIAotICAgIE93blB0cjxTaGFwZT4gc2hhcGUgPSBjcmVhdGVCb3hT
aGFwZShib3VuZHMpOworICAgIEZsb2F0UmVjdCByZWN0KDAsIDAsIHJvdW5kZWRSZWN0LnJlY3Qo
KS53aWR0aCgpLCByb3VuZGVkUmVjdC5yZWN0KCkuaGVpZ2h0KCkpOworICAgIEZsb2F0Um91bmRl
ZFJlY3QgYm91bmRzKHJlY3QsIHJvdW5kZWRSZWN0LnJhZGlpKCkpOworICAgIE93blB0cjxTaGFw
ZT4gc2hhcGUgPSBhZG9wdFB0cihuZXcgQm94U2hhcGUoYm91bmRzKSk7CiAgICAgc2hhcGUtPm1f
d3JpdGluZ01vZGUgPSB3cml0aW5nTW9kZTsKICAgICBzaGFwZS0+bV9tYXJnaW4gPSBmbG9hdFZh
bHVlRm9yTGVuZ3RoKG1hcmdpbiwgMCk7CiAgICAgc2hhcGUtPm1fcGFkZGluZyA9IGZsb2F0VmFs
dWVGb3JMZW5ndGgocGFkZGluZywgMCk7CiAKICAgICByZXR1cm4gc2hhcGUucmVsZWFzZSgpOwog
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlLmgKaW5kZXggOGI3ZmM5Yy4uMzQ1Mzk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGUuaApAQCAtNjgsOCArNjgsOCBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAg
IHN0YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBjcmVhdGVTaGFwZShjb25zdCBCYXNpY1NoYXBlKiwg
Y29uc3QgTGF5b3V0U2l6ZSYgbG9naWNhbEJveFNpemUsIFdyaXRpbmdNb2RlLCBMZW5ndGggbWFy
Z2luLCBMZW5ndGggcGFkZGluZyk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0
ZVNoYXBlKGNvbnN0IFN0eWxlSW1hZ2UqLCBmbG9hdCB0aHJlc2hvbGQsIGNvbnN0IExheW91dFNp
emUmIGxvZ2ljYWxCb3hTaXplLCBXcml0aW5nTW9kZSwgTGVuZ3RoIG1hcmdpbiwgTGVuZ3RoIHBh
ZGRpbmcpOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBjcmVhdGVTaGFwZShjb25zdCBS
b3VuZGVkUmVjdCYsIFdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGluZyk7
CisgICAgc3RhdGljIFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZVJhc3RlclNoYXBlKGNvbnN0IFN0
eWxlSW1hZ2UqLCBmbG9hdCB0aHJlc2hvbGQsIGNvbnN0IExheW91dFNpemUmIGxvZ2ljYWxCb3hT
aXplLCBXcml0aW5nTW9kZSwgTGVuZ3RoIG1hcmdpbiwgTGVuZ3RoIHBhZGRpbmcpOworICAgIHN0
YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBjcmVhdGVCb3hTaGFwZShjb25zdCBSb3VuZGVkUmVjdCYs
IFdyaXRpbmdNb2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGluZyk7CiAKICAgICB2aXJ0
dWFsIH5TaGFwZSgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c2hhcGVzL1NoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlSW5mby5jcHAKaW5kZXggYWU0YzYzYS4uNTZmZWI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcApAQCAtNzQsMTEgKzc0LDExIEBAIGNvbnN0
IFNoYXBlJiBTaGFwZUluZm88UmVuZGVyVHlwZT46OmNvbXB1dGVkU2hhcGUoKSBjb25zdAogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFNoYXBlVmFsdWU6OkltYWdlOgogICAgICAgICBBU1NFUlQo
c2hhcGVWYWx1ZS0+aW1hZ2UoKSk7Ci0gICAgICAgIG1fc2hhcGUgPSBTaGFwZTo6Y3JlYXRlU2hh
cGUoc2hhcGVWYWx1ZS0+aW1hZ2UoKSwgc2hhcGVJbWFnZVRocmVzaG9sZCwgbV9zaGFwZUxvZ2lj
YWxTaXplLCB3cml0aW5nTW9kZSwgbWFyZ2luLCBwYWRkaW5nKTsKKyAgICAgICAgbV9zaGFwZSA9
IFNoYXBlOjpjcmVhdGVSYXN0ZXJTaGFwZShzaGFwZVZhbHVlLT5pbWFnZSgpLCBzaGFwZUltYWdl
VGhyZXNob2xkLCBtX3NoYXBlTG9naWNhbFNpemUsIHdyaXRpbmdNb2RlLCBtYXJnaW4sIHBhZGRp
bmcpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNoYXBlVmFsdWU6OkJveDogewogICAgICAg
ICBjb25zdCBSb3VuZGVkUmVjdCYgc2hhcGVSZWN0ID0gbV9yZW5kZXJlci5zdHlsZSgpLmdldFJv
dW5kZWRCb3JkZXJGb3IoTGF5b3V0UmVjdChMYXlvdXRQb2ludCgpLCBtX3NoYXBlTG9naWNhbFNp
emUpLCAmKG1fcmVuZGVyZXIudmlldygpKSk7Ci0gICAgICAgIG1fc2hhcGUgPSBTaGFwZTo6Y3Jl
YXRlU2hhcGUoc2hhcGVSZWN0LCB3cml0aW5nTW9kZSwgbWFyZ2luLCBwYWRkaW5nKTsKKyAgICAg
ICAgbV9zaGFwZSA9IFNoYXBlOjpjcmVhdGVCb3hTaGFwZShzaGFwZVJlY3QsIHdyaXRpbmdNb2Rl
LCBtYXJnaW4sIHBhZGRpbmcpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBTaGFw
ZVZhbHVlOjpPdXRzaWRlOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>