<?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>123130</bug_id>
          
          <creation_ts>2013-10-21 18:58:39 -0700</creation_ts>
          <short_desc>Remote Layer Tree: Implement superlayer, removeFromSuperlayer, replaceSublayer, and adoptSublayers</short_desc>
          <delta_ts>2013-10-23 01:23:52 -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>WebKit2</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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>942125</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-21 18:58:39 -0700</bug_when>
    <thetext>There are a few remaining unimplemented layer hierarchy properties that were left that way because they&apos;re more complicated than the others. But, we need them!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942132</commentid>
    <comment_count>1</comment_count>
      <attachid>214807</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-21 19:17:19 -0700</bug_when>
    <thetext>Created attachment 214807
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942293</commentid>
    <comment_count>2</comment_count>
      <attachid>214807</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-10-22 07:26:44 -0700</bug_when>
    <thetext>Comment on attachment 214807
patch

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

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:74
&gt; +        static_cast&lt;PlatformCALayerRemote*&gt;(layer.get())-&gt;m_superlayer = nullptr;

Can we add a checked cast function for this (e.g. toPlatformCALayerRemote() that asserts the type is PlatformCALayerRemote)?

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h:157
&gt; +    PlatformCALayer* m_superlayer;

Seems like m_superlayer is always a PlatformCALayerRemote. Can we make the type more specific here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942362</commentid>
    <comment_count>3</comment_count>
      <attachid>214872</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-22 11:37:36 -0700</bug_when>
    <thetext>Created attachment 214872
address sam&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942378</commentid>
    <comment_count>4</comment_count>
      <attachid>214876</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-22 12:29:48 -0700</bug_when>
    <thetext>Created attachment 214876
we&apos;ll assert that they&apos;re PlatformCALayerRemotes in just one place</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942538</commentid>
    <comment_count>5</comment_count>
      <attachid>214876</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-22 17:54:34 -0700</bug_when>
    <thetext>Comment on attachment 214876
we&apos;ll assert that they&apos;re PlatformCALayerRemotes in just one place

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

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:154
&gt; +    PlatformCALayerList&amp; siblings = m_children;

I don&apos;t think you need to use this local variable. Also, it is misnamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942616</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-23 01:23:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/157852</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214807</attachid>
            <date>2013-10-21 19:17:19 -0700</date>
            <delta_ts>2013-10-22 11:37:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>layerhier.diff</filename>
            <type>text/plain</type>
            <size>8866</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiM2QxNjBhLi5lODE1Yjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjMg
QEAKIDIwMTMtMTAtMjEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgUmVtb3RlIExheWVyIFRyZWU6IEltcGxlbWVudCBzdXBlcmxheWVyLCByZW1vdmVG
cm9tU3VwZXJsYXllciwgcmVwbGFjZVN1YmxheWVyLCBhbmQgYWRvcHRTdWJsYXllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzEzMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUg
cmVtYWluaW5nIGxheWVyLWhpZXJhcmNoeS1tYW5pcHVsYXRpb24gbWV0aG9kcy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAg
ICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlKToKKyAg
ICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZSk6Cisg
ICAgICAgIE51bGwgb3V0IHRoZSBzdXBlcmxheWVyIGJhY2stcG9pbnRlciBvbiBvdXIgc3VibGF5
ZXJzLgorCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJh
bnNhY3Rpb24pOgorICAgICAgICBFbnN1cmUgdGhhdCBvdXIgY2hpbGRyZW4gYWxsIGhhdmUgdXMg
YXMgdGhlaXIgc3VwZXJsYXllci4KKworICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpz
dXBlcmxheWVyKToKKyAgICAgICAgUmV0dXJuIHRoZSBzdG9yZWQgc3VwZXJsYXllciBwb2ludGVy
LgorCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUZyb21TdXBlcmxheWVy
KToKKyAgICAgICAgQ2FsbCByZW1vdmVTdWJsYXllciBvbiBvdXIgc3VwZXJsYXllciwgaWYgd2Ug
aGF2ZSBvbmUuCisKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVtb3ZlU3VibGF5
ZXIpOgorICAgICAgICBSZW1vdmUgdGhlIGdpdmVuIGxheWVyIGlmIGl0J3MgaW4gb3VyIGxpc3Qg
b2Ygc3VibGF5ZXJzLCBjbGVhciBpdHMKKyAgICAgICAgcmVmZXJlbmNlIHRvIHVzLCBhbmQgbm90
ZSB0aGF0IHdlJ2xsIG5lZWQgdG8gY29tbWl0IGhpZXJhcmNoeSBjaGFuZ2VzLgorCisgICAgICAg
IChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldFN1YmxheWVycyk6CisgICAgICAgIHJlbW92ZUFs
bFN1YmxheWVycygpIGJlZm9yZSBzZXR0aW5nIHRoZSBuZXcgbGlzdCwgdG8gY2xlYXIgc3VwZXJs
YXllcgorICAgICAgICBiYWNrLXBvaW50ZXJzLiBDaGlsZHJlbiB3aWxsIGJlIHByb3RlY3RlZCBi
eSB0aGUgUGxhdGZvcm1DQUxheWVyTGlzdC4KKyAgICAgICAgVXBkYXRlIHRoZSBuZXcgbGF5ZXJz
JyBzdXBlcmxheWVycy4KKworICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVB
bGxTdWJsYXllcnMpOgorICAgICAgICBSZW1vdmUgZWFjaCBzdWJsYXllciBmcm9tIGl0cyBzdXBl
cmxheWVyLCB0aGVuIGNsZWFyIG91ciBsaXN0IG9mIGNoaWxkcmVuLgorCisgICAgICAgIChQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGU6OmFwcGVuZFN1YmxheWVyKToKKyAgICAgICAgKFBsYXRmb3JtQ0FM
YXllclJlbW90ZTo6aW5zZXJ0U3VibGF5ZXIpOgorICAgICAgICBQcm90ZWN0IHRoZSBsYXllciBm
cm9tIGRlbGV0aW9uLCBzbyB0aGF0IHdlIGNhbiByZW1vdmUgaXQgZnJvbSBpdHMgcHJpb3IKKyAg
ICAgICAgc3VwZXJsYXllciBiZWZvcmUgYXBwZW5kaW5nIG9yIGluc2VydGluZyBpdC4KKworICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZXBsYWNlU3VibGF5ZXIpOgorICAgICAgICBG
aW5kIHRoZSByZWZlcmVuY2Ugc3VibGF5ZXIsIGlmIGl0IGV4aXN0cywgYW5kIHJlcGxhY2UgaXQg
d2l0aCB0aGUgbmV3IG9uZS4KKworICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZG9w
dFN1YmxheWVycyk6CisgICAgICAgIGFkb3B0U3VibGF5ZXJzIGlzIHJlYWxseSBqdXN0ICJzZXQg
c3VibGF5ZXJzIHRvIHRoaXMgb3RoZXIgbGF5ZXIncyBzdWJsYXllcnMiLgorICAgICAgICBTaW5j
ZSBzZXRTdWJsYXllcnMgYWxyZWFkeSByZW1vdmVzIGxheWVycyBmcm9tIHRoZSBleGlzdGluZyBz
dXBlcmxheWVyLAorICAgICAgICB3ZSBjYW4ganVzdCBnbyBhaGVhZCBhbmQgY2FsbCBpdC4KKwor
ICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkpOgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkpOgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25Gb3JLZXkpOgorICAgICAgICBB
ZGQgc29tZSBBU1NFUlRfTk9UX1JFQUNIRURzIGluIGFuaW1hdGlvbiBjb2RlLgorICAgICAgICBX
ZSBvdWdodCBub3QgZ2V0IGhlcmUgYmVjYXVzZSB3ZSd2ZSBkaXNhYmxlZCBoYXJkd2FyZSBhbmlt
YXRpb25zCisgICAgICAgIGluIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmg6CisgICAgICAgIEFk
ZCBtX3N1cGVybGF5ZXIgYW5kIHJlbW92ZVN1YmxheWVyKCkuCisKKzIwMTMtMTAtMjEgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKICAgICAgICAgR2l2ZSB1cCBvbiBi
dWlsZGluZyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZHVtcCBvbiBMaW9uLCBpdCBqdXN0
IHdvbid0IHdvcmsuCiAKICAgICAgICAgVGhpcyBkZWZpbml0ZWx5IG91Z2h0IHRvIGZpeCB0aGUg
YnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggM2FmYmQ1NS4uZTY1NzEx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtNTcsNiArNTcsNyBAQCBQYXNz
UmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUoTGF5
ZXJUeXBlIGxheWVyVHlwZSwgUAogUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25l
ciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4dCkKICAgICA6IFBsYXRmb3JtQ0FMYXll
cihsYXllclR5cGUsIG93bmVyKQogICAgICwgbV9sYXllcklEKGdlbmVyYXRlTGF5ZXJJRCgpKQor
ICAgICwgbV9zdXBlcmxheWVyKG51bGxwdHIpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKIHsK
ICAgICBtX2NvbnRleHQtPmxheWVyV2FzQ3JlYXRlZCh0aGlzLCBsYXllclR5cGUpOwpAQCAtNjks
NiArNzAsOCBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gUGxhdGZvcm1DQUxheWVyUmVt
b3RlOjpjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqCiAKIFBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZSgpCiB7CisgICAgZm9yIChjb25zdCBhdXRvJiBsYXll
ciA6IG1fY2hpbGRyZW4pCisgICAgICAgIHN0YXRpY19jYXN0PFBsYXRmb3JtQ0FMYXllclJlbW90
ZSo+KGxheWVyLmdldCgpKS0+bV9zdXBlcmxheWVyID0gbnVsbHB0cjsKICAgICBtX2NvbnRleHQt
PmxheWVyV2lsbEJlRGVzdHJveWVkKHRoaXMpOwogfQogCkBAIC05MCw2ICs5Myw3IEBAIHZvaWQg
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uCiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2hpbGRy
ZW4uc2l6ZSgpOyArK2kpIHsKICAgICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBjaGlsZCA9
IHN0YXRpY19jYXN0PFBsYXRmb3JtQ0FMYXllclJlbW90ZSo+KG1fY2hpbGRyZW5baV0uZ2V0KCkp
OworICAgICAgICBBU1NFUlQoY2hpbGQtPnN1cGVybGF5ZXIoKSA9PSB0aGlzKTsKICAgICAgICAg
Y2hpbGQtPnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pOwogICAgIH0KIH0K
QEAgLTEyNywyOCArMTMxLDQ3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRDb250
ZW50c0NoYW5nZWQoKQogCiBQbGF0Zm9ybUNBTGF5ZXIqIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6
c3VwZXJsYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIG1f
c3VwZXJsYXllcjsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUZyb21T
dXBlcmxheWVyKCkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBpZiAoIW1fc3Vw
ZXJsYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc3RhdGljX2Nhc3Q8UGxhdGZvcm1DQUxh
eWVyUmVtb3RlKj4obV9zdXBlcmxheWVyKS0+cmVtb3ZlU3VibGF5ZXIodGhpcyk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVTdWJsYXllcihQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUqIGxheWVyKQoreworICAgIFBsYXRmb3JtQ0FMYXllckxpc3QmIHNpYmxpbmdzID0gbV9j
aGlsZHJlbjsKKyAgICBzaXplX3Qgc2libGluZ0luZGV4ID0gc2libGluZ3MuZmluZChsYXllcik7
CisgICAgaWYgKHNpYmxpbmdJbmRleCAhPSBub3RGb3VuZCkKKyAgICAgICAgc2libGluZ3MucmVt
b3ZlKHNpYmxpbmdJbmRleCk7CisgICAgbGF5ZXItPm1fc3VwZXJsYXllciA9IG51bGxwdHI7Cisg
ICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGU6OnNldFN1YmxheWVycyhjb25zdCBQbGF0Zm9ybUNBTGF5ZXJMaXN0JiBsaXN0KQogewogI2lm
bmRlZiBBU1NFUlRfRElTQUJMRUQKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGxheWVyIDogbGlzdCkg
eworICAgIGZvciAoY29uc3QgYXV0byYgbGF5ZXIgOiBsaXN0KQogICAgICAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTihsYXllci0+aXNSZW1vdGUoKSk7Ci0gICAgfQogI2VuZGlm
CiAKKyAgICByZW1vdmVBbGxTdWJsYXllcnMoKTsKICAgICBtX2NoaWxkcmVuID0gbGlzdDsKKwor
ICAgIGZvciAoY29uc3QgYXV0byYgbGF5ZXIgOiBsaXN0KQorICAgICAgICBzdGF0aWNfY2FzdDxQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUqPihsYXllci5nZXQoKSktPm1fc3VwZXJsYXllciA9IHRoaXM7
CisKICAgICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6cmVtb3ZlQWxsU3VibGF5ZXJzKCkKIHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGxh
eWVyIDogbV9jaGlsZHJlbikKKyAgICAgICAgbGF5ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7
CiAgICAgbV9jaGlsZHJlbi5jbGVhcigpOwogICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGll
c0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNoaWxkcmVuQ2hhbmdlZCk7CiB9
CkBAIC0xNTYsMzkgKzE3OSw2MiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVtb3Zl
QWxsU3VibGF5ZXJzKCkKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphcHBlbmRTdWJsYXll
cihQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKGxheWVyLT5pc1JlbW90ZSgpKTsKKyAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiBsYXllclByb3RlY3RvcihsYXllcik7CiAKKyAgICBsYXllci0+cmVtb3ZlRnJvbVN1cGVybGF5
ZXIoKTsKICAgICBtX2NoaWxkcmVuLmFwcGVuZChsYXllcik7CisgICAgc3RhdGljX2Nhc3Q8UGxh
dGZvcm1DQUxheWVyUmVtb3RlKj4obGF5ZXIpLT5tX3N1cGVybGF5ZXIgPSB0aGlzOwogICAgIG1f
cHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OkNoaWxkcmVuQ2hhbmdlZCk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpp
bnNlcnRTdWJsYXllcihQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyLCBzaXplX3QgaW5kZXgpCiB7CiAg
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04obGF5ZXItPmlzUmVtb3RlKCkpOwor
ICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGxheWVyUHJvdGVjdG9yKGxheWVyKTsKIAorICAg
IGxheWVyLT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOwogICAgIG1fY2hpbGRyZW4uaW5zZXJ0KGlu
ZGV4LCBsYXllcik7CisgICAgc3RhdGljX2Nhc3Q8UGxhdGZvcm1DQUxheWVyUmVtb3RlKj4obGF5
ZXIpLT5tX3N1cGVybGF5ZXIgPSB0aGlzOwogICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGll
c0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNoaWxkcmVuQ2hhbmdlZCk7CiB9
CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZXBsYWNlU3VibGF5ZXIoUGxhdGZvcm1D
QUxheWVyKiByZWZlcmVuY2UsIFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCiB7Ci0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04obGF5
ZXItPmlzUmVtb3RlKCkpOworICAgIEFTU0VSVChyZWZlcmVuY2UtPnN1cGVybGF5ZXIoKSA9PSB0
aGlzKTsKKyAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBsYXllclByb3RlY3RvcihsYXllcik7
CisKKyAgICBsYXllci0+cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKTsKKyAgICBzaXplX3QgcmVmZXJl
bmNlSW5kZXggPSBtX2NoaWxkcmVuLmZpbmQocmVmZXJlbmNlKTsKKyAgICBpZiAocmVmZXJlbmNl
SW5kZXggIT0gbm90Rm91bmQpIHsKKyAgICAgICAgbV9jaGlsZHJlbltyZWZlcmVuY2VJbmRleF0t
PnJlbW92ZUZyb21TdXBlcmxheWVyKCk7CisgICAgICAgIG1fY2hpbGRyZW4ucmVtb3ZlKHJlZmVy
ZW5jZUluZGV4KTsKKyAgICAgICAgbV9jaGlsZHJlbi5pbnNlcnQocmVmZXJlbmNlSW5kZXgsIGxh
eWVyKTsKKyAgICB9CisKKyAgICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQpOwogfQogCiB2b2lkIFBs
YXRmb3JtQ0FMYXllclJlbW90ZTo6YWRvcHRTdWJsYXllcnMoUGxhdGZvcm1DQUxheWVyKiBzb3Vy
Y2UpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04oc291cmNlLT5pc1JlbW90ZSgpKTsKKyAgICBzZXRTdWJsYXllcnMoc3Rh
dGljX2Nhc3Q8UGxhdGZvcm1DQUxheWVyUmVtb3RlKj4oc291cmNlKS0+bV9jaGlsZHJlbik7CiB9
CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkoY29uc3Qg
U3RyaW5nJiBrZXksIFBsYXRmb3JtQ0FBbmltYXRpb24qIGFuaW1hdGlvbikKIHsKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92
ZUFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkKIHsKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGU6OmFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkKIHsKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKwogICAgIHJldHVybiBudWxscHRyOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuaAppbmRleCBmYTdmMWJmLi5iYzA1Y2Q0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxh
eWVyUmVtb3RlLmgKQEAgLTE0OSwxMCArMTQ5LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBB
VlBsYXllckxheWVyICpwbGF5ZXJMYXllcigpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdm9pZCBl
bnN1cmVCYWNraW5nU3RvcmUoKTsKKyAgICB2b2lkIHJlbW92ZVN1YmxheWVyKFBsYXRmb3JtQ0FM
YXllclJlbW90ZSopOwogCiAgICAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVySUQg
bV9sYXllcklEOwogICAgIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRp
ZXMgbV9wcm9wZXJ0aWVzOwogICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QgbV9jaGls
ZHJlbjsKKyAgICBQbGF0Zm9ybUNBTGF5ZXIqIG1fc3VwZXJsYXllcjsKIAogICAgIFJlbW90ZUxh
eWVyVHJlZUNvbnRleHQqIG1fY29udGV4dDsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214872</attachid>
            <date>2013-10-22 11:37:36 -0700</date>
            <delta_ts>2013-10-22 12:29:48 -0700</delta_ts>
            <desc>address sam&apos;s comments</desc>
            <filename>layerhier.diff</filename>
            <type>text/plain</type>
            <size>10274</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiZDhmYTQxLi5kZDNjZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEg
QEAKKzIwMTMtMTAtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3RlIExheWVyIFRyZWU6IEltcGxlbWVudCBzdXBlcmxheWVyLCByZW1vdmVG
cm9tU3VwZXJsYXllciwgcmVwbGFjZVN1YmxheWVyLCBhbmQgYWRvcHRTdWJsYXllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzEzMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUg
cmVtYWluaW5nIGxheWVyLWhpZXJhcmNoeS1tYW5pcHVsYXRpb24gbWV0aG9kcy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAg
ICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlKToKKyAg
ICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZSk6Cisg
ICAgICAgIE51bGwgb3V0IHRoZSBzdXBlcmxheWVyIGJhY2stcG9pbnRlciBvbiBvdXIgc3VibGF5
ZXJzLgorCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJh
bnNhY3Rpb24pOgorICAgICAgICBFbnN1cmUgdGhhdCBvdXIgY2hpbGRyZW4gYWxsIGhhdmUgdXMg
YXMgdGhlaXIgc3VwZXJsYXllci4KKworICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpz
dXBlcmxheWVyKToKKyAgICAgICAgUmV0dXJuIHRoZSBzdG9yZWQgc3VwZXJsYXllciBwb2ludGVy
LgorCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUZyb21TdXBlcmxheWVy
KToKKyAgICAgICAgQ2FsbCByZW1vdmVTdWJsYXllciBvbiBvdXIgc3VwZXJsYXllciwgaWYgd2Ug
aGF2ZSBvbmUuCisKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVtb3ZlU3VibGF5
ZXIpOgorICAgICAgICBSZW1vdmUgdGhlIGdpdmVuIGxheWVyIGlmIGl0J3MgaW4gb3VyIGxpc3Qg
b2Ygc3VibGF5ZXJzLCBjbGVhciBpdHMKKyAgICAgICAgcmVmZXJlbmNlIHRvIHVzLCBhbmQgbm90
ZSB0aGF0IHdlJ2xsIG5lZWQgdG8gY29tbWl0IGhpZXJhcmNoeSBjaGFuZ2VzLgorCisgICAgICAg
IChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldFN1YmxheWVycyk6CisgICAgICAgIHJlbW92ZUFs
bFN1YmxheWVycygpIGJlZm9yZSBzZXR0aW5nIHRoZSBuZXcgbGlzdCwgdG8gY2xlYXIgc3VwZXJs
YXllcgorICAgICAgICBiYWNrLXBvaW50ZXJzLiBDaGlsZHJlbiB3aWxsIGJlIHByb3RlY3RlZCBi
eSB0aGUgUGxhdGZvcm1DQUxheWVyTGlzdC4KKyAgICAgICAgVXBkYXRlIHRoZSBuZXcgbGF5ZXJz
JyBzdXBlcmxheWVycy4KKworICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVB
bGxTdWJsYXllcnMpOgorICAgICAgICBSZW1vdmUgZWFjaCBzdWJsYXllciBmcm9tIGl0cyBzdXBl
cmxheWVyLCB0aGVuIGNsZWFyIG91ciBsaXN0IG9mIGNoaWxkcmVuLgorCisgICAgICAgIChQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGU6OmFwcGVuZFN1YmxheWVyKToKKyAgICAgICAgKFBsYXRmb3JtQ0FM
YXllclJlbW90ZTo6aW5zZXJ0U3VibGF5ZXIpOgorICAgICAgICBQcm90ZWN0IHRoZSBsYXllciBm
cm9tIGRlbGV0aW9uLCBzbyB0aGF0IHdlIGNhbiByZW1vdmUgaXQgZnJvbSBpdHMgcHJpb3IKKyAg
ICAgICAgc3VwZXJsYXllciBiZWZvcmUgYXBwZW5kaW5nIG9yIGluc2VydGluZyBpdC4KKworICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZXBsYWNlU3VibGF5ZXIpOgorICAgICAgICBG
aW5kIHRoZSByZWZlcmVuY2Ugc3VibGF5ZXIsIGlmIGl0IGV4aXN0cywgYW5kIHJlcGxhY2UgaXQg
d2l0aCB0aGUgbmV3IG9uZS4KKworICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZG9w
dFN1YmxheWVycyk6CisgICAgICAgIGFkb3B0U3VibGF5ZXJzIGlzIHJlYWxseSBqdXN0ICJzZXQg
c3VibGF5ZXJzIHRvIHRoaXMgb3RoZXIgbGF5ZXIncyBzdWJsYXllcnMiLgorICAgICAgICBTaW5j
ZSBzZXRTdWJsYXllcnMgYWxyZWFkeSByZW1vdmVzIGxheWVycyBmcm9tIHRoZSBleGlzdGluZyBz
dXBlcmxheWVyLAorICAgICAgICB3ZSBjYW4ganVzdCBnbyBhaGVhZCBhbmQgY2FsbCBpdC4KKwor
ICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkpOgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkpOgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25Gb3JLZXkpOgorICAgICAgICBB
ZGQgc29tZSBBU1NFUlRfTk9UX1JFQUNIRURzIGluIGFuaW1hdGlvbiBjb2RlLgorICAgICAgICBX
ZSBvdWdodCBub3QgZ2V0IGhlcmUgYmVjYXVzZSB3ZSd2ZSBkaXNhYmxlZCBoYXJkd2FyZSBhbmlt
YXRpb25zCisgICAgICAgIGluIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmg6CisgICAgICAgIEFk
ZCBtX3N1cGVybGF5ZXIgYW5kIHJlbW92ZVN1YmxheWVyKCkuCisKIDIwMTMtMTAtMjEgIE1hcmsg
Um93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSB2ZXJzaW9uIG9mIFdlYktp
dFN5c3RlbUludGVyZmFjZSBmb3IgTWF2ZXJpY2tzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUu
Y3BwCmluZGV4IDNhZmJkNTUuLjU5NjQyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5j
cHAKQEAgLTQ5LDYgKzQ5LDEyIEBAIHN0YXRpYyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6
TGF5ZXJJRCBnZW5lcmF0ZUxheWVySUQoKQogICAgIHJldHVybiArK2xheWVySUQ7CiB9CiAKK3N0
YXRpYyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIHRvUGxhdGZvcm1DQUxheWVyUmVtb3RlKFBsYXRm
b3JtQ0FMYXllciogbGF5ZXIpCit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIWxheWVyIHx8IGxheWVyLT5pc1JlbW90ZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
UGxhdGZvcm1DQUxheWVyUmVtb3RlKj4obGF5ZXIpOworfQorCiBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FMYXllcj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUoTGF5ZXJUeXBlIGxheWVyVHlw
ZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCog
Y29udGV4dCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FMYXllclJlbW90
ZShsYXllclR5cGUsIG93bmVyLCBjb250ZXh0KSk7CkBAIC01Nyw2ICs2Myw3IEBAIFBhc3NSZWZQ
dHI8UGxhdGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNyZWF0ZShMYXllclR5
cGUgbGF5ZXJUeXBlLCBQCiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OlBsYXRmb3JtQ0FMYXllclJl
bW90ZShMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBS
ZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250ZXh0KQogICAgIDogUGxhdGZvcm1DQUxheWVyKGxh
eWVyVHlwZSwgb3duZXIpCiAgICAgLCBtX2xheWVySUQoZ2VuZXJhdGVMYXllcklEKCkpCisgICAg
LCBtX3N1cGVybGF5ZXIobnVsbHB0cikKICAgICAsIG1fY29udGV4dChjb250ZXh0KQogewogICAg
IG1fY29udGV4dC0+bGF5ZXJXYXNDcmVhdGVkKHRoaXMsIGxheWVyVHlwZSk7CkBAIC02OSw2ICs3
Niw4IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OmNsb25lKFBsYXRmb3JtQ0FMYXllckNsaWVudCoKIAogUGxhdGZvcm1DQUxheWVyUmVtb3RlOjp+
UGxhdGZvcm1DQUxheWVyUmVtb3RlKCkKIHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGxheWVyIDog
bV9jaGlsZHJlbikKKyAgICAgICAgdG9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUobGF5ZXIuZ2V0KCkp
LT5tX3N1cGVybGF5ZXIgPSBudWxscHRyOwogICAgIG1fY29udGV4dC0+bGF5ZXJXaWxsQmVEZXN0
cm95ZWQodGhpcyk7CiB9CiAKQEAgLTgxLDcgKzkwLDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24KICAgICAgICAgaWYgKG1fcHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQpIHsKICAgICAgICAgICAgIG1fcHJv
cGVydGllcy5jaGlsZHJlbi5jbGVhcigpOwogICAgICAgICAgICAgZm9yIChhdXRvIGxheWVyIDog
bV9jaGlsZHJlbikKLSAgICAgICAgICAgICAgICBtX3Byb3BlcnRpZXMuY2hpbGRyZW4uYXBwZW5k
KHN0YXRpY19jYXN0PFBsYXRmb3JtQ0FMYXllclJlbW90ZSo+KGxheWVyLmdldCgpKS0+bGF5ZXJJ
RCgpKTsKKyAgICAgICAgICAgICAgICBtX3Byb3BlcnRpZXMuY2hpbGRyZW4uYXBwZW5kKHRvUGxh
dGZvcm1DQUxheWVyUmVtb3RlKGxheWVyLmdldCgpKS0+bGF5ZXJJRCgpKTsKICAgICAgICAgfQog
CiAgICAgICAgIHRyYW5zYWN0aW9uLmxheWVyUHJvcGVydGllc0NoYW5nZWQodGhpcywgbV9wcm9w
ZXJ0aWVzKTsKQEAgLTg5LDcgKzk4LDggQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJl
Y3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24KICAgICB9
CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2hpbGRyZW4uc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBjaGlsZCA9IHN0YXRpY19jYXN0PFBsYXRm
b3JtQ0FMYXllclJlbW90ZSo+KG1fY2hpbGRyZW5baV0uZ2V0KCkpOworICAgICAgICBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUqIGNoaWxkID0gdG9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUobV9jaGlsZHJl
bltpXS5nZXQoKSk7CisgICAgICAgIEFTU0VSVChjaGlsZC0+c3VwZXJsYXllcigpID09IHRoaXMp
OwogICAgICAgICBjaGlsZC0+cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7
CiAgICAgfQogfQpAQCAtMTI3LDI4ICsxMzcsNDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGU6OnNldENvbnRlbnRzQ2hhbmdlZCgpCiAKIFBsYXRmb3JtQ0FMYXllciogUGxhdGZvcm1DQUxh
eWVyUmVtb3RlOjpzdXBlcmxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gbV9zdXBlcmxheWVyOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6
cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IGlmICghbV9zdXBlcmxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N1cGVybGF5ZXIt
PnJlbW92ZVN1YmxheWVyKHRoaXMpOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6
cmVtb3ZlU3VibGF5ZXIoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBsYXllcikKK3sKKyAgICBQbGF0
Zm9ybUNBTGF5ZXJMaXN0JiBzaWJsaW5ncyA9IG1fY2hpbGRyZW47CisgICAgc2l6ZV90IHNpYmxp
bmdJbmRleCA9IHNpYmxpbmdzLmZpbmQobGF5ZXIpOworICAgIGlmIChzaWJsaW5nSW5kZXggIT0g
bm90Rm91bmQpCisgICAgICAgIHNpYmxpbmdzLnJlbW92ZShzaWJsaW5nSW5kZXgpOworICAgIGxh
eWVyLT5tX3N1cGVybGF5ZXIgPSBudWxscHRyOworICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVy
dGllc0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNoaWxkcmVuQ2hhbmdlZCk7
CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRTdWJsYXllcnMoY29uc3QgUGxh
dGZvcm1DQUxheWVyTGlzdCYgbGlzdCkKIHsKICNpZm5kZWYgQVNTRVJUX0RJU0FCTEVECi0gICAg
Zm9yIChjb25zdCBhdXRvJiBsYXllciA6IGxpc3QpIHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGxh
eWVyIDogbGlzdCkKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04obGF5
ZXItPmlzUmVtb3RlKCkpOwotICAgIH0KICNlbmRpZgogCisgICAgcmVtb3ZlQWxsU3VibGF5ZXJz
KCk7CiAgICAgbV9jaGlsZHJlbiA9IGxpc3Q7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGxheWVy
IDogbGlzdCkKKyAgICAgICAgdG9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUobGF5ZXIuZ2V0KCkpLT5t
X3N1cGVybGF5ZXIgPSB0aGlzOworCiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hh
bmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKTsKIH0KIAog
dm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFsbFN1YmxheWVycygpCiB7CisgICAg
Zm9yIChjb25zdCBhdXRvJiBsYXllciA6IG1fY2hpbGRyZW4pCisgICAgICAgIGxheWVyLT5yZW1v
dmVGcm9tU3VwZXJsYXllcigpOwogICAgIG1fY2hpbGRyZW4uY2xlYXIoKTsKICAgICBtX3Byb3Bl
cnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpD
aGlsZHJlbkNoYW5nZWQpOwogfQpAQCAtMTU2LDM5ICsxODUsNjIgQEAgdm9pZCBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGU6OnJlbW92ZUFsbFN1YmxheWVycygpCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6YXBwZW5kU3VibGF5ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIHsKICAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihsYXllci0+aXNSZW1vdGUoKSk7CisgICAgUmVm
UHRyPFBsYXRmb3JtQ0FMYXllcj4gbGF5ZXJQcm90ZWN0b3IobGF5ZXIpOwogCisgICAgbGF5ZXIt
PnJlbW92ZUZyb21TdXBlcmxheWVyKCk7CiAgICAgbV9jaGlsZHJlbi5hcHBlbmQobGF5ZXIpOwor
ICAgIHRvUGxhdGZvcm1DQUxheWVyUmVtb3RlKGxheWVyKS0+bV9zdXBlcmxheWVyID0gdGhpczsK
ICAgICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6aW5zZXJ0U3VibGF5ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllciwgc2l6ZV90IGluZGV4
KQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGxheWVyLT5pc1JlbW90
ZSgpKTsKKyAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBsYXllclByb3RlY3RvcihsYXllcik7
CiAKKyAgICBsYXllci0+cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKTsKICAgICBtX2NoaWxkcmVuLmlu
c2VydChpbmRleCwgbGF5ZXIpOworICAgIHRvUGxhdGZvcm1DQUxheWVyUmVtb3RlKGxheWVyKS0+
bV9zdXBlcmxheWVyID0gdGhpczsKICAgICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFu
Z2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQpOwogfQogCiB2
b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVwbGFjZVN1YmxheWVyKFBsYXRmb3JtQ0FMYXll
ciogcmVmZXJlbmNlLCBQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQogewotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGxheWVyLT5p
c1JlbW90ZSgpKTsKKyAgICBBU1NFUlQocmVmZXJlbmNlLT5zdXBlcmxheWVyKCkgPT0gdGhpcyk7
CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gbGF5ZXJQcm90ZWN0b3IobGF5ZXIpOworCisg
ICAgbGF5ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7CisgICAgc2l6ZV90IHJlZmVyZW5jZUlu
ZGV4ID0gbV9jaGlsZHJlbi5maW5kKHJlZmVyZW5jZSk7CisgICAgaWYgKHJlZmVyZW5jZUluZGV4
ICE9IG5vdEZvdW5kKSB7CisgICAgICAgIG1fY2hpbGRyZW5bcmVmZXJlbmNlSW5kZXhdLT5yZW1v
dmVGcm9tU3VwZXJsYXllcigpOworICAgICAgICBtX2NoaWxkcmVuLnJlbW92ZShyZWZlcmVuY2VJ
bmRleCk7CisgICAgICAgIG1fY2hpbGRyZW4uaW5zZXJ0KHJlZmVyZW5jZUluZGV4LCBsYXllcik7
CisgICAgfQorCisgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKTsKIH0KIAogdm9pZCBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU6OmFkb3B0U3VibGF5ZXJzKFBsYXRmb3JtQ0FMYXllciogc291cmNlKQog
ewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKHNvdXJjZS0+aXNSZW1vdGUoKSk7CisgICAgc2V0U3VibGF5ZXJzKHRvUGxhdGZv
cm1DQUxheWVyUmVtb3RlKHNvdXJjZSktPm1fY2hpbGRyZW4pOwogfQogCiB2b2lkIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6YWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0
Zm9ybUNBQW5pbWF0aW9uKiBhbmltYXRpb24pCiB7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXko
Y29uc3QgU3RyaW5nJiBrZXkpCiB7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIFBh
c3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmlt
YXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpCiB7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtMTk2LDcgKzI0OCw3IEBAIHZvaWQg
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRNYXNrKFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCiB7
CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04obGF5ZXItPmlzUmVtb3RlKCkp
OwogCi0gICAgbV9wcm9wZXJ0aWVzLm1hc2tMYXllciA9IHN0YXRpY19jYXN0PFBsYXRmb3JtQ0FM
YXllclJlbW90ZSo+KGxheWVyKS0+bGF5ZXJJRCgpOworICAgIG1fcHJvcGVydGllcy5tYXNrTGF5
ZXIgPSB0b1BsYXRmb3JtQ0FMYXllclJlbW90ZShsYXllciktPmxheWVySUQoKTsKICAgICBtX3By
b3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpNYXNrTGF5ZXJDaGFuZ2VkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKaW5kZXgg
ZmE3ZjFiZi4uZWYxOGFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCkBAIC0xNDksMTAg
KzE0OSwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQVZQbGF5ZXJMYXllciAqcGxheWVyTGF5
ZXIoKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZvaWQgZW5zdXJlQmFja2luZ1N0b3JlKCk7Cisg
ICAgdm9pZCByZW1vdmVTdWJsYXllcihQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqKTsKIAogICAgIFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllcklEIG1fbGF5ZXJJRDsKICAgICBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzIG1fcHJvcGVydGllczsKICAgICBX
ZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJMaXN0IG1fY2hpbGRyZW47CisgICAgUGxhdGZvcm1DQUxh
eWVyUmVtb3RlKiBtX3N1cGVybGF5ZXI7CiAKICAgICBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBt
X2NvbnRleHQ7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214876</attachid>
            <date>2013-10-22 12:29:48 -0700</date>
            <delta_ts>2013-10-22 17:54:34 -0700</delta_ts>
            <desc>we&apos;ll assert that they&apos;re PlatformCALayerRemotes in just one place</desc>
            <filename>layerhier.diff</filename>
            <type>text/plain</type>
            <size>10177</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNmMyZTI2Li5iYmNlYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjMg
QEAKIDIwMTMtMTAtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgUmVtb3RlIExheWVyIFRyZWU6IEltcGxlbWVudCBzdXBlcmxheWVyLCByZW1vdmVG
cm9tU3VwZXJsYXllciwgcmVwbGFjZVN1YmxheWVyLCBhbmQgYWRvcHRTdWJsYXllcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzEzMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUg
cmVtYWluaW5nIGxheWVyLWhpZXJhcmNoeS1tYW5pcHVsYXRpb24gbWV0aG9kcy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAg
ICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlKToKKyAg
ICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZSk6Cisg
ICAgICAgIE51bGwgb3V0IHRoZSBzdXBlcmxheWVyIGJhY2stcG9pbnRlciBvbiBvdXIgc3VibGF5
ZXJzLgorCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJh
bnNhY3Rpb24pOgorICAgICAgICBFbnN1cmUgdGhhdCBvdXIgY2hpbGRyZW4gYWxsIGhhdmUgdXMg
YXMgdGhlaXIgc3VwZXJsYXllci4KKworICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpz
dXBlcmxheWVyKToKKyAgICAgICAgUmV0dXJuIHRoZSBzdG9yZWQgc3VwZXJsYXllciBwb2ludGVy
LgorCisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUZyb21TdXBlcmxheWVy
KToKKyAgICAgICAgQ2FsbCByZW1vdmVTdWJsYXllciBvbiBvdXIgc3VwZXJsYXllciwgaWYgd2Ug
aGF2ZSBvbmUuCisKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVtb3ZlU3VibGF5
ZXIpOgorICAgICAgICBSZW1vdmUgdGhlIGdpdmVuIGxheWVyIGlmIGl0J3MgaW4gb3VyIGxpc3Qg
b2Ygc3VibGF5ZXJzLCBjbGVhciBpdHMKKyAgICAgICAgcmVmZXJlbmNlIHRvIHVzLCBhbmQgbm90
ZSB0aGF0IHdlJ2xsIG5lZWQgdG8gY29tbWl0IGhpZXJhcmNoeSBjaGFuZ2VzLgorCisgICAgICAg
IChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldFN1YmxheWVycyk6CisgICAgICAgIHJlbW92ZUFs
bFN1YmxheWVycygpIGJlZm9yZSBzZXR0aW5nIHRoZSBuZXcgbGlzdCwgdG8gY2xlYXIgc3VwZXJs
YXllcgorICAgICAgICBiYWNrLXBvaW50ZXJzLiBDaGlsZHJlbiB3aWxsIGJlIHByb3RlY3RlZCBi
eSB0aGUgUGxhdGZvcm1DQUxheWVyTGlzdC4KKyAgICAgICAgVXBkYXRlIHRoZSBuZXcgbGF5ZXJz
JyBzdXBlcmxheWVycy4KKworICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVB
bGxTdWJsYXllcnMpOgorICAgICAgICBSZW1vdmUgZWFjaCBzdWJsYXllciBmcm9tIGl0cyBzdXBl
cmxheWVyLCB0aGVuIGNsZWFyIG91ciBsaXN0IG9mIGNoaWxkcmVuLgorCisgICAgICAgIChQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGU6OmFwcGVuZFN1YmxheWVyKToKKyAgICAgICAgKFBsYXRmb3JtQ0FM
YXllclJlbW90ZTo6aW5zZXJ0U3VibGF5ZXIpOgorICAgICAgICBQcm90ZWN0IHRoZSBsYXllciBm
cm9tIGRlbGV0aW9uLCBzbyB0aGF0IHdlIGNhbiByZW1vdmUgaXQgZnJvbSBpdHMgcHJpb3IKKyAg
ICAgICAgc3VwZXJsYXllciBiZWZvcmUgYXBwZW5kaW5nIG9yIGluc2VydGluZyBpdC4KKworICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZXBsYWNlU3VibGF5ZXIpOgorICAgICAgICBG
aW5kIHRoZSByZWZlcmVuY2Ugc3VibGF5ZXIsIGlmIGl0IGV4aXN0cywgYW5kIHJlcGxhY2UgaXQg
d2l0aCB0aGUgbmV3IG9uZS4KKworICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZG9w
dFN1YmxheWVycyk6CisgICAgICAgIGFkb3B0U3VibGF5ZXJzIGlzIHJlYWxseSBqdXN0ICJzZXQg
c3VibGF5ZXJzIHRvIHRoaXMgb3RoZXIgbGF5ZXIncyBzdWJsYXllcnMiLgorICAgICAgICBTaW5j
ZSBzZXRTdWJsYXllcnMgYWxyZWFkeSByZW1vdmVzIGxheWVycyBmcm9tIHRoZSBleGlzdGluZyBz
dXBlcmxheWVyLAorICAgICAgICB3ZSBjYW4ganVzdCBnbyBhaGVhZCBhbmQgY2FsbCBpdC4KKwor
ICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkpOgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkpOgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25Gb3JLZXkpOgorICAgICAgICBB
ZGQgc29tZSBBU1NFUlRfTk9UX1JFQUNIRURzIGluIGFuaW1hdGlvbiBjb2RlLgorICAgICAgICBX
ZSBvdWdodCBub3QgZ2V0IGhlcmUgYmVjYXVzZSB3ZSd2ZSBkaXNhYmxlZCBoYXJkd2FyZSBhbmlt
YXRpb25zCisgICAgICAgIGluIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmg6CisgICAgICAgIEFk
ZCBtX3N1cGVybGF5ZXIgYW5kIHJlbW92ZVN1YmxheWVyKCkuCisKKzIwMTMtMTAtMjIgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKICAgICAgICAgUmVtb3RlIExheWVy
IFRyZWU6IFN1cHBvcnQgaGFyZHdhcmUgYWNjZWxlcmF0ZWQgZmlsdGVycwogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTM5CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmNwcAppbmRleCAxZTdkYWY5Li5iMWQwZDJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUuY3BwCkBAIC01MCw2ICs1MCwxMiBAQCBzdGF0aWMgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkxheWVySUQgZ2VuZXJhdGVMYXllcklEKCkKICAgICByZXR1cm4gKytsYXll
cklEOwogfQogCitzdGF0aWMgUGxhdGZvcm1DQUxheWVyUmVtb3RlKiB0b1BsYXRmb3JtQ0FMYXll
clJlbW90ZShQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKCFsYXllciB8fCBsYXllci0+aXNSZW1vdGUoKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFBsYXRmb3JtQ0FMYXllclJlbW90ZSo+KGxheWVyKTsKK30KKwogUGFzc1Jl
ZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlKExheWVy
VHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVy
VHJlZUNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUobGF5ZXJUeXBlLCBvd25lciwgY29udGV4dCkpOwpAQCAtNTgsNiArNjQs
NyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpj
cmVhdGUoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUAogUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGUoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xp
ZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4dCkKICAgICA6IFBsYXRm
b3JtQ0FMYXllcihsYXllclR5cGUsIG93bmVyKQogICAgICwgbV9sYXllcklEKGdlbmVyYXRlTGF5
ZXJJRCgpKQorICAgICwgbV9zdXBlcmxheWVyKG51bGxwdHIpCiAgICAgLCBtX2NvbnRleHQoY29u
dGV4dCkKIHsKICAgICBtX2NvbnRleHQtPmxheWVyV2FzQ3JlYXRlZCh0aGlzLCBsYXllclR5cGUp
OwpAQCAtNzAsNiArNzcsOCBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gUGxhdGZvcm1D
QUxheWVyUmVtb3RlOjpjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqCiAKIFBsYXRmb3JtQ0FM
YXllclJlbW90ZTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZSgpCiB7CisgICAgZm9yIChjb25zdCBh
dXRvJiBsYXllciA6IG1fY2hpbGRyZW4pCisgICAgICAgIHRvUGxhdGZvcm1DQUxheWVyUmVtb3Rl
KGxheWVyLmdldCgpKS0+bV9zdXBlcmxheWVyID0gbnVsbHB0cjsKICAgICBtX2NvbnRleHQtPmxh
eWVyV2lsbEJlRGVzdHJveWVkKHRoaXMpOwogfQogCkBAIC04Miw3ICs5MSw3IEBAIHZvaWQgUGxh
dGZvcm1DQUxheWVyUmVtb3RlOjpyZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uCiAgICAgICAgIGlmIChtX3Byb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRp
ZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKSB7CiAgICAg
ICAgICAgICBtX3Byb3BlcnRpZXMuY2hpbGRyZW4uY2xlYXIoKTsKICAgICAgICAgICAgIGZvciAo
YXV0byBsYXllciA6IG1fY2hpbGRyZW4pCi0gICAgICAgICAgICAgICAgbV9wcm9wZXJ0aWVzLmNo
aWxkcmVuLmFwcGVuZChzdGF0aWNfY2FzdDxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqPihsYXllci5n
ZXQoKSktPmxheWVySUQoKSk7CisgICAgICAgICAgICAgICAgbV9wcm9wZXJ0aWVzLmNoaWxkcmVu
LmFwcGVuZCh0b1BsYXRmb3JtQ0FMYXllclJlbW90ZShsYXllci5nZXQoKSktPmxheWVySUQoKSk7
CiAgICAgICAgIH0KIAogICAgICAgICB0cmFuc2FjdGlvbi5sYXllclByb3BlcnRpZXNDaGFuZ2Vk
KHRoaXMsIG1fcHJvcGVydGllcyk7CkBAIC05MCw3ICs5OSw4IEBAIHZvaWQgUGxhdGZvcm1DQUxh
eWVyUmVtb3RlOjpyZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uCiAgICAgfQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2NoaWxkcmVuLnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZSogY2hpbGQgPSBzdGF0
aWNfY2FzdDxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqPihtX2NoaWxkcmVuW2ldLmdldCgpKTsKKyAg
ICAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBjaGlsZCA9IHRvUGxhdGZvcm1DQUxheWVyUmVt
b3RlKG1fY2hpbGRyZW5baV0uZ2V0KCkpOworICAgICAgICBBU1NFUlQoY2hpbGQtPnN1cGVybGF5
ZXIoKSA9PSB0aGlzKTsKICAgICAgICAgY2hpbGQtPnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb24pOwogICAgIH0KIH0KQEAgLTEyOCw3NiArMTM4LDEwNyBAQCB2b2lkIFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6c2V0Q29udGVudHNDaGFuZ2VkKCkKIAogUGxhdGZvcm1DQUxheWVy
KiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnN1cGVybGF5ZXIoKSBjb25zdAogewotICAgIHJldHVy
biBudWxscHRyOworICAgIHJldHVybiBtX3N1cGVybGF5ZXI7CiB9CiAKIHZvaWQgUGxhdGZvcm1D
QUxheWVyUmVtb3RlOjpyZW1vdmVGcm9tU3VwZXJsYXllcigpCiB7Ci0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgaWYgKCFtX3N1cGVybGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fc3VwZXJsYXllci0+cmVtb3ZlU3VibGF5ZXIodGhpcyk7CiB9CiAKLXZvaWQgUGxhdGZvcm1D
QUxheWVyUmVtb3RlOjpzZXRTdWJsYXllcnMoY29uc3QgUGxhdGZvcm1DQUxheWVyTGlzdCYgbGlz
dCkKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVTdWJsYXllcihQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUqIGxheWVyKQogewotI2lmbmRlZiBBU1NFUlRfRElTQUJMRUQKLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIGxheWVyIDogbGlzdCkgewotICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihsYXllci0+aXNSZW1vdGUoKSk7Ci0gICAgfQotI2VuZGlmCisgICAgUGxh
dGZvcm1DQUxheWVyTGlzdCYgc2libGluZ3MgPSBtX2NoaWxkcmVuOworICAgIHNpemVfdCBzaWJs
aW5nSW5kZXggPSBzaWJsaW5ncy5maW5kKGxheWVyKTsKKyAgICBpZiAoc2libGluZ0luZGV4ICE9
IG5vdEZvdW5kKQorICAgICAgICBzaWJsaW5ncy5yZW1vdmUoc2libGluZ0luZGV4KTsKKyAgICBs
YXllci0+bV9zdXBlcmxheWVyID0gbnVsbHB0cjsKKyAgICBtX3Byb3BlcnRpZXMubm90ZVByb3Bl
cnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQp
OworfQogCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0U3VibGF5ZXJzKGNvbnN0IFBs
YXRmb3JtQ0FMYXllckxpc3QmIGxpc3QpCit7CisgICAgcmVtb3ZlQWxsU3VibGF5ZXJzKCk7CiAg
ICAgbV9jaGlsZHJlbiA9IGxpc3Q7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGxheWVyIDogbGlz
dCkKKyAgICAgICAgdG9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUobGF5ZXIuZ2V0KCkpLT5tX3N1cGVy
bGF5ZXIgPSB0aGlzOworCiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKTsKIH0KIAogdm9pZCBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFsbFN1YmxheWVycygpCiB7CisgICAgZm9yIChj
b25zdCBhdXRvJiBsYXllciA6IG1fY2hpbGRyZW4pCisgICAgICAgIGxheWVyLT5yZW1vdmVGcm9t
U3VwZXJsYXllcigpOwogICAgIG1fY2hpbGRyZW4uY2xlYXIoKTsKICAgICBtX3Byb3BlcnRpZXMu
bm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDaGlsZHJl
bkNoYW5nZWQpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YXBwZW5kU3VibGF5
ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIHsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihsYXllci0+aXNSZW1vdGUoKSk7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXll
cj4gbGF5ZXJQcm90ZWN0b3IobGF5ZXIpOwogCisgICAgbGF5ZXItPnJlbW92ZUZyb21TdXBlcmxh
eWVyKCk7CiAgICAgbV9jaGlsZHJlbi5hcHBlbmQobGF5ZXIpOworICAgIHRvUGxhdGZvcm1DQUxh
eWVyUmVtb3RlKGxheWVyKS0+bV9zdXBlcmxheWVyID0gdGhpczsKICAgICBtX3Byb3BlcnRpZXMu
bm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpDaGlsZHJl
bkNoYW5nZWQpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aW5zZXJ0U3VibGF5
ZXIoUGxhdGZvcm1DQUxheWVyKiBsYXllciwgc2l6ZV90IGluZGV4KQogewotICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGxheWVyLT5pc1JlbW90ZSgpKTsKKyAgICBSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPiBsYXllclByb3RlY3RvcihsYXllcik7CiAKKyAgICBsYXllci0+cmVt
b3ZlRnJvbVN1cGVybGF5ZXIoKTsKICAgICBtX2NoaWxkcmVuLmluc2VydChpbmRleCwgbGF5ZXIp
OworICAgIHRvUGxhdGZvcm1DQUxheWVyUmVtb3RlKGxheWVyKS0+bV9zdXBlcmxheWVyID0gdGhp
czsKICAgICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpDaGlsZHJlbkNoYW5nZWQpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6cmVwbGFjZVN1YmxheWVyKFBsYXRmb3JtQ0FMYXllciogcmVmZXJlbmNlLCBQbGF0
Zm9ybUNBTGF5ZXIqIGxheWVyKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIEFT
U0VSVChyZWZlcmVuY2UtPnN1cGVybGF5ZXIoKSA9PSB0aGlzKTsKKyAgICBSZWZQdHI8UGxhdGZv
cm1DQUxheWVyPiBsYXllclByb3RlY3RvcihsYXllcik7CisKKyAgICBsYXllci0+cmVtb3ZlRnJv
bVN1cGVybGF5ZXIoKTsKKyAgICBzaXplX3QgcmVmZXJlbmNlSW5kZXggPSBtX2NoaWxkcmVuLmZp
bmQocmVmZXJlbmNlKTsKKyAgICBpZiAocmVmZXJlbmNlSW5kZXggIT0gbm90Rm91bmQpIHsKKyAg
ICAgICAgbV9jaGlsZHJlbltyZWZlcmVuY2VJbmRleF0tPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7
CisgICAgICAgIG1fY2hpbGRyZW4ucmVtb3ZlKHJlZmVyZW5jZUluZGV4KTsKKyAgICAgICAgbV9j
aGlsZHJlbi5pbnNlcnQocmVmZXJlbmNlSW5kZXgsIGxheWVyKTsKKyAgICB9CisKKyAgICBtX3By
b3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpDaGlsZHJlbkNoYW5nZWQpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YWRv
cHRTdWJsYXllcnMoUGxhdGZvcm1DQUxheWVyKiBzb3VyY2UpCiB7Ci0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgc2V0U3VibGF5ZXJzKHRvUGxhdGZvcm1DQUxheWVyUmVtb3RlKHNvdXJj
ZSktPm1fY2hpbGRyZW4pOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YWRkQW5p
bWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBhbmlt
YXRpb24pCiB7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIHZvaWQgUGxhdGZvcm1D
QUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpCiB7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFu
aW1hdGlvbj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25Gb3JLZXkoY29uc3QgU3Ry
aW5nJiBrZXkpCiB7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE1hc2soUGxhdGZvcm1D
QUxheWVyKiBsYXllcikKIHsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihs
YXllci0+aXNSZW1vdGUoKSk7Ci0KLSAgICBtX3Byb3BlcnRpZXMubWFza0xheWVyID0gc3RhdGlj
X2Nhc3Q8UGxhdGZvcm1DQUxheWVyUmVtb3RlKj4obGF5ZXIpLT5sYXllcklEKCk7CisgICAgbV9w
cm9wZXJ0aWVzLm1hc2tMYXllciA9IHRvUGxhdGZvcm1DQUxheWVyUmVtb3RlKGxheWVyKS0+bGF5
ZXJJRCgpOwogICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246Ok1hc2tMYXllckNoYW5nZWQpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90
ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuaAppbmRleCBmYTdmMWJmLi5lZjE4YWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlLmgKQEAgLTE0OSwxMCArMTQ5LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBBVlBsYXll
ckxheWVyICpwbGF5ZXJMYXllcigpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdm9pZCBlbnN1cmVC
YWNraW5nU3RvcmUoKTsKKyAgICB2b2lkIHJlbW92ZVN1YmxheWVyKFBsYXRmb3JtQ0FMYXllclJl
bW90ZSopOwogCiAgICAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVySUQgbV9sYXll
cklEOwogICAgIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMgbV9w
cm9wZXJ0aWVzOwogICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QgbV9jaGlsZHJlbjsK
KyAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIG1fc3VwZXJsYXllcjsKIAogICAgIFJlbW90ZUxh
eWVyVHJlZUNvbnRleHQqIG1fY29udGV4dDsKIH07Cg==
</data>
<flag name="review"
          id="237485"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>