<?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>131456</bug_id>
          
          <creation_ts>2014-04-09 14:43:59 -0700</creation_ts>
          <short_desc>TileGrid should be PlatformCALayerClient instead of TileController</short_desc>
          <delta_ts>2014-04-09 16:03: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>Layout and Rendering</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>999304</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-09 14:43:59 -0700</bug_when>
    <thetext>It is PlatformCALayerClient is for the tiles in the grid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999319</commentid>
    <comment_count>1</comment_count>
      <attachid>228991</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-09 15:12:14 -0700</bug_when>
    <thetext>Created attachment 228991
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999330</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-09 15:31:25 -0700</bug_when>
    <thetext>https://trac.webkit.org/r167041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999342</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-09 16:03:52 -0700</bug_when>
    <thetext>and https://trac.webkit.org/r167047</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228991</attachid>
            <date>2014-04-09 15:12:14 -0700</date>
            <delta_ts>2014-04-09 15:25:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>tile-layer-client.patch</filename>
            <type>text/plain</type>
            <size>19530</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzAzNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE0LTA0LTA5ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBUaWxlR3JpZCBzaG91bGQgYmUg
UGxhdGZvcm1DQUxheWVyQ2xpZW50IGluc3RlYWQgb2YgVGlsZUNvbnRyb2xsZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTQ1NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjbGllbnQgaW50ZXJm
YWNlIGlzIGZvciB0aGUgdGlsZXMgaW4gdGhlIGdyaWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29u
dHJvbGxlcjo6c2V0Q29udGVudHNTY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJv
bGxlcjo6Y3JlYXRlVGlsZUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDb250cm9sbGVy
OjpwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlRpbGVDb250cm9sbGVyOjpwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3Rvcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6cGxhdGZvcm1DQUxheWVy
U2hvd0RlYnVnQm9yZGVycyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJv
bGxlcjo6cGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbGVDb250cm9sbGVyOjpwbGF0Zm9ybUNBTGF5ZXJJbmNyZW1lbnRSZXBh
aW50Q291bnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9U
aWxlR3JpZC5oOgorICAgICAgICAKKyAgICAgICAgICAgIE1vdmUgcmVwYWludCBjb3VudGVyIHRv
IFRpbGVHcmlkIHRvby4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1RpbGVHcmlkLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGlsZUdyaWQ6OnJlbW92ZVRpbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVHcmlkOjpyZW1vdmVBbGxTZWNvbmRhcnlUaWxlcyk6
CisgICAgICAgIChXZWJDb3JlOjpUaWxlR3JpZDo6cmVtb3ZlVGlsZXNJbkNvaG9ydCk6CisgICAg
ICAgIAorICAgICAgICAgICBDbGVhbmVkIHVwIHRpbGUgcmVtb3ZhbC4KKworICAgICAgICAoV2Vi
Q29yZTo6VGlsZUdyaWQ6OnJldmFsaWRhdGVUaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpUaWxl
R3JpZDo6ZW5zdXJlVGlsZXNGb3JSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVHcmlkOjpw
bGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVHcmlk
OjpwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpU
aWxlR3JpZDo6cGxhdGZvcm1DQUxheWVyU2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpUaWxlR3JpZDo6cGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbGVHcmlkOjpwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c09wYXF1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUaWxlR3JpZDo6cGxhdGZvcm1DQUxheWVySW5jcmVtZW50UmVwYWlu
dENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OnF1ZXVlVGlsZUZvclJlbW92YWwpOiBEZWxldGVk
LgorCiAyMDE0LTA0LTA4ICBTYW11ZWwgV2hpdGUgIDxzYW11ZWxfd2hpdGVAYXBwbGUuY29tPgog
CiAgICAgICAgIEFYOiBJbml0aWFsIHRleHQgc2VsZWN0aW9uIHBvaW50IHNob3VsZCByZXNwZWN0
IGVsZW1lbnQgZm9jdXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvVGlsZUNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIuaAkocmV2aXNpb24gMTY3MDM0KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDkgKzQ4LDggQEAgY2xhc3MgVGlsZUdyaWQ7CiAKIHR5
cGVkZWYgVmVjdG9yPFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPj4gUGxhdGZvcm1MYXllckxpc3Q7
CiAKLWNsYXNzIFRpbGVDb250cm9sbGVyIGZpbmFsIDogcHVibGljIFRpbGVkQmFja2luZywgcHVi
bGljIFBsYXRmb3JtQ0FMYXllckNsaWVudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGls
ZUNvbnRyb2xsZXIpOwotCitjbGFzcyBUaWxlQ29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBUaWxl
ZEJhY2tpbmcgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRpbGVDb250cm9sbGVyKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8VGls
ZUNvbnRyb2xsZXI+IGNyZWF0ZShQbGF0Zm9ybUNBTGF5ZXIqKTsKICAgICB+VGlsZUNvbnRyb2xs
ZXIoKTsKQEAgLTEwNCw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgcmlnaHRN
YXJnaW5XaWR0aCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgVGlsZUNvdmVyYWdlIHRp
bGVDb3ZlcmFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdGlsZUNvdmVyYWdlOyB9CiAg
ICAgdmlydHVhbCBib29sIHVucGFyZW50c09mZnNjcmVlblRpbGVzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV91bnBhcmVudHNPZmZzY3JlZW5UaWxlczsgfQorICAgIHZpcnR1YWwgYm9vbCBz
Y3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkOyB9CiAKICAgICBJbnRSZWN0
IGJvdW5kc1dpdGhvdXRNYXJnaW4oKSBjb25zdDsKIApAQCAtMTE3LDEyICsxMTcsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBzaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcygpIGNvbnN0OwogICAg
IGJvb2wgc2hvdWxkVGVtcG9yYXJpbHlSZXRhaW5UaWxlQ29ob3J0cygpIGNvbnN0OwogCi0gICAg
dHlwZWRlZiBIYXNoTWFwPFBsYXRmb3JtQ0FMYXllciosIGludD4gUmVwYWludENvdW50TWFwOwot
ICAgIFJlcGFpbnRDb3VudE1hcCYgcmVwYWludENvdW50TWFwKCkgeyByZXR1cm4gbV90aWxlUmVw
YWludENvdW50czsgfQotCiAgICAgdm9pZCB1cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIAotICAg
IFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGNyZWF0ZVRpbGVMYXllcihjb25zdCBJbnRSZWN0Jik7
CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlVGlsZUxheWVyKGNvbnN0IEludFJl
Y3QmLCBUaWxlR3JpZCYpOwogCiAgICAgY29uc3QgVGlsZUdyaWQmIHRpbGVHcmlkKCkgY29uc3Qg
eyByZXR1cm4gKm1fdGlsZUdyaWQ7IH0KIApAQCAtMTQ0LDcgKzE0MSw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgSW50
UmVjdCB0aWxlR3JpZEV4dGVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZykgb3ZlcnJpZGUg
eyBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQgPSBmbGFnOyB9Ci0gICAgdmly
dHVhbCBib29sIHNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQ7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VW5wYXJlbnRzT2Zmc2NyZWVuVGlsZXMoYm9vbCBmbGFnKSBvdmVy
cmlkZSB7IG1fdW5wYXJlbnRzT2Zmc2NyZWVuVGlsZXMgPSBmbGFnOyB9CiAgICAgdmlydHVhbCBk
b3VibGUgcmV0YWluZWRUaWxlQmFja2luZ1N0b3JlTWVtb3J5KCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBJbnRSZWN0IHRpbGVDb3ZlcmFnZVJlY3QoKSBjb25zdCBvdmVycmlkZTsKQEAg
LTE1MiwxNSArMTQ4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsaW5n
TW9kZUluZGljYXRpb24oU2Nyb2xsaW5nTW9kZUluZGljYXRpb24pIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRUaWxlTWFyZ2lucyhpbnQgbWFyZ2luVG9wLCBpbnQgbWFyZ2luQm90dG9t
LCBpbnQgbWFyZ2luTGVmdCwgaW50IG1hcmdpblJpZ2h0KSBvdmVycmlkZTsKIAotICAgIC8vIFBs
YXRmb3JtQ0FMYXllckNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJQYWlu
dENvbnRlbnRzKFBsYXRmb3JtQ0FMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
UmVjdCYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG93RGVi
dWdCb3JkZXJzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FM
YXllclNob3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIGludCBwbGF0Zm9ybUNBTGF5ZXJJbmNyZW1lbnRSZXBhaW50Q291bnQoUGxh
dGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXll
ckNvbnRlbnRzT3BhcXVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90aWxlc0FyZU9wYXF1
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJEcmF3c0NvbnRlbnQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBmbG9hdCBwbGF0Zm9ybUNB
TGF5ZXJEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgdm9pZCBzY2hl
ZHVsZVRpbGVSZXZhbGlkYXRpb24oZG91YmxlIGludGVydmFsKTsKICAgICB2b2lkIHRpbGVSZXZh
bGlkYXRpb25UaW1lckZpcmVkKFRpbWVyPFRpbGVDb250cm9sbGVyPiopOwogCkBAIC0xODEsOCAr
MTY4LDYgQEAgcHJpdmF0ZToKIAogICAgIFRpbWVyPFRpbGVDb250cm9sbGVyPiBtX3RpbGVSZXZh
bGlkYXRpb25UaW1lcjsKIAotICAgIFJlcGFpbnRDb3VudE1hcCBtX3RpbGVSZXBhaW50Q291bnRz
OwotCiAgICAgZmxvYXQgbV9jb250ZW50c1NjYWxlOwogICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVG
YWN0b3I7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9U
aWxlQ29udHJvbGxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIubW0JKHJldmlzaW9uIDE2NzAzNCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1w
b3J0ICJUaWxlQ29udHJvbGxlci5oIgogCi0jaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNp
bXBvcnQgIkludFJlY3QuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllci5oIgogI2ltcG9ydCAi
UmVnaW9uLmgiCkBAIC0zNSw3ICszNCw2IEBACiAjaWYgIVBMQVRGT1JNKElPUykKICNpbXBvcnQg
IkxheWVyUG9vbC5oIgogI2VuZGlmCi0jaW1wb3J0ICJXZWJMYXllci5oIgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHV0aWxpdHk+CiAKQEAgLTEwMyw1OSArMTAxLDEzIEBA
IHZvaWQgVGlsZUNvbnRyb2xsZXI6OnNldE5lZWRzRGlzcGxheUluUmUKICAgICB0aWxlR3JpZCgp
LnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsKIH0KIAotdm9pZCBUaWxlQ29udHJvbGxlcjo6
cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyhQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FM
YXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmKQotewotI2lm
IFBMQVRGT1JNKElPUykKLSAgICBpZiAocHRocmVhZF9tYWluX25wKCkpCi0gICAgICAgIFdlYlRo
cmVhZExvY2soKTsKLSNlbmRpZgotCi0gICAgewotICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7Ci0KLSAgICAgICAgRmxvYXRQb2ludDNEIGxheWVy
T3JpZ2luID0gcGxhdGZvcm1DQUxheWVyLT5wb3NpdGlvbigpOwotICAgICAgICBjb250ZXh0LnRy
YW5zbGF0ZSgtbGF5ZXJPcmlnaW4ueCgpLCAtbGF5ZXJPcmlnaW4ueSgpKTsKLSAgICAgICAgY29u
dGV4dC5zY2FsZShGbG9hdFNpemUodGlsZUdyaWQoKS5zY2FsZSgpLCB0aWxlR3JpZCgpLnNjYWxl
KCkpKTsKLQotICAgICAgICBSZXBhaW50UmVjdExpc3QgZGlydHlSZWN0cyA9IGNvbGxlY3RSZWN0
c1RvUGFpbnQoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgcGxhdGZvcm1DQUxheWVyKTsKLSAg
ICAgICAgZHJhd0xheWVyQ29udGVudHMoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgbV90aWxl
Q2FjaGVMYXllciwgZGlydHlSZWN0cyk7Ci0gICAgfQotCi0gICAgaW50IHJlcGFpbnRDb3VudCA9
IHBsYXRmb3JtQ0FMYXllckluY3JlbWVudFJlcGFpbnRDb3VudChwbGF0Zm9ybUNBTGF5ZXIpOwot
ICAgIGlmIChvd25pbmdHcmFwaGljc0xheWVyKCktPnBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50
Q291bnRlcigwKSkKLSAgICAgICAgZHJhd1JlcGFpbnRJbmRpY2F0b3IoY29udGV4dC5wbGF0Zm9y
bUNvbnRleHQoKSwgcGxhdGZvcm1DQUxheWVyLCByZXBhaW50Q291bnQsIGNhY2hlZENHQ29sb3Io
bV90aWxlRGVidWdCb3JkZXJDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQikpOwotCi0gICAgaWYg
KHNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQoKSkgewotICAgICAgICBGbG9hdFJl
Y3QgdmlzaWJsZVBhcnQocGxhdGZvcm1DQUxheWVyLT5wb3NpdGlvbigpLngoKSwgcGxhdGZvcm1D
QUxheWVyLT5wb3NpdGlvbigpLnkoKSwgcGxhdGZvcm1DQUxheWVyLT5ib3VuZHMoKS5zaXplKCku
d2lkdGgoKSwgcGxhdGZvcm1DQUxheWVyLT5ib3VuZHMoKS5zaXplKCkuaGVpZ2h0KCkpOwotICAg
ICAgICB2aXNpYmxlUGFydC5pbnRlcnNlY3QodmlzaWJsZVJlY3QoKSk7Ci0KLSAgICAgICAgaWYg
KHJlcGFpbnRDb3VudCA9PSAxICYmICF2aXNpYmxlUGFydC5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICBXVEZMb2dBbHdheXMoIlNDUk9MTElORzogRmlsbGVkIHZpc2libGUgZnJlc2ggdGlsZS4gVGlt
ZTogJWYgVW5maWxsZWQgUGl4ZWxzOiAldVxuIiwgV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSwgYmxhbmtQaXhlbENvdW50KCkpOwotICAgIH0KLX0KLQotZmxvYXQgVGlsZUNvbnRy
b2xsZXI6OnBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gb3duaW5nR3JhcGhpY3NMYXllcigpLT5wbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZh
Y3RvcigpOwotfQotCi1ib29sIFRpbGVDb250cm9sbGVyOjpwbGF0Zm9ybUNBTGF5ZXJTaG93RGVi
dWdCb3JkZXJzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gb3duaW5nR3JhcGhpY3NMYXllcigpLT5w
bGF0Zm9ybUNBTGF5ZXJTaG93RGVidWdCb3JkZXJzKCk7Ci19Ci0KLWJvb2wgVGlsZUNvbnRyb2xs
ZXI6OnBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNBTGF5ZXIqKSBj
b25zdAotewotICAgIHJldHVybiBvd25pbmdHcmFwaGljc0xheWVyKCktPnBsYXRmb3JtQ0FMYXll
clNob3dSZXBhaW50Q291bnRlcigwKTsKLX0KLQogdm9pZCBUaWxlQ29udHJvbGxlcjo6c2V0Q29u
dGVudHNTY2FsZShmbG9hdCBzY2FsZSkKIHsKICAgICBtX2NvbnRlbnRzU2NhbGUgPSBzY2FsZTsK
ICAgICAKICAgICBBU1NFUlQob3duaW5nR3JhcGhpY3NMYXllcigpLT5pc0NvbW1pdHRpbmdDaGFu
Z2VzKCkpOwogCi0gICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBwbGF0Zm9ybUNBTGF5ZXJE
ZXZpY2VTY2FsZUZhY3RvcigpOworICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gb3duaW5n
R3JhcGhpY3NMYXllcigpLT5wbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3RvcigpOwogCiAg
ICAgLy8gVGhlIHNjYWxlIHdlIGdldCBpcyB0aGUgcHJvZHVjdCBvZiB0aGUgcGFnZSBzY2FsZSBm
YWN0b3IgYW5kIGRldmljZSBzY2FsZSBmYWN0b3IuCiAgICAgLy8gRGl2aWRlIGJ5IHRoZSBkZXZp
Y2Ugc2NhbGUgZmFjdG9yIHNvIHdlJ2xsIGdldCB0aGUgcGFnZSBzY2FsZSBmYWN0b3IuCkBAIC00
NzgsNyArNDMwLDcgQEAgaW50IFRpbGVDb250cm9sbGVyOjpyaWdodE1hcmdpbldpZHRoKCkgYwog
ICAgIHJldHVybiBtX21hcmdpblJpZ2h0OwogfQogCi1SZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBU
aWxlQ29udHJvbGxlcjo6Y3JlYXRlVGlsZUxheWVyKGNvbnN0IEludFJlY3QmIHRpbGVSZWN0KQor
UmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gVGlsZUNvbnRyb2xsZXI6OmNyZWF0ZVRpbGVMYXllcihj
b25zdCBJbnRSZWN0JiB0aWxlUmVjdCwgVGlsZUdyaWQmIGdyaWQpCiB7CiAjaWYgUExBVEZPUk0o
SU9TKQogICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGxheWVyOwpAQCAtNDg2LDExICs0Mzgs
MTAgQEAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gVGlsZUNvbnRyb2xsZXI6OgogICAgIFJlZlB0
cjxQbGF0Zm9ybUNBTGF5ZXI+IGxheWVyID0gTGF5ZXJQb29sOjpzaGFyZWRQb29sKCktPnRha2VM
YXllcldpdGhTaXplKHRpbGVSZWN0LnNpemUoKSk7CiAjZW5kaWYKIAotICAgIGlmIChsYXllcikg
ewotICAgICAgICBtX3RpbGVSZXBhaW50Q291bnRzLnJlbW92ZShsYXllci5nZXQoKSk7Ci0gICAg
ICAgIGxheWVyLT5zZXRPd25lcih0aGlzKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbGF5ZXIgPSBt
X3RpbGVDYWNoZUxheWVyLT5jcmVhdGVDb21wYXRpYmxlTGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVUaWxlZEJhY2tpbmdUaWxlTGF5ZXIsIHRoaXMpOworICAgIGlmIChsYXllcikKKyAg
ICAgICAgbGF5ZXItPnNldE93bmVyKCZncmlkKTsKKyAgICBlbHNlCisgICAgICAgIGxheWVyID0g
bV90aWxlQ2FjaGVMYXllci0+Y3JlYXRlQ29tcGF0aWJsZUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6
TGF5ZXJUeXBlVGlsZWRCYWNraW5nVGlsZUxheWVyLCAmZ3JpZCk7CiAKICAgICBsYXllci0+c2V0
QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOwogICAgIGxheWVyLT5zZXRCb3VuZHMoRmxvYXRS
ZWN0KEZsb2F0UG9pbnQoKSwgdGlsZVJlY3Quc2l6ZSgpKSk7CkBAIC01MTQsMTggKzQ2NSw2IEBA
IFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFRpbGVDb250cm9sbGVyOjoKICAgICByZXR1cm4gbGF5
ZXI7CiB9CiAKLWludCBUaWxlQ29udHJvbGxlcjo6cGxhdGZvcm1DQUxheWVySW5jcmVtZW50UmVw
YWludENvdW50KFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1DQUxheWVyKQotewotICAgIGludCBy
ZXBhaW50Q291bnQgPSAwOwotCi0gICAgaWYgKG1fdGlsZVJlcGFpbnRDb3VudHMuY29udGFpbnMo
cGxhdGZvcm1DQUxheWVyKSkKLSAgICAgICAgcmVwYWludENvdW50ID0gbV90aWxlUmVwYWludENv
dW50cy5nZXQocGxhdGZvcm1DQUxheWVyKTsKLQotICAgIG1fdGlsZVJlcGFpbnRDb3VudHMuc2V0
KHBsYXRmb3JtQ0FMYXllciwgKytyZXBhaW50Q291bnQpOwotCi0gICAgcmV0dXJuIHJlcGFpbnRD
b3VudDsKLX0KLQogVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+PiBUaWxlQ29udHJvbGxl
cjo6Y29udGFpbmVyTGF5ZXJzKCkKIHsKICAgICBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtQ0FMYXll
cj4+IGxheWVyTGlzdCgxKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9UaWxlR3JpZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9UaWxlR3JpZC5oCShyZXZpc2lvbiAxNjcwMzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUdyaWQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiSW50UG9pbnRIYXNoLmgiCiAjaW5jbHVk
ZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllckNsaWVudC5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KQEAgLTM2LDExICszNywxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIFBsYXRmb3JtQ0FMYXllcjsKIGNsYXNzIFRpbGVDb250
cm9sbGVyOwogCi1jbGFzcyBUaWxlR3JpZCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGls
ZUdyaWQpOworY2xhc3MgVGlsZUdyaWQgOiBwdWJsaWMgUGxhdGZvcm1DQUxheWVyQ2xpZW50IHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaWxlR3JpZCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIFRpbGVHcmlkKFRpbGVDb250cm9sbGVyJik7CiAgICAgflRpbGVH
cmlkKCk7CkBAIC0xMDksNiArMTExLDE3IEBAIHByaXZhdGU6CiAgICAgVGlsZUNvaG9ydCBuZXdl
c3RUaWxlQ29ob3J0KCkgY29uc3Q7CiAgICAgVGlsZUNvaG9ydCBvbGRlc3RUaWxlQ29ob3J0KCkg
Y29uc3Q7CiAKKyAgICB2b2lkIHJlbW92ZVRpbGVzKFZlY3RvcjxUaWxlR3JpZDo6VGlsZUluZGV4
PiYgdG9SZW1vdmUpOworCisgICAgLy8gUGxhdGZvcm1DQUxheWVyQ2xpZW50CisgICAgdmlydHVh
bCB2b2lkIHBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHMoUGxhdGZvcm1DQUxheWVyKiwgR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIHBsYXRmb3JtQ0FMYXllclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKFBsYXRmb3Jt
Q0FMYXllciopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IHBsYXRmb3JtQ0FMYXll
ckluY3JlbWVudFJlcGFpbnRDb3VudChQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyQ29udGVudHNPcGFxdWUoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyRHJhd3NDb250ZW50KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgZmxvYXQgcGxhdGZvcm1DQUxh
eWVyRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKKwogICAgIFRpbGVDb250cm9s
bGVyJiBtX2NvbnRyb2xsZXI7CiAgICAgUmVmPFBsYXRmb3JtQ0FMYXllcj4gbV9jb250YWluZXJM
YXllcjsKIApAQCAtMTMyLDYgKzE0NSw5IEBAIHByaXZhdGU6CiAgICAgVGlsZUNvaG9ydExpc3Qg
bV9jb2hvcnRMaXN0OwogCiAgICAgVGltZXI8VGlsZUdyaWQ+IG1fY29ob3J0UmVtb3ZhbFRpbWVy
OworCisgICAgdHlwZWRlZiBIYXNoTWFwPFBsYXRmb3JtQ0FMYXllciosIGludD4gUmVwYWludENv
dW50TWFwOworICAgIFJlcGFpbnRDb3VudE1hcCBtX3RpbGVSZXBhaW50Q291bnRzOwogfTsKIAog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVHcmlk
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9UaWxlR3JpZC5tbQkocmV2aXNpb24gMTY3MDM0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVHcmlkLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5ICsy
NiwxMSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJUaWxlR3JpZC5oIgogCisjaW1w
b3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIkxheWVyUG9vbC5oIgogI2ltcG9ydCAi
UGxhdGZvcm1DQUxheWVyLmgiCiAjaW1wb3J0ICJUaWxlQ29udHJvbGxlci5oIgorI2ltcG9ydCAi
V2ViTGF5ZXIuaCIKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKICNpZiBQTEFURk9STShJ
T1MpCkBAIC0yODAsMzEgKzI4MiwzMCBAQCB1bnNpZ25lZCBUaWxlR3JpZDo6YmxhbmtQaXhlbENv
dW50KCkgY29uCiAgICAgcmV0dXJuIFRpbGVDb250cm9sbGVyOjpibGFua1BpeGVsQ291bnRGb3JU
aWxlcyh0aWxlcywgbV9jb250cm9sbGVyLnZpc2libGVSZWN0KCksIEludFBvaW50KDAsMCkpOwog
fQogCi1zdGF0aWMgaW5saW5lIHZvaWQgcXVldWVUaWxlRm9yUmVtb3ZhbChjb25zdCBUaWxlR3Jp
ZDo6VGlsZUluZGV4JiB0aWxlSW5kZXgsIGNvbnN0IFRpbGVHcmlkOjpUaWxlSW5mbyYgdGlsZUlu
Zm8sIFZlY3RvcjxUaWxlR3JpZDo6VGlsZUluZGV4PiYgdGlsZXNUb1JlbW92ZSwgVGlsZUNvbnRy
b2xsZXI6OlJlcGFpbnRDb3VudE1hcCYgcmVwYWludENvdW50cykKK3ZvaWQgVGlsZUdyaWQ6OnJl
bW92ZVRpbGVzKFZlY3RvcjxUaWxlR3JpZDo6VGlsZUluZGV4PiYgdG9SZW1vdmUpCiB7Ci0gICAg
dGlsZUluZm8ubGF5ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7Ci0gICAgcmVwYWludENvdW50
cy5yZW1vdmUodGlsZUluZm8ubGF5ZXIuZ2V0KCkpOwotICAgIHRpbGVzVG9SZW1vdmUuYXBwZW5k
KHRpbGVJbmRleCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0b1JlbW92ZS5zaXplKCk7
ICsraSkgeworICAgICAgICBUaWxlSW5mbyB0aWxlSW5mbyA9IG1fdGlsZXMudGFrZSh0b1JlbW92
ZVtpXSk7CisgICAgICAgIHRpbGVJbmZvLmxheWVyLT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOwor
ICAgICAgICBtX3RpbGVSZXBhaW50Q291bnRzLnJlbW92ZSh0aWxlSW5mby5sYXllci5nZXQoKSk7
CisjaWYgIVBMQVRGT1JNKElPUykKKyAgICAgICAgTGF5ZXJQb29sOjpzaGFyZWRQb29sKCktPmFk
ZExheWVyKHRpbGVJbmZvLmxheWVyKTsKKyNlbmRpZgorICAgIH0KIH0KIAogdm9pZCBUaWxlR3Jp
ZDo6cmVtb3ZlQWxsU2Vjb25kYXJ5VGlsZXMoKQogewogICAgIFZlY3RvcjxUaWxlSW5kZXg+IHRp
bGVzVG9SZW1vdmU7CiAKLSAgICBmb3IgKFRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5i
ZWdpbigpLCBlbmQgPSBtX3RpbGVzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAg
Y29uc3QgVGlsZUluZm8mIHRpbGVJbmZvID0gaXQtPnZhbHVlOworICAgIGZvciAoYXV0byYgZW50
cnkgOiBtX3RpbGVzKSB7CisgICAgICAgIGNvbnN0IFRpbGVJbmZvJiB0aWxlSW5mbyA9IGVudHJ5
LnZhbHVlOwogICAgICAgICBpZiAodGlsZUluZm8uY29ob3J0ID09IFZpc2libGVUaWxlQ29ob3J0
KQogICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgcXVldWVUaWxlRm9yUmVtb3ZhbChp
dC0+a2V5LCBpdC0+dmFsdWUsIHRpbGVzVG9SZW1vdmUsIG1fY29udHJvbGxlci5yZXBhaW50Q291
bnRNYXAoKSk7CisgICAgICAgIHRpbGVzVG9SZW1vdmUuYXBwZW5kKGVudHJ5LmtleSk7CiAgICAg
fQogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0aWxlc1RvUmVtb3ZlLnNpemUoKTsgKytp
KSB7Ci0gICAgICAgIFRpbGVJbmZvIHRpbGVJbmZvID0gbV90aWxlcy50YWtlKHRpbGVzVG9SZW1v
dmVbaV0pOwotI2lmICFQTEFURk9STShJT1MpCi0gICAgICAgIExheWVyUG9vbDo6c2hhcmVkUG9v
bCgpLT5hZGRMYXllcih0aWxlSW5mby5sYXllcik7Ci0jZW5kaWYKLSAgICB9CisgICAgcmVtb3Zl
VGlsZXModGlsZXNUb1JlbW92ZSk7CiB9CiAKIHZvaWQgVGlsZUdyaWQ6OnJlbW92ZVRpbGVzSW5D
b2hvcnQoVGlsZUNvaG9ydCBjb2hvcnQpCkBAIC0zMTIsMjAgKzMxMywxNCBAQCB2b2lkIFRpbGVH
cmlkOjpyZW1vdmVUaWxlc0luQ29ob3J0KFRpbGVDCiAgICAgQVNTRVJUKGNvaG9ydCAhPSBWaXNp
YmxlVGlsZUNvaG9ydCk7CiAgICAgVmVjdG9yPFRpbGVJbmRleD4gdGlsZXNUb1JlbW92ZTsKIAot
ICAgIGZvciAoVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCksIGVuZCA9IG1f
dGlsZXMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBjb25zdCBUaWxlSW5mbyYg
dGlsZUluZm8gPSBpdC0+dmFsdWU7CisgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fdGlsZXMpIHsK
KyAgICAgICAgY29uc3QgVGlsZUluZm8mIHRpbGVJbmZvID0gZW50cnkudmFsdWU7CiAgICAgICAg
IGlmICh0aWxlSW5mby5jb2hvcnQgIT0gY29ob3J0KQogICAgICAgICAgICAgY29udGludWU7Ci0K
LSAgICAgICAgcXVldWVUaWxlRm9yUmVtb3ZhbChpdC0+a2V5LCBpdC0+dmFsdWUsIHRpbGVzVG9S
ZW1vdmUsIG1fY29udHJvbGxlci5yZXBhaW50Q291bnRNYXAoKSk7CisgICAgICAgIHRpbGVzVG9S
ZW1vdmUuYXBwZW5kKGVudHJ5LmtleSk7CiAgICAgfQogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB0aWxlc1RvUmVtb3ZlLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFRpbGVJbmZvIHRpbGVJ
bmZvID0gbV90aWxlcy50YWtlKHRpbGVzVG9SZW1vdmVbaV0pOwotI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgICAgIExheWVyUG9vbDo6c2hhcmVkUG9vbCgpLT5hZGRMYXllcih0aWxlSW5mby5sYXll
cik7Ci0jZW5kaWYKLSAgICB9CisgICAgcmVtb3ZlVGlsZXModGlsZXNUb1JlbW92ZSk7CiB9CiAK
IHZvaWQgVGlsZUdyaWQ6OnJldmFsaWRhdGVUaWxlcyhUaWxlVmFsaWRhdGlvblBvbGljeUZsYWdz
IHZhbGlkYXRpb25Qb2xpY3kpCkBAIC00MjksMTMgKzQyNCw5IEBAIHZvaWQgVGlsZUdyaWQ6OnJl
dmFsaWRhdGVUaWxlcyhUaWxlVmFsaWQKICAgICAgICAgZ2V0VGlsZUluZGV4UmFuZ2VGb3JSZWN0
KGJvdW5kc0luVGlsZUNvb3JkcywgdG9wTGVmdEZvckJvdW5kcywgYm90dG9tUmlnaHRGb3JCb3Vu
ZHMpOwogCiAgICAgICAgIFZlY3RvcjxUaWxlSW5kZXg+IHRpbGVzVG9SZW1vdmU7Ci0gICAgICAg
IGZvciAoVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCksIGVuZCA9IG1fdGls
ZXMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICAgICAgY29uc3QgVGlsZUluZGV4
JiBpbmRleCA9IGl0LT5rZXk7Ci0gICAgICAgICAgICBpZiAoaW5kZXgueSgpIDwgdG9wTGVmdEZv
ckJvdW5kcy55KCkKLSAgICAgICAgICAgICAgICB8fCBpbmRleC55KCkgPiBib3R0b21SaWdodEZv
ckJvdW5kcy55KCkKLSAgICAgICAgICAgICAgICB8fCBpbmRleC54KCkgPCB0b3BMZWZ0Rm9yQm91
bmRzLngoKQotICAgICAgICAgICAgICAgIHx8IGluZGV4LngoKSA+IGJvdHRvbVJpZ2h0Rm9yQm91
bmRzLngoKSkKLSAgICAgICAgICAgICAgICBxdWV1ZVRpbGVGb3JSZW1vdmFsKGluZGV4LCBpdC0+
dmFsdWUsIHRpbGVzVG9SZW1vdmUsIG1fY29udHJvbGxlci5yZXBhaW50Q291bnRNYXAoKSk7Cisg
ICAgICAgIGZvciAoYXV0byYgaW5kZXggOiBtX3RpbGVzLmtleXMoKSkgeworICAgICAgICAgICAg
aWYgKGluZGV4LnkoKSA8IHRvcExlZnRGb3JCb3VuZHMueSgpIHx8IGluZGV4LnkoKSA+IGJvdHRv
bVJpZ2h0Rm9yQm91bmRzLnkoKSB8fCBpbmRleC54KCkgPCB0b3BMZWZ0Rm9yQm91bmRzLngoKSB8
fCBpbmRleC54KCkgPiBib3R0b21SaWdodEZvckJvdW5kcy54KCkpCisgICAgICAgICAgICAgICAg
dGlsZXNUb1JlbW92ZS5hcHBlbmQoaW5kZXgpOwogICAgICAgICB9CiAKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDAsIHNpemUgPSB0aWxlc1RvUmVtb3ZlLnNpemUoKTsgaSA8IHNpemU7ICsraSkg
ewpAQCAtNTMyLDkgKzUyMywxMCBAQCBJbnRSZWN0IFRpbGVHcmlkOjplbnN1cmVUaWxlc0ZvclJl
Y3QoY29uCiAKICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUgPSBm
YWxzZTsKIAotICAgICAgICAgICAgaWYgKCF0aWxlSW5mby5sYXllcikKLSAgICAgICAgICAgICAg
ICB0aWxlSW5mby5sYXllciA9IG1fY29udHJvbGxlci5jcmVhdGVUaWxlTGF5ZXIodGlsZVJlY3Qp
OwotICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoIXRpbGVJbmZvLmxheWVyKSB7
CisgICAgICAgICAgICAgICAgdGlsZUluZm8ubGF5ZXIgPSBtX2NvbnRyb2xsZXIuY3JlYXRlVGls
ZUxheWVyKHRpbGVSZWN0LCAqdGhpcyk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFtX3RpbGVS
ZXBhaW50Q291bnRzLmNvbnRhaW5zKHRpbGVJbmZvLmxheWVyLmdldCgpKSk7CisgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFdlIGFscmVhZHkgaGF2ZSBhIGxheWVyIGZv
ciB0aGlzIHRpbGUuIEVuc3VyZSB0aGF0IGl0cyBzaXplIGlzIGNvcnJlY3QuCiAgICAgICAgICAg
ICAgICAgRmxvYXRTaXplIHRpbGVMYXllclNpemUodGlsZUluZm8ubGF5ZXItPmJvdW5kcygpLnNp
emUoKSk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUgPSB0aWxl
TGF5ZXJTaXplICE9IEZsb2F0U2l6ZSh0aWxlUmVjdC5zaXplKCkpOwpAQCAtNjQ0LDYgKzYzNiw2
OSBAQCB2b2lkIFRpbGVHcmlkOjpkcmF3VGlsZU1hcENvbnRlbnRzKENHQ29uCiAgICAgfQogfQog
Cit2b2lkIFRpbGVHcmlkOjpwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKFBsYXRmb3JtQ0FM
YXllciogcGxhdGZvcm1DQUxheWVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYpCit7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIGlmIChwdGhyZWFkX21haW5fbnAo
KSkKKyAgICAgICAgV2ViVGhyZWFkTG9jaygpOworI2VuZGlmCisKKyAgICB7CisgICAgICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAgICAgICBG
bG9hdFBvaW50M0QgbGF5ZXJPcmlnaW4gPSBwbGF0Zm9ybUNBTGF5ZXItPnBvc2l0aW9uKCk7Cisg
ICAgICAgIGNvbnRleHQudHJhbnNsYXRlKC1sYXllck9yaWdpbi54KCksIC1sYXllck9yaWdpbi55
KCkpOworICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZShtX3NjYWxlLCBtX3NjYWxlKSk7
CisKKyAgICAgICAgUmVwYWludFJlY3RMaXN0IGRpcnR5UmVjdHMgPSBjb2xsZWN0UmVjdHNUb1Bh
aW50KGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIHBsYXRmb3JtQ0FMYXllcik7CisgICAgICAg
IGRyYXdMYXllckNvbnRlbnRzKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksICZtX2NvbnRyb2xs
ZXIucm9vdExheWVyKCksIGRpcnR5UmVjdHMpOworICAgIH0KKworICAgIGludCByZXBhaW50Q291
bnQgPSBwbGF0Zm9ybUNBTGF5ZXJJbmNyZW1lbnRSZXBhaW50Q291bnQocGxhdGZvcm1DQUxheWVy
KTsKKyAgICBpZiAobV9jb250cm9sbGVyLnJvb3RMYXllcigpLm93bmVyKCktPnBsYXRmb3JtQ0FM
YXllclNob3dSZXBhaW50Q291bnRlcigwKSkKKyAgICAgICAgZHJhd1JlcGFpbnRJbmRpY2F0b3Io
Y29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgcGxhdGZvcm1DQUxheWVyLCByZXBhaW50Q291bnQs
IGNhY2hlZENHQ29sb3IobV9jb250cm9sbGVyLnRpbGVEZWJ1Z0JvcmRlckNvbG9yKCksIENvbG9y
U3BhY2VEZXZpY2VSR0IpKTsKKworICAgIGlmIChtX2NvbnRyb2xsZXIuc2Nyb2xsaW5nUGVyZm9y
bWFuY2VMb2dnaW5nRW5hYmxlZCgpKSB7CisgICAgICAgIEZsb2F0UmVjdCB2aXNpYmxlUGFydChw
bGF0Zm9ybUNBTGF5ZXItPnBvc2l0aW9uKCkueCgpLCBwbGF0Zm9ybUNBTGF5ZXItPnBvc2l0aW9u
KCkueSgpLCBwbGF0Zm9ybUNBTGF5ZXItPmJvdW5kcygpLnNpemUoKS53aWR0aCgpLCBwbGF0Zm9y
bUNBTGF5ZXItPmJvdW5kcygpLnNpemUoKS5oZWlnaHQoKSk7CisgICAgICAgIHZpc2libGVQYXJ0
LmludGVyc2VjdChtX2NvbnRyb2xsZXIudmlzaWJsZVJlY3QoKSk7CisKKyAgICAgICAgaWYgKHJl
cGFpbnRDb3VudCA9PSAxICYmICF2aXNpYmxlUGFydC5pc0VtcHR5KCkpCisgICAgICAgICAgICBX
VEZMb2dBbHdheXMoIlNDUk9MTElORzogRmlsbGVkIHZpc2libGUgZnJlc2ggdGlsZS4gVGltZTog
JWYgVW5maWxsZWQgUGl4ZWxzOiAldVxuIiwgV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKSwgYmxhbmtQaXhlbENvdW50KCkpOworICAgIH0KK30KKworZmxvYXQgVGlsZUdyaWQ6OnBs
YXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9j
b250cm9sbGVyLnJvb3RMYXllcigpLm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxl
RmFjdG9yKCk7Cit9CisKK2Jvb2wgVGlsZUdyaWQ6OnBsYXRmb3JtQ0FMYXllclNob3dEZWJ1Z0Jv
cmRlcnMoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRyb2xsZXIucm9vdExheWVyKCkub3du
ZXIoKS0+cGxhdGZvcm1DQUxheWVyU2hvd0RlYnVnQm9yZGVycygpOworfQorCitib29sIFRpbGVH
cmlkOjpwbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIoUGxhdGZvcm1DQUxheWVyKikg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250cm9sbGVyLnJvb3RMYXllcigpLm93bmVyKCktPnBs
YXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcigwKTsKK30KKworYm9vbCBUaWxlR3JpZDo6
cGxhdGZvcm1DQUxheWVyQ29udGVudHNPcGFxdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2Nv
bnRyb2xsZXIudGlsZXNBcmVPcGFxdWUoKTsKK30KKworaW50IFRpbGVHcmlkOjpwbGF0Zm9ybUNB
TGF5ZXJJbmNyZW1lbnRSZXBhaW50Q291bnQoUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUNBTGF5
ZXIpCit7CisgICAgaW50IHJlcGFpbnRDb3VudCA9IDA7CisKKyAgICBpZiAobV90aWxlUmVwYWlu
dENvdW50cy5jb250YWlucyhwbGF0Zm9ybUNBTGF5ZXIpKQorICAgICAgICByZXBhaW50Q291bnQg
PSBtX3RpbGVSZXBhaW50Q291bnRzLmdldChwbGF0Zm9ybUNBTGF5ZXIpOworCisgICAgbV90aWxl
UmVwYWludENvdW50cy5zZXQocGxhdGZvcm1DQUxheWVyLCArK3JlcGFpbnRDb3VudCk7CisKKyAg
ICByZXR1cm4gcmVwYWludENvdW50OworfQorCiAjaWYgUExBVEZPUk0oSU9TKQogdm9pZCBUaWxl
R3JpZDo6cmVtb3ZlVW5wYXJlbnRlZFRpbGVzTm93KCkKIHsK
</data>
<flag name="review"
          id="253346"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>