<?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>21008</bug_id>
          
          <creation_ts>2008-09-22 15:01:56 -0700</creation_ts>
          <short_desc>getting pixels by index from CanvasPixelArray is unnecessarily slow</short_desc>
          <delta_ts>2008-09-23 03:04:31 -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>WebCore JavaScript</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></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="Darin Adler">darin</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>92217</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-09-22 15:01:56 -0700</bug_when>
    <thetext>Oliver noticed that when we index into a CanvasPixelArray, we convert the index to a string and put it into the identifier table each time. The identifier is then ignored by the CanvasPixelArray::indexGetter function. This extra work is bad!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92220</commentid>
    <comment_count>1</comment_count>
      <attachid>23674</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-09-22 15:11:24 -0700</bug_when>
    <thetext>Created attachment 23674
patch, already reviewed (for Oliver)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92295</commentid>
    <comment_count>2</comment_count>
      <attachid>23674</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-09-23 00:41:55 -0700</bug_when>
    <thetext>Comment on attachment 23674
patch, already reviewed (for Oliver)

Removed the toStrictUInt32 as that broke compat with ffx3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92296</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-09-23 00:42:13 -0700</bug_when>
    <thetext>Landed r36801</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92305</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-09-23 03:04:31 -0700</bug_when>
    <thetext>Whoops, missed afile

	A	WebCore/bindings/js/JSCanvasPixelArrayCustom.h
Committed r36803

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23674</attachid>
            <date>2008-09-22 15:11:24 -0700</date>
            <delta_ts>2008-09-23 00:41:55 -0700</delta_ts>
            <desc>patch, already reviewed (for Oliver)</desc>
            <filename>PixelArrayPatch.txt</filename>
            <type>text/plain</type>
            <size>15406</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNjc4MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMDgtMDktMjIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgorCisgICAgICAgIC0gZml4IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAwOAorICAgICAgICAgIGdl
