<?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>20315</bug_id>
          
          <creation_ts>2008-08-07 02:06:39 -0700</creation_ts>
          <short_desc>Memory leak with Canvas getImageData</short_desc>
          <delta_ts>2008-10-01 22:02:54 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.cuppadev.co.uk/assets/canvas-quirk.html</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="James Urquhart">jamesu</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>88025</commentid>
    <comment_count>0</comment_count>
    <who name="James Urquhart">jamesu</who>
    <bug_when>2008-08-07 02:06:39 -0700</bug_when>
    <thetext>I seem to be getting a rather predictable memory &quot;leak&quot; when using getImageData() on a 2d Canvas Rendering Context.

Basically in my test case, i am calling putImageData(getImageData(...), ...) every chance i can get. Memory usage climbs well into the 1 &lt;-&gt; 2gb range.

It should be noted that this occurs in other browsers too, though with varying cut-off points (presumably when the garbage collection finally kicks in).

However it should also be noted that i am essentially running the same code in a real app, i don&apos;t seem to encounter this issue (in WebKit r35620). For reference, i have put a copy of this up at the following URL:

http://www.cuppadev.co.uk/hiscumm/webkit-canvas-mem/js_test.html

(search for &quot;fastPaletteRemap&quot; if you want the meat of it)

As for why this is, i am really stumped. So i can&apos;t really rely on it.

Any insight would be appreciated of course. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93496</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-09-30 20:41:27 -0700</bug_when>
    <thetext>Ouch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93497</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-09-30 20:44:44 -0700</bug_when>
    <thetext>JSImageData::JSImageData just needs to call JSC::Heap::reportExtraCost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93502</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-09-30 21:41:46 -0700</bug_when>
    <thetext>JSCanvasPixelArrayCustom already does that -- i suppose if you never used the CPA that would achieve this result but, if you ever did touch it it would report...

Hmmmm -- i wonder if we ever get rid of the cached wrapper though?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93658</commentid>
    <comment_count>4</comment_count>
      <attachid>24004</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-10-01 21:41:30 -0700</bug_when>
    <thetext>Created attachment 24004
Fixeration

Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93660</commentid>
    <comment_count>5</comment_count>
      <attachid>24004</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-10-01 21:43:02 -0700</bug_when>
    <thetext>Comment on attachment 24004
Fixeration

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93665</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-10-01 22:02:54 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	D	WebCore/bindings/js/JSCanvasPixelArrayCustom.cpp
	M	WebCore/ChangeLog
	M	WebCore/WebCore.xcodeproj/project.pbxproj
	A	WebCore/bindings/js/JSImageDataCustom.cpp
	M	WebCore/bindings/scripts/CodeGeneratorJS.pm
	M	WebCore/html/CanvasPixelArray.idl
	M	WebCore/html/ImageData.idl
Committed r37181

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24004</attachid>
            <date>2008-10-01 21:41:30 -0700</date>
            <delta_ts>2008-10-01 21:43:02 -0700</delta_ts>
            <desc>Fixeration</desc>
            <filename>imageData-memory-fix.patch</filename>
            <type>text/plain</type>
            <size>14621</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTQ0ODZhYS4uOWEzOWQ3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAwOC0xMC0wMSAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJ1ZyAyMDMxNTogTWVtb3J5IGxlYWsgd2l0aCBDYW52YXMgZ2V0SW1hZ2VE
YXRhCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAz
MTU+CisKKyAgICAgICAgVGhpcyB3YXNuJ3QgYSBsZWFrLCB0aGUgaXNzdWUgd2FzIHRoYXQgd2Ug
d2VyZSByZXBvcnRpbmcgdGhlIGNvc3QKKyAgICAgICAgb2YgdGhlIENhbnZhc1BpeGVsQXJyYXkg
d2hlbiBjcmVhdGluZyB0aGUgSlNDYW52YXNQaXhlbEFycmF5IHdyYXBwZXIKKyAgICAgICAgYW5k
IHdlIHNob3VsZCBoYXZlIGJlZW4gcmVwb3J0aW5nIHRoZSBjb3N0IHdoZW4gd2UgY3JlYXRlIHRo
ZQorICAgICAgICBKU0ltYWdlRGF0YSB3cmFwcGVyLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FudmFzUGl4
ZWxBcnJheUN1c3RvbS5jcHA6IFJlbW92ZWQuCisgICAgICAgICAgVGhpcyB3YXMgb25seSBuZWVk
ZWQgdG8gcmVwb3J0IHRoZSBleHRyYSBtZW1vcnkgY29zdAorICAgICAgICAgIG9mIHRoZSBDUEEu
CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbWFnZURhdGFDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dG9KUyk6CisgICAgICAgICAgV2UgbmVlZCBhIGN1c3RvbSB0b0pTIGZ1bmN0aW9u
IG5vdyBzbyB0aGF0IHdlIGNhbiByZXBvcnQKKyAgICAgICAgICB0aGUgZXh0cmEgbWVtb3J5IGNv
c3QuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAg
ICAgICAgTmVlZCB0byByZXBsYWNlIHRoZSByZWZlcmVuY2UgdG8gQ2FudmFzUGl4ZWxBcnJheSB3
aXRoIEltYWdlRGF0YQorICAgICAgICAgIHRvIGJlIGFibGUgdG8gY3JlYXRlIHRoZSBjdXN0b20g
dG9KUyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKiBodG1sL0NhbnZhc1BpeGVsQXJyYXkuaWRs
OgorICAgICAgICAqIGh0bWwvSW1hZ2VEYXRhLmlkbDoKKwogMjAwOC0wOS0zMCAgTWFyayBSb3dl
ICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4u
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDExMDk1ZDMu
LjZjOTkzOGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xOTQyLDYgKzE5NDIsNyBAQAogCQlBN0NGQjNEMTBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0lt
YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovOyB9OwogCQlBN0NGQjNE
MjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0NGQjNEMDBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0lt
YWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTdDRkIzRDUwQjdFRDExODAwNzBDMzJEIC8qIERyYWdJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Q0ZCM0Q0MEI3RUQxMTgwMDcwQzMy
RCAvKiBEcmFnSW1hZ2VNYWMubW0gKi87IH07CisJCUE3RDAzMThFMEU5MzU0MDMwMEUyNEFDRCAv
KiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0QwMzE4RDBFOTM1NDAzMDBFMjRBQ0QgLyogSlNJbWFnZURhdGFDdXN0
b20uY3BwICovOyB9OwogCQlBN0QyN0ZDNDBFMEE1OTlGMDA3OUFEMkIgLyogU1ZHRkVUaWxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDI3RkMz
MEUwQTU5OUYwMDc5QUQyQiAvKiBTVkdGRVRpbGUuY3BwICovOyB9OwogCQlBN0QzQzUyNDBCNTc2
QjRCMDAyQ0E0NTAgLyogUGFzdGVib2FyZEhlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEM0M1MjMwQjU3NkI0QjAwMkNBNDUwIC8qIFBhc3Rl
Ym9hcmRIZWxwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBODA5RjE0NzBCNzM3OTNBMDAyRTREN0YgLyogUmVuZGVyU1ZHR3JhZGllbnRTdG9w
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODA5RjE0
NTBCNzM3OTNBMDAyRTREN0YgLyogUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmggKi87IH07CkBAIC0z
ODc3LDcgKzM4NzgsNiBAQAogCQlCQzc3MkM0RTBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVS
ZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi87IH07
CiAJCUJDNzcyQzRGMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkM0RDBDNEVCMzA0
MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNzcyQzVFMEM0RUIzNDQwMDgzMjg1RiAvKiBNSU1F
VHlwZVJlZ2lzdHJ5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM3NzJDNUQwQzRFQjM0NDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnlNYWMu
bW0gKi87IH07Ci0JCUJDNzk1MTU1MEUxNURCRkYwMEE4OThBQiAvKiBKU0NhbnZhc1BpeGVsQXJy
YXlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM3OTUxNTQwRTE1REJGRjAwQTg5OEFCIC8qIEpTQ2FudmFzUGl4ZWxBcnJheUN1c3RvbS5j
cHAgKi87IH07CiAJCUJDN0Y0NEE4MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGNDRBNzBC
OUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDN0ZBNjIwMEQxRjBDQkQwMERCMjJBOSAvKiBE
eW5hbWljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM3RkE2MUUwRDFGMENCRDAwREIyMkE5IC8qIER5bmFtaWNOb2RlTGlzdC5jcHAg
Ki87IH07CiAJCUJDN0ZBNjIxMEQxRjBDQkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0ZBNjFGMEQx
RjBDQkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxpc3QuaCAqLzsgfTsKQEAgLTY1OTEsNiArNjU5
MSw3IEBACiAJCUE3Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERyYWdJbWFnZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Q0ZCM0QwMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1h
Z2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdJbWFnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0NGQjNENDBCN0VEMTE4MDA3MEMzMkQgLyogRHJh
Z0ltYWdlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERy
YWdJbWFnZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdEMDMxOEQwRTkz
NTQwMzAwRTI0QUNEIC8qIEpTSW1hZ2VEYXRhQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW1hZ2VEYXRhQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTdEMjdGQzMwRTBBNTk5RjAwNzlBRDJCIC8qIFNWR0ZFVGlsZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGRVRpbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0QzQzUyMzBCNTc2QjRCMDAyQ0E0NTAgLyogUGFz
dGVib2FyZEhlbHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJv
YXJkSGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MDlGMTQ1MEI3Mzc5
M0EwMDJFNEQ3RiAvKiBSZW5kZXJTVkdHcmFkaWVudFN0b3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC04NDI4LDcgKzg0MjksNiBAQAogCQlCQzc3MkM0QzBDNEVCMzA0MDA4MzI4
NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTUlNRVR5cGVSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDNzcyQzREMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNSU1FVHlwZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQzVEMEM0RUIzNDQwMDgzMjg1RiAvKiBNSU1FVHlw
ZVJlZ2lzdHJ5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IE1JTUVUeXBlUmVnaXN0cnlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJD
Nzk1MTU0MEUxNURCRkYwMEE4OThBQiAvKiBKU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDYW52YXNQaXhlbEFycmF5Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3QjJBRjgwNDUwODI0MTAw
QTgwMDBGIC8qIFNjcm9sbGJhci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxiYXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJDN0Y0NEE3MEI5RTMyNEUwMEE5RDA4MSAv
KiBJbWFnZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFn
ZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0ZBNjFFMEQxRjBD
QkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRHluYW1pY05vZGVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEyODExLDcgKzEyODExLDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJQkMyRUQ2QkIwQzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1c3RvbS5j
cHAgKi8sCi0JCQkJQkM3OTUxNTQwRTE1REJGRjAwQTg5OEFCIC8qIEpTQ2FudmFzUGl4ZWxBcnJh
eUN1c3RvbS5jcHAgKi8sCiAJCQkJOTMwQjNCRTEwRTg4NDkyMTAwOTc3MEM1IC8qIEpTQ2FudmFz
UGl4ZWxBcnJheUN1c3RvbS5oICovLAogCQkJCTFBOUVGNDU2MEExQjk1N0QwMDMzMkI2MyAvKiBK
U0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAgKi8sCiAJCQkJQkNBODNFNTEwRDdD
RTIwNTAwMzQyMUE4IC8qIEpTQ2xpcGJvYXJkQ3VzdG9tLmNwcCAqLywKQEAgLTEyODUzLDYgKzEy
ODUyLDcgQEAKIAkJCQk0NDhBRDI3QTBBNDgxMzc5MDAyM0QxNzkgLyogSlNIVE1MT3B0aW9uc0Nv
bGxlY3Rpb25DdXN0b20uY3BwICovLAogCQkJCUJDMTdGOTY1MEI2NEVCQjgwMDRBNjVDQiAvKiBK
U0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlBQjRDQjRFQTBCOEJEQTNEMDA5
RjQwQjAgLyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oICovLAorCQkJCUE3RDAzMThEMEU5
MzU0MDMwMEUyNEFDRCAvKiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgKi8sCiAJCQkJMUM1RkFFRTYw
RENGREE2ODAwRDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgKi8sCiAJ
CQkJQkNFMUM0M0YwRDk4MzBGNDAwM0IwMkYyIC8qIEpTTG9jYXRpb25DdXN0b20uY3BwICovLAog
CQkJCUUxQTVGOTlBMEU3RUFBMjUwMEFGODVFQSAvKiBKU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNw
cCAqLywKQEAgLTE3NzA1LDcgKzE3NzA1LDYgQEAKIAkJCQlCQzY4NkM3RTBFMEMzMzAxMDBERThB
MDggLyogSlNDU1NWYXJpYWJsZXNSdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjg2Q0Iz
MEUwQzM0MzkwMERFOEEwOCAvKiBET01DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNjg2Q0I2MEUwQzM0MzkwMERFOEEwOCAvKiBET01DU1NWYXJpYWJsZXNS
dWxlLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQkM3OTUxNTUwRTE1REJGRjAwQTg5OEFCIC8qIEpT
Q2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MEE1RTQ3MjBF
MUFFRjNBMDAwQTAzQUUgLyogRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwQTVFNDc0
MEUxQUVGODQwMDBBMDNBRSAvKiBGaWx0ZXJFZmZlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUFEQTE0MTAwRTFBRTVEOTAwMDIzRUU1IC8qIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0xNzgxMyw2ICsxNzgxMiw3IEBACiAJCQkJQkMzQjdCMjEwRTkx
QUFGNDAwRDU0MDY1IC8qIEpTRXZlbnRUYXJnZXROb2RlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDNjA5MDIwMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxQ0E4NDk0MEU5MjNCRUYwMDExNDI1MSAvKiBET01Qcm90ZWN0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUE3RDAzMThFMEU5MzU0MDMwMEUyNEFDRCAvKiBKU0ltYWdl
RGF0YUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTE2NjA1My4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUGl4
ZWxBcnJheUN1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJ
bmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmgiCi0KLXVz
aW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSlNWYWx1ZSogdG9K
UyhFeGVjU3RhdGUqIGV4ZWMsIENhbnZhc1BpeGVsQXJyYXkqIHBpeGVscykKLXsKLSAgICBpZiAo
IXBpeGVscykKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIAotICAgIERPTU9iamVjdCog
d3JhcHBlciA9IGdldENhY2hlZERPTU9iamVjdFdyYXBwZXIocGl4ZWxzKTsKLSAgICBpZiAod3Jh
cHBlcikKLSAgICAgICAgcmV0dXJuIHdyYXBwZXI7Ci0gICAgCi0gICAgd3JhcHBlciA9IENSRUFU
RV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgQ2FudmFzUGl4ZWxBcnJheSwgcGl4ZWxzKTsKLSAg
ICAKLSAgICBleGVjLT5oZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChwaXhlbHMtPmxlbmd0
aCgpKTsKLSAgICAKLSAgICByZXR1cm4gd3JhcHBlcjsKLX0KLSAgICAKLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZURhdGFDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDljZGZiYgotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZURhdGFDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTSW1hZ2VEYXRhLmgiCisKKyNpbmNsdWRlICJJbWFn
ZURhdGEuaCIKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
SlNWYWx1ZSogdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEltYWdlRGF0YSogaW1hZ2VEYXRhKQorewor
ICAgIGlmICghaW1hZ2VEYXRhKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgCisgICAg
RE9NT2JqZWN0KiB3cmFwcGVyID0gZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBlcihpbWFnZURhdGEp
OworICAgIGlmICh3cmFwcGVyKQorICAgICAgICByZXR1cm4gd3JhcHBlcjsKKyAgICAKKyAgICB3
cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBJbWFnZURhdGEsIGltYWdl
RGF0YSk7CisgICAgCisgICAgZXhlYy0+aGVhcCgpLT5yZXBvcnRFeHRyYU1lbW9yeUNvc3QoaW1h
Z2VEYXRhLT5kYXRhKCktPmxlbmd0aCgpKTsKKyAgICAKKyAgICByZXR1cm4gd3JhcHBlcjsKK30K
KworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXgg
ZWU5MTUzZC4uOWRhMjk3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC0xNDUsNyArMTQ1LDcgQEAgc3ViIFVzZXNNYW51YWxUb0pTSW1wbGVtZW50
YXRpb24KIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwogCi0gICAgcmV0dXJuIDEgaWYgJHR5cGUg
ZXEgIk5vZGUiIG9yICR0eXBlIGVxICJEb2N1bWVudCIgb3IgJHR5cGUgZXEgIkhUTUxDb2xsZWN0
aW9uIiBvciAkdHlwZSBlcSAiU1ZHUGF0aFNlZyIgb3IgJHR5cGUgZXEgIlN0eWxlU2hlZXQiIG9y
ICR0eXBlIGVxICJDU1NSdWxlIiBvciAkdHlwZSBlcSAiQ1NTVmFsdWUiIG9yICR0eXBlIGVxICJF
dmVudCIgb3IgJHR5cGUgZXEgIkNhbnZhc1BpeGVsQXJyYXkiIG9yICR0eXBlIGVxICJFbGVtZW50
IiBvciAkdHlwZSBlcSAiVGV4dCIgb3IgJHR5cGUgZXEgIlNWR0VsZW1lbnRJbnN0YW5jZSI7Cisg
ICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIk5vZGUiIG9yICR0eXBlIGVxICJEb2N1bWVudCIgb3Ig
JHR5cGUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvciAkdHlwZSBlcSAiU1ZHUGF0aFNlZyIgb3IgJHR5
cGUgZXEgIlN0eWxlU2hlZXQiIG9yICR0eXBlIGVxICJDU1NSdWxlIiBvciAkdHlwZSBlcSAiQ1NT
VmFsdWUiIG9yICR0eXBlIGVxICJFdmVudCIgb3IgJHR5cGUgZXEgIkltYWdlRGF0YSIgb3IgJHR5
cGUgZXEgIkVsZW1lbnQiIG9yICR0eXBlIGVxICJUZXh0IiBvciAkdHlwZSBlcSAiU1ZHRWxlbWVu
dEluc3RhbmNlIjsKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0NhbnZhc1BpeGVsQXJyYXkuaWRsIGIvV2ViQ29yZS9odG1sL0NhbnZhc1BpeGVsQXJyYXkuaWRs
CmluZGV4IGE4YTQ2M2IuLmQ0ZGNlY2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9DYW52YXNQ
aXhlbEFycmF5LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvQ2FudmFzUGl4ZWxBcnJheS5pZGwKQEAg
LTMxLDggKzMxLDcgQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIEN1
c3RvbUhlYWRlciwKICAgICAgICAgSGFzQ3VzdG9tSW5kZXhHZXR0ZXIsCi0gICAgICAgIEhhc0N1
c3RvbUluZGV4U2V0dGVyLAotICAgICAgICBHZW5lcmF0ZVRvSlMKKyAgICAgICAgSGFzQ3VzdG9t
SW5kZXhTZXR0ZXIKICAgICBdIENhbnZhc1BpeGVsQXJyYXkgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyBsZW5ndGg7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9J
bWFnZURhdGEuaWRsIGIvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5pZGwKaW5kZXggMDUyZjE2NS4u
MjQ2NjMyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL0ltYWdlRGF0YS5pZGwKQEAgLTI5LDcgKzI5LDggQEAKIG1vZHVsZSBodG1sIHsK
IAogICAgIGludGVyZmFjZSBbCi0gICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3IKKyAgICAgICAg
R2VuZXJhdGVDb25zdHJ1Y3RvciwKKyAgICAgICAgR2VuZXJhdGVUb0pTCiAgICAgXSBJbWFnZURh
dGEgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgaGVpZ2h0Owo=
</data>
<flag name="review"
          id="10851"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>