<?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>134050</bug_id>
          
          <creation_ts>2014-06-18 17:00:58 -0700</creation_ts>
          <short_desc>LayerPool’d PlatformCALayerRemote/RemoteLayerBackingStore can have stale context pointers</short_desc>
          <delta_ts>2014-06-20 00:34:43 -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>InRadar</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>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1016593</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-18 17:00:58 -0700</bug_when>
    <thetext>Leading to horrible things when they are destroyed or displayed (and try to use said stale pointers).

&lt;rdar://problem/17315114&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016780</commentid>
    <comment_count>1</comment_count>
      <attachid>233387</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-19 15:22:10 -0700</bug_when>
    <thetext>Created attachment 233387
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016782</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-19 15:24:04 -0700</bug_when>
    <thetext>Attachment 233387 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/ca/PlatformCALayer.h:228:  The parameter name &quot;layerType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/ca/PlatformCALayer.h:228:  The parameter name &quot;client&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp:27:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 3 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016783</commentid>
    <comment_count>3</comment_count>
      <attachid>233387</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-19 15:41:14 -0700</bug_when>
    <thetext>Comment on attachment 233387
patch

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

&gt; Source/WebCore/platform/graphics/ca/PlatformCALayer.h:228
&gt; +    PassRefPtr&lt;PlatformCALayer&gt; createCompatibleLayerWithSize(LayerType layerType, PlatformCALayerClient* client, IntSize, UseLayerPool = UseLayerPool::DoNotUse);

UseLayerPool::DoNotUse hurts.

Why not just have two create methods, one which tries the pool then calls the other?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016872</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-20 00:34:43 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/170179</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233387</attachid>
            <date>2014-06-19 15:22:10 -0700</date>
            <delta_ts>2014-06-19 15:41:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>layerpool.diff</filename>
            <type>text/plain</type>
            <size>21015</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjY2FhNTVmLi41YjdmZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTQtMDYtMTkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgTGF5ZXJQb29s4oCZZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUvUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUgY2FuIGhhdmUgc3RhbGUgY29udGV4dCBwb2ludGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MDUwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8xNzMxNTExND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVz
c3VyZUhhbmRsZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6cGxhdGZvcm1SZWxlYXNlTWVtb3J5KToKKyAgICAgICAgRHJhaW4gYWxsIExheWVyUG9v
bHMgdXBvbiBtZW1vcnkgcHJlc3N1cmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS9MYXllclBvb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJQb29sOjpMYXllclBvb2wp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJQb29sOjp+TGF5ZXJQb29sKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyUG9vbDo6YWxsTGF5ZXJQb29scyk6CisgICAgICAgIChXZWJDb3JlOjpMYXll
clBvb2w6OnNoYXJlZFBvb2wpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL0xheWVyUG9vbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OmNyZWF0ZUNv
bXBhdGlibGVMYXllcldpdGhTaXplKToKKyAgICAgICAgQWRkIGNyZWF0ZUNvbXBhdGlibGVMYXll
cldpdGhTaXplLCB3aGljaCBvcHRpb25hbGx5IHRyaWVzIHRvIHRha2Ugc2FpZCBsYXllciBmcm9t
IHRoZSBMYXllclBvb2wuCisKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6bW92
ZVRvTGF5ZXJQb29sKToKKyAgICAgICAgQWRkIG1vdmVUb0xheWVyUG9vbCwgd2hpY2ggbW92ZXMg
dGhlIGxheWVyIHRvIHRoZSBMYXllclBvb2wuCisKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllcjo6bGF5ZXJQb29sKToKKyAgICAgICAgVGhlIExheWVyUG9vbCBmb3IgZWFjaCBsYXll
ciBpcyBvYnRhaW5lZCB2aWEgUGxhdGZvcm1DQUxheWVyOjpsYXllclBvb2woKSwgd2hpY2ggc3Vi
Y2xhc3NlcyBjYW4gb3ZlcnJpZGUgZm9yIHNwZWNpYWwgYmVoYXZpb3JzLgorICAgICAgICBUaGUg
YmFzZSBjbGFzcyB1c2VzIGEgZ2xvYmFsIExheWVyUG9vbC4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDb250cm9s
bGVyOjpjcmVhdGVUaWxlTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1Rp
bGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVHcmlkOjpyZW1vdmVUaWxlcyk6CisK
IDIwMTQtMDYtMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBbaU9TIFdlYkdMXSBGaXhlZCBXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZy
dGMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDIyYTg0YjcuLjFlOWRlMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC0xNDY4LDYgKzE0NjgsMTAgQEAgX19aTjdXZWJDb3JlOUlubGluZUJveDE0
ZGlydHlMaW5lQm94ZXNFdgogX19aTjdXZWJDb3JlOUlubGluZUJveDE0c2VsZWN0aW9uU3RhdGVF
dgogX19aTjdXZWJDb3JlOUlubGluZUJveDE2cGxhY2VFbGxpcHNpc0JveEViZmZmUmZSYgogX19a
TjdXZWJDb3JlOUpTRWxlbWVudDZzX2luZm9FCitfX1pON1dlYkNvcmU5TGF5ZXJQb29sMTd0YWtl
TGF5ZXJXaXRoU2l6ZUVSS05TXzdJbnRTaXplRQorX19aTjdXZWJDb3JlOUxheWVyUG9vbDhhZGRM
YXllckVSS04zV1RGNlJlZlB0cklOU18xNVBsYXRmb3JtQ0FMYXllckVFRQorX19aTjdXZWJDb3Jl
OUxheWVyUG9vbEMxRXYKK19fWk43V2ViQ29yZTlMYXllclBvb2xEMUV2CiBfX1pON1dlYkNvcmU5
UGFnZUNhY2hlMTFzZXRDYXBhY2l0eUVpCiBfX1pON1dlYkNvcmU5UGFnZUNhY2hlMzNtYXJrUGFn
ZXNGb3JWaXN0ZWRMaW5rU3R5bGVSZWNhbGNFdgogX19aTjdXZWJDb3JlOVBhZ2VDYWNoZTZyZW1v
dmVFUE5TXzExSGlzdG9yeUl0ZW1FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmRkZGYxYy4uYWRjNzgwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ5Miw4
ICsxNDkyLDggQEAKIAkJNDM5MDQ2REQxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE1h
dGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5
MDQ2QzkxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE1hdGguY3BwICovOyB9OwogCQk0
MzkwNDZERTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2Q0ExMkRBMjVFODAwQUY4
MEEyIC8qIFJlbmRlck1hdGhNTE1hdGguaCAqLzsgfTsKIAkJNDM5MDQ2REYxMkRBMjVFODAwQUY4
MEEyIC8qIFJlbmRlck1hdGhNTE9wZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzOTA0NkNCMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJN
YXRoTUxPcGVyYXRvci5jcHAgKi87IH07Ci0JCTQzOTA0NkUwMTJEQTI1RTgwMEFGODBBMiAvKiBS
ZW5kZXJNYXRoTUxPcGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDM5MDQ2Q0MxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE9wZXJh
dG9yLmggKi87IH07CiAJCTQzOTA0NkRGMTJEQTI1RTgwMEJGODBBMyAvKiBSZW5kZXJNYXRoTUxS
YWRpY2FsT3BlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDM5MDQ2Q0IxMkRBMjVFODAwQkY4MEEzIC8qIFJlbmRlck1hdGhNTFJhZGljYWxP
cGVyYXRvci5jcHAgKi87IH07CisJCTQzOTA0NkUwMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJN
YXRoTUxPcGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDM5MDQ2Q0MxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE9wZXJhdG9yLmgg
Ki87IH07CiAJCTQzOTA0NkUwMTJEQTI1RTgwMEJGODBBMyAvKiBSZW5kZXJNYXRoTUxSYWRpY2Fs
T3BlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQzOTA0NkNDMTJEQTI1RTgwMEJGODBBMyAvKiBSZW5kZXJNYXRoTUxSYWRpY2FsT3BlcmF0b3Iu
aCAqLzsgfTsKIAkJNDM5MDQ2RTExMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTFJvb3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2
Q0QxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTFJvb3QuY3BwICovOyB9OwogCQk0Mzkw
NDZFMjEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MUm9vdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2Q0UxMkRBMjVFODAwQUY4MEEy
IC8qIFJlbmRlck1hdGhNTFJvb3QuaCAqLzsgfTsKQEAgLTIzNTIsNyArMjM1Miw3IEBACiAJCTdB
QTNBNjlCMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUEzQTY5NzE5NEE2NEU3MDAxQ0JEMjQgLyog
VGlsZUdyaWQuY3BwICovOyB9OwogCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdy
aWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBQTNB
Njk4MTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oICovOyB9OwogCQk3QUEzQTY5RjE5NEI1
OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdBQTNBNjlEMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wu
Y3BwICovOyB9OwotCQk3QUEzQTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUEzQTY5RTE5NEI1
OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggKi87IH07CisJCTdBQTNBNkEwMTk0QjU5QjYwMDFD
QkQyNCAvKiBMYXllclBvb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdBQTNBNjlFMTk0QjU5QjYwMDFDQkQyNCAvKiBMYXllclBvb2wuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QUEzQTZBMzE5NEI1
QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBQTNBNkExMTk0QjVDMjIwMDFDQkQyNCAvKiBUaWxl
Q292ZXJhZ2VNYXAuY3BwICovOyB9OwogCQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGls
ZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QUEzQTZBMjE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggKi87IH07
CiAJCTdBQUJBMjU5MTRCQzYxMzMwMEFBOUExMSAvKiBET01FZGl0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FBQkEyNTcxNEJDNjEzMzAwQUE5
QTExIC8qIERPTUVkaXRvci5jcHAgKi87IH07CkBAIC04NTE1LDggKzg1MTUsOCBAQAogCQk0Mzkw
NDZDOTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW5kZXJNYXRoTUxNYXRoLmNwcDsgcGF0aCA9IG1h
dGhtbC9SZW5kZXJNYXRoTUxNYXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDM5MDQ2Q0ExMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE1hdGguaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVuZGVyTWF0aE1MTWF0aC5oOyBwYXRoID0gbWF0aG1s
L1JlbmRlck1hdGhNTE1hdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM5MDQ2
Q0IxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE9wZXJhdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbmRlck1hdGhNTE9wZXJhdG9yLmNwcDsgcGF0
aCA9IG1hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQzOTA0NkNDMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxPcGVyYXRv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW5kZXJNYXRoTUxPcGVyYXRv
ci5oOyBwYXRoID0gbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQzOTA0NkNCMTJEQTI1RTgwMEJGODBBMyAvKiBSZW5kZXJNYXRoTUxS
YWRpY2FsT3BlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9yLmNwcDsgcGF0aCA9IG1hdGhtbC9SZW5kZXJNYXRo
TUxSYWRpY2FsT3BlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0Mzkw
NDZDQzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVuZGVyTWF0aE1MT3BlcmF0b3IuaDsgcGF0aCA9IG1h
dGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MzkwNDZDQzEyREEyNUU4MDBCRjgwQTMgLyogUmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbmRlck1hdGhNTFJhZGljYWxP
cGVyYXRvci5oOyBwYXRoID0gbWF0aG1sL1JlbmRlck1hdGhNTFJhZGljYWxPcGVyYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzkwNDZDRDEyREEyNUU4MDBBRjgwQTIgLyog
UmVuZGVyTWF0aE1MUm9vdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBSZW5kZXJNYXRoTUxSb290LmNwcDsgcGF0aCA9IG1hdGhtbC9SZW5kZXJNYXRoTUxSb290LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM5MDQ2Q0UxMkRBMjVFODAwQUY4MEEy
IC8qIFJlbmRlck1hdGhNTFJvb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
UmVuZGVyTWF0aE1MUm9vdC5oOyBwYXRoID0gbWF0aG1sL1JlbmRlck1hdGhNTFJvb3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KaW5kZXggNWIxYTk0
Yi4uN2Y0ZmY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KQEAgLTQ4LDggKzQ4LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3JtUmVs
ZWFzZU1lbW9yeShib29sKQogewogICAgIHsKLSAgICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiRHJh
aW4gTGF5ZXJQb29sIik7Ci0gICAgICAgIExheWVyUG9vbDo6c2hhcmVkUG9vbCgpLT5kcmFpbigp
OworICAgICAgICBSZWxpZWZMb2dnZXIgbG9nKCJEcmFpbiBMYXllclBvb2xzIik7CisgICAgICAg
IGZvciAoYXV0byYgcG9vbCA6IExheWVyUG9vbDo6YWxsTGF5ZXJQb29scygpKQorICAgICAgICAg
ICAgcG9vbC0+ZHJhaW4oKTsKICAgICB9CiAjaWYgVVNFKElPU1VSRkFDRSkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllclBvb2wuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJQb29sLmNwcAppbmRl
eCAyOWI2ZjdjLi5iNDliZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9MYXllclBvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0xheWVyUG9vbC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSwxMiArNDAsMTgg
QEAgTGF5ZXJQb29sOjpMYXllclBvb2woKQogICAgICwgbV9wcnVuZVRpbWVyKHRoaXMsICZMYXll
clBvb2w6OnBydW5lVGltZXJGaXJlZCkKICAgICAsIG1fbGFzdEFkZFRpbWUoMCkKIHsKKyAgICBh
bGxMYXllclBvb2xzKCkuYWRkKHRoaXMpOwogfQogCi1MYXllclBvb2wqIExheWVyUG9vbDo6c2hh
cmVkUG9vbCgpCitMYXllclBvb2w6On5MYXllclBvb2woKQogewotICAgIHN0YXRpYyBMYXllclBv
b2wqIHNoYXJlZFBvb2wgPSBuZXcgTGF5ZXJQb29sOwotICAgIHJldHVybiBzaGFyZWRQb29sOwor
ICAgIGFsbExheWVyUG9vbHMoKS5yZW1vdmUodGhpcyk7Cit9CisKK0hhc2hTZXQ8TGF5ZXJQb29s
Kj4mIExheWVyUG9vbDo6YWxsTGF5ZXJQb29scygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEhhc2hTZXQ8TGF5ZXJQb29sKj4+IGFsbExheWVyUG9vbHM7CisgICAgcmV0dXJuIGFsbExh
eWVyUG9vbHMuZ2V0KCk7CiB9CiAKIHVuc2lnbmVkIExheWVyUG9vbDo6YmFja2luZ1N0b3JlQnl0
ZXNGb3JTaXplKGNvbnN0IEludFNpemUmIHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllclBvb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0xheWVyUG9vbC5oCmluZGV4IDFkM2YwZmMuLmMzYjliNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyUG9vbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyUG9vbC5oCkBAIC00
MSw3ICs0MSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBMYXllclBvb2wgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKExheWVyUG9vbCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIExh
eWVyUG9vbCogc2hhcmVkUG9vbCgpOworICAgIExheWVyUG9vbCgpOworICAgIH5MYXllclBvb2wo
KTsKKworICAgIHN0YXRpYyBIYXNoU2V0PExheWVyUG9vbCo+JiBhbGxMYXllclBvb2xzKCk7CiAg
ICAgCiAgICAgdm9pZCBhZGRMYXllcihjb25zdCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiYpOwog
ICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IHRha2VMYXllcldpdGhTaXplKGNvbnN0IEludFNp
emUmKTsKQEAgLTUyLDggKzU1LDYgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGNhcGFjaXR5KCkg
Y29uc3QgeyByZXR1cm4gbV9tYXhCeXRlc0ZvclBvb2w7IH0KIAogcHJpdmF0ZToKLSAgICBMYXll
clBvb2woKTsKLQogICAgIHR5cGVkZWYgRGVxdWU8UmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4+IExh
eWVyTGlzdDsKIAogICAgIHVuc2lnbmVkIGRlY2F5ZWRDYXBhY2l0eSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5jcHAKaW5kZXggOWVmODIwMi4uZTc4Mzc4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuY3BwCkBAIC0yNCw2ICsy
NCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxheWVyUG9vbC5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRy
YXMuaD4KIApAQCAtOTEsNiArOTIsMzUgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OmRyYXdSZXBh
aW50SW5kaWNhdG9yKENHQ29udGV4dFJlZiBjb250ZXh0LCBQbGF0Zm9ybUNBTGF5ZXIKICAgICBD
R0NvbnRleHRSZXN0b3JlR1N0YXRlKGNvbnRleHQpOwogfQogCitQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FMYXllcj4gUGxhdGZvcm1DQUxheWVyOjpjcmVhdGVDb21wYXRpYmxlTGF5ZXJXaXRoU2l6ZShQ
bGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVu
dCogY2xpZW50LCBJbnRTaXplIHNpemUsIFBsYXRmb3JtQ0FMYXllcjo6VXNlTGF5ZXJQb29sIHVz
ZVBvb2wpCit7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gbGF5ZXI7CisKKyAgICBpZiAo
dXNlUG9vbCA9PSBQbGF0Zm9ybUNBTGF5ZXI6OlVzZUxheWVyUG9vbDo6VXNlKSB7CisgICAgICAg
IGlmICgobGF5ZXIgPSBsYXllclBvb2woKS50YWtlTGF5ZXJXaXRoU2l6ZShzaXplKSkpIHsKKyAg
ICAgICAgICAgIGxheWVyLT5zZXRPd25lcihjbGllbnQpOworICAgICAgICAgICAgcmV0dXJuIGxh
eWVyLnJlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxheWVyID0gY3JlYXRlQ29t
cGF0aWJsZUxheWVyKGxheWVyVHlwZSwgY2xpZW50KTsKKyAgICBsYXllci0+c2V0Qm91bmRzKEZs
b2F0UmVjdChGbG9hdFBvaW50KCksIHNpemUpKTsKKyAgICAKKyAgICByZXR1cm4gbGF5ZXIucmVs
ZWFzZSgpOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllcjo6bW92ZVRvTGF5ZXJQb29sKCkKK3sK
KyAgICBBU1NFUlQoIXN1cGVybGF5ZXIoKSk7CisgICAgbGF5ZXJQb29sKCkuYWRkTGF5ZXIodGhp
cyk7Cit9CisKK0xheWVyUG9vbCYgUGxhdGZvcm1DQUxheWVyOjpsYXllclBvb2woKQoreworICAg
IHN0YXRpYyBMYXllclBvb2wqIHNoYXJlZFBvb2wgPSBuZXcgTGF5ZXJQb29sOworICAgIHJldHVy
biAqc2hhcmVkUG9vbDsKK30KKwogfQogCiAjZW5kaWYgLy8gVVNFKENBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAppbmRl
eCAyZGYyZmE3Li45MjI1MGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaApAQCAtNDYsNiArNDYsNyBAQCB0eXBlZGVm
IHN0cnVjdCBDR0NvbnRleHQgKkNHQ29udGV4dFJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBMYXllclBvb2w7CiBjbGFzcyBQbGF0Zm9ybUNBTGF5ZXI7CiBjbGFzcyBQbGF0Zm9y
bUNBQW5pbWF0aW9uOwogCkBAIC0yMjIsNyArMjIzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
VGlsZVNpemUoY29uc3QgSW50U2l6ZSYpOwogI2VuZGlmCiAKKyAgICBlbnVtIGNsYXNzIFVzZUxh
eWVyUG9vbCB7IERvTm90VXNlLCBVc2UgfTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZv
cm1DQUxheWVyPiBjcmVhdGVDb21wYXRpYmxlTGF5ZXIoTGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5
ZXJDbGllbnQqKSBjb25zdCA9IDA7CisgICAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGNy
ZWF0ZUNvbXBhdGlibGVMYXllcldpdGhTaXplKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3Jt
Q0FMYXllckNsaWVudCogY2xpZW50LCBJbnRTaXplLCBVc2VMYXllclBvb2wgPSBVc2VMYXllclBv
b2w6OkRvTm90VXNlKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwgdm9pZCBl
bnVtZXJhdGVSZWN0c0JlaW5nRHJhd24oQ0dDb250ZXh0UmVmLCB2b2lkICheYmxvY2spKENHUmVj
dCkpID0gMDsKQEAgLTI0Myw5ICsyNDYsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRy
YXdSZXBhaW50SW5kaWNhdG9yKENHQ29udGV4dFJlZiwgUGxhdGZvcm1DQUxheWVyKiwgaW50IHJl
cGFpbnRDb3VudCwgQ0dDb2xvclJlZiBjdXN0b21CYWNrZ3JvdW5kQ29sb3IpOwogICAgIHN0YXRp
YyBDR1JlY3QgZnJhbWVGb3JMYXllcihjb25zdCBQbGF0Zm9ybUxheWVyKik7CiAKKyAgICB2b2lk
IG1vdmVUb0xheWVyUG9vbCgpOworCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1DQUxheWVyKExh
eWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcik7CiAKKyAgICB2aXJ0dWFsIExh
eWVyUG9vbCYgbGF5ZXJQb29sKCk7CisKICAgICBjb25zdCBMYXllclR5cGUgbV9sYXllclR5cGU7
CiAgICAgY29uc3QgR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIG1fbGF5ZXJJRDsKICAg
ICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV9sYXllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcAppbmRleCAyZTAw
Y2I4Li41NWE2Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9UaWxlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAi
VGlsZUNvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJMYXll
clBvb2wuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXIuaCIKICNpbmNsdWRlICJSZWdpb24u
aCIKICNpbmNsdWRlICJUaWxlQ292ZXJhZ2VNYXAuaCIKQEAgLTQ5MCwxNSArNDg5LDkgQEAgaW50
IFRpbGVDb250cm9sbGVyOjpyaWdodE1hcmdpbldpZHRoKCkgY29uc3QKIAogUmVmUHRyPFBsYXRm
b3JtQ0FMYXllcj4gVGlsZUNvbnRyb2xsZXI6OmNyZWF0ZVRpbGVMYXllcihjb25zdCBJbnRSZWN0
JiB0aWxlUmVjdCwgVGlsZUdyaWQmIGdyaWQpCiB7Ci0gICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXll
cj4gbGF5ZXIgPSBMYXllclBvb2w6OnNoYXJlZFBvb2woKS0+dGFrZUxheWVyV2l0aFNpemUodGls
ZVJlY3Quc2l6ZSgpKTsKLQotICAgIGlmIChsYXllcikKLSAgICAgICAgbGF5ZXItPnNldE93bmVy
KCZncmlkKTsKLSAgICBlbHNlCi0gICAgICAgIGxheWVyID0gbV90aWxlQ2FjaGVMYXllci0+Y3Jl
YXRlQ29tcGF0aWJsZUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVGlsZWRCYWNraW5n
VGlsZUxheWVyLCAmZ3JpZCk7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gbGF5ZXIgPSBt
X3RpbGVDYWNoZUxheWVyLT5jcmVhdGVDb21wYXRpYmxlTGF5ZXJXaXRoU2l6ZShQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFja2luZ1RpbGVMYXllciwgJmdyaWQsIHRpbGVSZWN0LnNp
emUoKSwgUGxhdGZvcm1DQUxheWVyOjpVc2VMYXllclBvb2w6OlVzZSk7CiAKICAgICBsYXllci0+
c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOwotICAgIGxheWVyLT5zZXRCb3VuZHMoRmxv
YXRSZWN0KEZsb2F0UG9pbnQoKSwgdGlsZVJlY3Quc2l6ZSgpKSk7CiAgICAgbGF5ZXItPnNldFBv
c2l0aW9uKHRpbGVSZWN0LmxvY2F0aW9uKCkpOwogICAgIGxheWVyLT5zZXRCb3JkZXJDb2xvciht
X3RpbGVEZWJ1Z0JvcmRlckNvbG9yKTsKICAgICBsYXllci0+c2V0Qm9yZGVyV2lkdGgobV90aWxl
RGVidWdCb3JkZXJXaWR0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9UaWxlR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9UaWxlR3JpZC5jcHAKaW5kZXggMjNlYjI1ZC4uMzM3ZTFjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcApAQCAtMjY0LDcgKzI2
NCw3IEBAIHZvaWQgVGlsZUdyaWQ6OnJlbW92ZVRpbGVzKFZlY3RvcjxUaWxlR3JpZDo6VGlsZUlu
ZGV4PiYgdG9SZW1vdmUpCiAgICAgICAgIFRpbGVJbmZvIHRpbGVJbmZvID0gbV90aWxlcy50YWtl
KHRvUmVtb3ZlW2ldKTsKICAgICAgICAgdGlsZUluZm8ubGF5ZXItPnJlbW92ZUZyb21TdXBlcmxh
eWVyKCk7CiAgICAgICAgIG1fdGlsZVJlcGFpbnRDb3VudHMucmVtb3ZlKHRpbGVJbmZvLmxheWVy
LmdldCgpKTsKLSAgICAgICAgTGF5ZXJQb29sOjpzaGFyZWRQb29sKCktPmFkZExheWVyKHRpbGVJ
bmZvLmxheWVyKTsKKyAgICAgICAgdGlsZUluZm8ubGF5ZXItPm1vdmVUb0xheWVyUG9vbCgpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDViMjY1MmMuLjY1NDA5YmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxNC0wNi0xOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KKworICAgICAgICBMYXllclBvb2zigJlkIFBsYXRmb3JtQ0FMYXllclJlbW90ZS9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZSBjYW4gaGF2ZSBzdGFsZSBjb250ZXh0IHBvaW50ZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQwNTAKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3MzE1MTE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU6OmxheWVyUG9vbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJQb29sKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyVHJlZUNvbnRleHQ6OmJ1aWxkVHJhbnNhY3Rpb24pOgorICAgICAgICBFbnN1cmUgdGhh
dCBsYXllcnMgYmVpbmcgY29tbWl0dGVkIGFyZSBhbHdheXMgaW4gdGhlIGNvbnRleHQgdGhhdCBp
cyBjb21taXR0aW5nIHRoZW0uCisgICAgICAgIFVzZSBhIExheWVyUG9vbCBwZXIgUmVtb3RlTGF5
ZXJUcmVlQ29udGV4dCwgdG8gYXZvaWQgbW92aW5nIGxheWVycyBiZXR3ZWVuIGNvbnRleHRzLgor
CiAyMDE0LTA2LTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZeKAmXMgUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dCBwb2ludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggZThlMmI3
NC4uYzhhNDRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtMTE3LDkgKzEx
NywxMCBAQCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6On5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoKQog
ICAgICAgICBtX2NvbnRleHQtPmxheWVyV2lsbEJlRGVzdHJveWVkKHRoaXMpOwogfQogCi12b2lk
IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbihSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit2b2lkIFBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVDb250ZXh0JiBj
b250ZXh0LCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7CiAgICAg
QVNTRVJUKCFtX3Byb3BlcnRpZXMuYmFja2luZ1N0b3JlIHx8IG93bmVyKCkpOworICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCZjb250ZXh0ID09IG1fY29udGV4dCk7CiAgICAg
CiAgICAgaWYgKG1fcHJvcGVydGllcy5iYWNraW5nU3RvcmUgJiYgKCFvd25lcigpIHx8ICFvd25l
cigpLT5wbGF0Zm9ybUNBTGF5ZXJEcmF3c0NvbnRlbnQoKSkpIHsKICAgICAgICAgbV9wcm9wZXJ0
aWVzLmJhY2tpbmdTdG9yZSA9IG51bGxwdHI7CkBAIC0xNDgsMTEgKzE0OSwxMSBAQCB2b2lkIFBs
YXRmb3JtQ0FMYXllclJlbW90ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbihSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jaGlsZHJlbi5z
aXplKCk7ICsraSkgewogICAgICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIGNoaWxkID0gdG9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUobV9jaGlsZHJlbltpXS5nZXQoKSk7CiAgICAgICAgIEFTU0VS
VChjaGlsZC0+c3VwZXJsYXllcigpID09IHRoaXMpOwotICAgICAgICBjaGlsZC0+cmVjdXJzaXZl
QnVpbGRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7CisgICAgICAgIGNoaWxkLT5yZWN1cnNpdmVC
dWlsZFRyYW5zYWN0aW9uKGNvbnRleHQsIHRyYW5zYWN0aW9uKTsKICAgICB9CiAKICAgICBpZiAo
bV9tYXNrTGF5ZXIpCi0gICAgICAgIG1fbWFza0xheWVyLT5yZWN1cnNpdmVCdWlsZFRyYW5zYWN0
aW9uKHRyYW5zYWN0aW9uKTsKKyAgICAgICAgbV9tYXNrTGF5ZXItPnJlY3Vyc2l2ZUJ1aWxkVHJh
bnNhY3Rpb24oY29udGV4dCwgdHJhbnNhY3Rpb24pOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6ZGlkQ29tbWl0KCkKQEAgLTY1Nyw0ICs2NTgsOSBAQCB1aW50MzJfdCBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU6Omhvc3RpbmdDb250ZXh0SUQoKQogICAgIHJldHVybiAwOwogfQogCitM
YXllclBvb2wmIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6bGF5ZXJQb29sKCkKK3sKKyAgICByZXR1
cm4gbV9jb250ZXh0LT5sYXllclBvb2woKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAppbmRleCBiZTM4OWNkLi43NGFlM2MzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaWxlQ29udHJvbGxlci5oPgogCitu
YW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBMYXllclBvb2w7Cit9CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwpAQCAtNDUsNyArNDksNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAKLSAgICB2b2lkIHJlY3Vyc2l2ZUJ1aWxk
VHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKKyAgICB2b2lkIHJlY3Vy
c2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCYsIFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCogZGlydHlSZWN0ID0gMCkgb3ZlcnJpZGU7CiAKQEAgLTE3
NSw2ICsxNzksOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCByZXF1aXJlc0N1c3RvbUFwcGVhcmFu
Y2VVcGRhdGVPbkJvdW5kc0NoYW5nZSgpIGNvbnN0OwogCisgICAgdmlydHVhbCBXZWJDb3JlOjpM
YXllclBvb2wmIGxheWVyUG9vbCgpIG92ZXJyaWRlOworCiAgICAgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OkxheWVyUHJvcGVydGllcyBtX3Byb3BlcnRpZXM7CiAgICAgV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyTGlzdCBtX2NoaWxkcmVuOwogICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZSog
bV9zdXBlcmxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAppbmRleCAwYTNiZjA3Li5k
MWY0MzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckZhY3RvcnkuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0xheWVyUG9vbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC01Miw2ICs1Myw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGJhY2tpbmdTdG9yZVdpbGxCZURlc3Ryb3llZChSZW1vdGVMYXllckJhY2tpbmdT
dG9yZSopOwogICAgIHZvaWQgYmFja2luZ1N0b3JlV2lsbEJlRGlzcGxheWVkKFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlKik7CiAKKyAgICBXZWJDb3JlOjpMYXllclBvb2wmIGxheWVyUG9vbCgpIHsg
cmV0dXJuIG1fbGF5ZXJQb29sOyB9CisKICAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGlu
Z01vZGUoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2UtPmxheWVySG9zdGluZ01vZGUoKTsgfQog
CiAgICAgdm9pZCBidWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiwg
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyJiByb290TGF5ZXIpOwpAQCAtODAsNiArODMsOCBAQCBw
cml2YXRlOgogICAgIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbiBtX2JhY2tpbmdT
dG9yZUNvbGxlY3Rpb247CiAgICAgCiAgICAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24qIG1f
Y3VycmVudFRyYW5zYWN0aW9uOworCisgICAgV2ViQ29yZTo6TGF5ZXJQb29sIG1fbGF5ZXJQb29s
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQu
bW0KaW5kZXggNmFiMmExNC4uOTNhNzc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5t
bQpAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6YnVpbGRU
cmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhCiAgICAgdHJhbnNh
Y3Rpb24uc2V0Um9vdExheWVySUQocm9vdExheWVyUmVtb3RlLmxheWVySUQoKSk7CiAKICAgICBt
X2N1cnJlbnRUcmFuc2FjdGlvbiA9ICZ0cmFuc2FjdGlvbjsKLSAgICByb290TGF5ZXJSZW1vdGUu
cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7CisgICAgcm9vdExheWVyUmVt
b3RlLnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oKnRoaXMsIHRyYW5zYWN0aW9uKTsKICAgICBt
X2N1cnJlbnRUcmFuc2FjdGlvbiA9IG51bGxwdHI7CiAKICAgICB0cmFuc2FjdGlvbi5zZXRDcmVh
dGVkTGF5ZXJzKHN0ZDo6bW92ZShtX2NyZWF0ZWRMYXllcnMpKTsK
</data>
<flag name="review"
          id="257888"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>