dHRpbmcgcGl4ZWxzIGJ5IGluZGV4IGZyb20gQ2FudmFzUGl4ZWxBcnJheSBpcyB1bm5lY2Vzc2Fy
aWx5IHNsb3cKKworICAgICAgICBORUVEIFRPIEFERCBBIFRFU1QgRk9SIFRIRSB0b1N0cmljdFVJ
bnQzMiBDSEFOR0UhISEKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBBZGRlZCBKU0NhbnZh
c1BpeGVsQXJyYXlDdXN0b20uaC4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBEaXR0by4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FudmFzUGl4ZWxBcnJheUN1c3Rv
bS5jcHA6IFJlbW92ZWQgaW5kZXhHZXR0ZXIgYW5kCisgICAgICAgIGluZGV4U2V0dGVyLiBUaGVz
ZSBhcmUgbm93IGJvdGggaW5saW5lZCwgc28gaW4gdGhlIGhlYWRlci4KKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uaDogQWRkZWQuIFRoZSBnZXRCeUluZGV4
CisgICAgICAgIGZ1bmN0aW9uIGlzIHdoYXQncyB1c2VkIGZvciBIYXNDdXN0b21JbmRleEdldHRl
ci4gQWxzbyBtb3ZlZCB0aGUKKyAgICAgICAgaW5kZXhTZXR0ZXIgZnVuY3Rpb24gaGVyZS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBDaGFuZ2VkIEhh
c0N1c3RvbUluZGV4R2V0dGVyCisgICAgICAgIHRvIHVzZSBhIGdldEJ5SW5kZXggbWVtYmVyIGZ1
bmN0aW9uIHJhdGhlciB0aGFuIGFuIGluZGV4R2V0dGVyIHN0YXRpYworICAgICAgICBtZW1iZXIg
ZnVuY3Rpb24gaW4gYSBwcm9wZXJ0eSBzbG90LiBUaGlzIGxldHMgdXMgYXZvaWQgdGhlIHByb3Bl
cnR5CisgICAgICAgIHNsb3QgbWVjaGFuaXNtJ3MgcnVsZSB3aGVyZSBpdCB0dXJucyBudW1lcmlj
IHByb3BlcnR5IG5hbWVzIGludG8KKyAgICAgICAgc3RyaW5ncyBpbiB0aGUgaWRlbnRpZmllciB0
YWJsZSwgd2hpY2ggaXMgZ29vZCBiZWNhdXNlIHRoYXQncyBzbG93LgorICAgICAgICBBbHNvIGFk
ZGVkIGEgbmV3IHByb3BlcnR5IEN1c3RvbUhlYWRlciB0aGF0IGFsbG93cyBJREwgZmlsZXMgdG8K
KyAgICAgICAgaW50cm9kdWNlIGhlYWRlcnMgdG8gYmUgaW5jbHVkZWQgLS0gdXNlZnVsIHdoZW4g
d2UgaGF2ZSBmdW5jdGlvbnMKKyAgICAgICAgdGhhdCB3ZSB3YW50IHRvIGlubGluZSBpbnRvIHRo
ZSBiaW5kaW5nLiBGaXhlZCB0aGUgdHdvIHBsYWNlcyBoZXJlCisgICAgICAgIHRoYXQgd2VyZSB1
c2luZyB0b1VJbnQzMiB0byBpbnN0ZWFkIHVzZSB0b1N0cmljdFVJbnQzMjsgdGhlIGZvcm1lcgor
ICAgICAgICB3YXMgaW5jb3JyZWN0LgorCisgICAgICAgICogaHRtbC9DYW52YXNQaXhlbEFycmF5
LmlkbDogQWRkZWQgQ3VzdG9tSGVhZGVyIGF0dHJpYnV0ZS4KKwogMjAwOC0wOS0yMiAgRXJpYyBT
ZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm8gcmV2aWV3LCByb2xsYmFjayBv
bmx5LgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAzNjc3MykKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUu
YW0JKHdvcmtpbmcgY29weSkKQEAgLTYxNCw2ICs2MTQsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmggXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3Mv
anMvSlNDbGlwYm9hcmRDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29uc29s
ZUN1c3RvbS5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShy
ZXZpc2lvbiAzNjc3MykKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMjMzLDYgKzEzMjMzLDEwIEBACiAJCQkJCT4NCiAJCQkJPC9G
aWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0Nh
bnZhc1BpeGVsQXJyYXlDdXN0b20uaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8Rmls
ZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREN1c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMzY3NzMpCisrKyBX
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMTY1Nyw2ICsxNjU3LDcgQEAKIAkJOTMwN0YxRDcwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRl
c3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMwN0YxRDUwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1bHQuY3BwICovOyB9Owog
CQk5MzA3RjFEODBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwN0YxRDYwQUYyRDU5MDAwREJB
MzFBIC8qIEhpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5MzA5MDg5MTBBRjdFREU0MDA4MURGMDEgLyogSGl0VGVzdFJlcXVl
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDkw
ODkwMEFGN0VERTQwMDgxREYwMSAvKiBIaXRUZXN0UmVxdWVzdC5oICovOyB9OworCQk5MzBCM0JF
MjBFODg0OTIxMDA5NzcwQzUgLyogSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBCM0JFMTBFODg0OTIxMDA5
NzcwQzUgLyogSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmggKi87IH07CiAJCTkzMjZEQzBDMDlE
QUQ1RDYwMEFGQzg0NyAvKiBDaGFyc2V0RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFBQzA5RDE0RUU2MDAwRTYxRDcgLyogQ2hhcnNl
dERhdGEuY3BwICovOyB9OwogCQk5MzI3QTk0MjA5OTY4RDFBMDA2OEE1NDYgLyogSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMjdBOTQxMDk5NjhEMUEwMDY4QTU0NiAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24u
Y3BwICovOyB9OwogCQk5MzI4NzFDMDBCMjBERUI3MDA0OTAzNUEgLyogUGxhdGZvcm1NZW51RGVz
Y3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMjg3MUJGMEIyMERFQjcwMDQ5MDM1QSAvKiBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02Mjk4LDYg
KzYyOTksNyBAQAogCQk5MzA3RjFENTBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdFJlc3VsdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDdGMUQ2MEFGMkQ1OTAwMERCQTMx
QSAvKiBIaXRUZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
aXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDkwODkwMEFG
N0VERTQwMDgxREYwMSAvKiBIaXRUZXN0UmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSGl0VGVzdFJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTMwQjNCRTEwRTg4NDkyMTAwOTc3MEM1IC8qIEpTQ2FudmFzUGl4ZWxBcnJheUN1c3RvbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NhbnZhc1BpeGVsQXJyYXlDdXN0
b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwQ0FBRDYwOUM0OTVCNjAwMjI5
QzA0IC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTMwQ0FCODgwOUM0OUVGQTAwMjI5QzA0IC8qIENhbnZhc0dyYWRpZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDYW52YXNHcmFkaWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzMENBQjhGMDlDNDlGMUIwMDIyOUMwNCAvKiBDYW52YXNQYXR0ZXJuLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDYW52YXNQYXR0ZXJuLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNzQyLDYgKzEyNzQ0LDcgQEAKIAkJCWNoaWxkcmVuID0gKAog
CQkJCUJDMkVENkJCMEM2QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20uY3BwICovLAogCQkJ
CUJDNzk1MTU0MEUxNURCRkYwMEE4OThBQiAvKiBKU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3Bw
ICovLAorCQkJCTkzMEIzQkUxMEU4ODQ5MjEwMDk3NzBDNSAvKiBKU0NhbnZhc1BpeGVsQXJyYXlD
dXN0b20uaCAqLywKIAkJCQkxQTlFRjQ1NjBBMUI5NTdEMDAzMzJCNjMgLyogSlNDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwICovLAogCQkJCUJDQTgzRTUxMEQ3Q0UyMDUwMDM0MjFB
OCAvKiBKU0NsaXBib2FyZEN1c3RvbS5jcHAgKi8sCiAJCQkJQzBERkM4NkYwREI2ODQxQTAwM0VB
RTdDIC8qIEpTQ29uc29sZUN1c3RvbS5jcHAgKi8sCkBAIC0xNTg1OSw2ICsxNTg2Miw3IEBACiAJ
CQkJQjJGMzRGRTYwRTgyRjgxNDAwRjYyN0NEIC8qIEROUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDg5NTgyNTYwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOENCNDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzBCM0JFMjBFODg0OTIxMDA5NzcwQzUgLyogSlNDYW52YXNQaXhlbEFycmF5Q3Vz
dG9tLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNQ
aXhlbEFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDM2NzczKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNywzMiArMjcsMTIgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
SlNDYW52YXNQaXhlbEFycmF5LmgiCi0KLSNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5LmgiCisj
aW5jbHVkZSAiSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNWYWx1ZSogSlNDYW52YXNQaXhlbEFycmF5
OjppbmRleEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIENhbnZhc1BpeGVsQXJyYXkq
IGFycmF5ID0gc3RhdGljX2Nhc3Q8SlNDYW52YXNQaXhlbEFycmF5Kj4oc2xvdC5zbG90QmFzZSgp
KS0+aW1wbCgpOwotICAgIHVuc2lnbmVkIGluZGV4ID0gc2xvdC5pbmRleCgpOwotICAgIHVuc2ln
bmVkIGNoYXIgcmVzdWx0OwotICAgIGlmICghYXJyYXktPmdldChpbmRleCwgcmVzdWx0KSkKLSAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIGpzTnVtYmVyKGV4ZWMsIHJl
c3VsdCk7Ci19Ci0KLXZvaWQgSlNDYW52YXNQaXhlbEFycmF5OjppbmRleFNldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlKiB2YWx1ZSkKLXsKLSAgICBkb3VibGUg
cGl4ZWxWYWx1ZSA9IHZhbHVlLT50b051bWJlcihleGVjKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2ltcGwtPnNldChpbmRleCwgcGl4ZWxW
YWx1ZSk7IAotfQotCiBKU1ZhbHVlKiB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgQ2FudmFzUGl4ZWxB
cnJheSogcGl4ZWxzKQogewogICAgIGlmICghcGl4ZWxzKQpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ2FudmFzUGl4ZWxBcnJheUN1c3RvbS5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkpTQ2FudmFzUGl4ZWxBcnJheS5o
IgorCisjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgorCit1c2luZyBuYW1lc3BhY2UgSlND
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCisgICAgaW5saW5lIEpTVmFsdWUqIEpTQ2Fu
dmFzUGl4ZWxBcnJheTo6Z2V0QnlJbmRleChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4
KQorICAgIHsKKyAgICAgICAgdW5zaWduZWQgY2hhciByZXN1bHQ7CisgICAgICAgIGlmICghaW1w
bCgpLT5nZXQoaW5kZXgsIHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKKyAgICAgICAgcmV0dXJuIEpTSW1tZWRpYXRlOjpmcm9tKHJlc3VsdCk7CisgICAgfQorICAg
IAorICAgIGlubGluZSB2b2lkIEpTQ2FudmFzUGl4ZWxBcnJheTo6aW5kZXhTZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSogdmFsdWUpCisgICAgeworICAgICAg
ICBkb3VibGUgcGl4ZWxWYWx1ZSA9IHZhbHVlLT50b051bWJlcihleGVjKTsKKyAgICAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2lt
cGwtPnNldChpbmRleCwgcGl4ZWxWYWx1ZSk7IAorICAgIH0KKyAgICAKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52
YXNQaXhlbEFycmF5Q3VzdG9tLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICAr
IG5hdGl2ZQoKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQkocmV2aXNpb24gMzY3NzMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yNzgsNyArMjc4LDcgQEAgc3ViIEdlbmVy
YXRlR2V0T3duUHJvcGVydHlTbG90Qm9keQogICAgICAgICAmJGhhc05hbWVHZXR0ZXJHZW5lcmF0
aW9uKCk7CiAgICAgfQogCi0gICAgbXkgJHJlcXVpcmVzTWFudWFsTG9va3VwID0gJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOYW1lR2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifTsKKyAgICBteSAkcmVxdWlyZXNN
YW51YWxMb29rdXAgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdl
dHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc05hbWVHZXR0ZXIi
fTsKICAgICBpZiAoJHJlcXVpcmVzTWFudWFsTG9va3VwKSB7CiAgICAgICAgIHB1c2goQGdldE93
blByb3BlcnR5U2xvdEltcGwsICIgICAgY29uc3QgJHtuYW1lc3BhY2VNYXliZX1IYXNoRW50cnkq
IGVudHJ5ID0gJHtjbGFzc05hbWV9VGFibGUuZW50cnkoZXhlYywgcHJvcGVydHlOYW1lKTtcbiIp
OwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChlbnRyeSkg
e1xuIik7CkBAIC0yODksOSArMjg5LDEzIEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xv
dEJvZHkKIAogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRl
eEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUlu
ZGV4R2V0dGVyIn0pIHsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAg
ICBib29sIG9rO1xuIik7Ci0gICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIg
ICAgdW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUudG9VSW50MzIoJm9rLCBmYWxzZSk7XG4i
KTsKKyAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICB1bnNpZ25lZCBp
bmRleCA9IHByb3BlcnR5TmFtZS50b1N0cmljdFVJbnQzMigmb2spO1xuIik7CiAgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKG9rICYmIGluZGV4IDwgc3RhdGlj
X2Nhc3Q8JGltcGxDbGFzc05hbWUqPihpbXBsKCkpLT5sZW5ndGgoKSkge1xuIik7Ci0gICAgICAg
IHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5k
ZXgodGhpcywgaW5kZXgsIGluZGV4R2V0dGVyKTtcbiIpOworICAgICAgICBpZiAoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSkgeworICAgICAg
ICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRWYWx1
ZShnZXRCeUluZGV4KGV4ZWMsIGluZGV4KSk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tSW5kZXgodGhpcywgaW5kZXgsIGluZGV4R2V0dGVyKTtcbiIpOworICAgICAgICB9CiAgICAg
ICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHJldHVybiB0cnVlO1xu
Iik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgfVxuIik7CiAg
ICAgfQpAQCAtNDEzLDkgKzQxNyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgUHJvdG90
eXBlCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
Y3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKik7XG4iKSBpZiAkaW50ZXJmYWNlTmFtZSBu
ZSAiRE9NV2luZG93IjsKIAotICAgICRpbXBsSW5jbHVkZXN7IiR7Y2xhc3NOYW1lfUN1c3RvbS5o
In0gPSAxIGlmCi0gICAgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
UHV0RnVuY3Rpb24ifQotICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbUdldE93blByb3BlcnR5U2xvdCJ9OworICAgICRpbXBsSW5jbHVkZXN7IiR7Y2xhc3NOYW1l
fUN1c3RvbS5oIn0gPSAxIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bUhlYWRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1dEZ1
bmN0aW9uIn07CiAKICAgICBteSAkaGFzR2V0dGVyID0gJG51bUF0dHJpYnV0ZXMgPiAwIAogICAg
ICAgICAgICAgICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0
ZUNvbnN0cnVjdG9yIn0gCkBAIC01ODksMTAgKzU5MSwxMyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIK
ICAgICB9CiAKICAgICAjIEluZGV4IGdldHRlcgotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0pIHsKKyAgICBpZiAoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSkgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUqIGluZGV4R2V0dGVyKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgY29uc3QgSlNDOjpQcm9wZXJ0eVNs
b3QmKTtcbiIpOwogICAgIH0KLQorICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9KSB7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgSlNDOjpKU1ZhbHVlKiBnZXRCeUluZGV4KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWdu
ZWQgaW5kZXgpO1xuIik7CisgICAgfQorICAgIAogICAgICMgSW5kZXggc2V0dGVyCiAgICAgaWYg
KCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn0p
IHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIGluZGV4U2V0dGVyKEpT
Qzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgaW5kZXgsIEpTQzo6SlNWYWx1ZSopO1xuIik7CkBAIC05
NzksNyArOTg0LDExIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dClcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChwcm9wZXJ0eU5hbWUgPCBzdGF0aWNfY2Fz
dDwkaW1wbENsYXNzTmFtZSo+KGltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXMsIHBy
b3BlcnR5TmFtZSwgaW5kZXhHZXR0ZXIpO1xuIik7CisgICAgICAgICAgICBpZiAoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSkgeworICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzbG90LnNldFZhbHVlKGdldEJ5
SW5kZXgoZXhlYywgcHJvcGVydHlOYW1lKSk7XG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9t
SW5kZXgodGhpcywgcHJvcGVydHlOYW1lLCBpbmRleEdldHRlcik7XG4iKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KGV4
ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7XG4iKTsKQEAg
LTEwODcsNyArMTA5Niw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn0pIHsKICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBib29sIG9rO1xuIik7Ci0gICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0eU5h
bWUudG9VSW50MzIoJm9rLCBmYWxzZSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS50b1N0cmljdFVJbnQz
Migmb2spO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYg
KG9rKSB7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
aW5kZXhTZXR0ZXIoZXhlYywgaW5kZXgsIHZhbHVlKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsKSW5kZXg6IFdlYkNvcmUvaHRt
bC9DYW52YXNQaXhlbEFycmF5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvQ2FudmFz
UGl4ZWxBcnJheS5pZGwJKHJldmlzaW9uIDM2NzczKQorKysgV2ViQ29yZS9odG1sL0NhbnZhc1Bp
eGVsQXJyYXkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiBtb2R1bGUgaHRt
bCB7CiAKICAgICBpbnRlcmZhY2UgWworICAgICAgICBDdXN0b21IZWFkZXIsCiAgICAgICAgIEhh
c0N1c3RvbUluZGV4R2V0dGVyLAogICAgICAgICBIYXNDdXN0b21JbmRleFNldHRlciwKICAgICAg
ICAgR2VuZXJhdGVUb0pTCg==
</data>
<flag name="review"
          id="10634"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>