<?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>28676</bug_id>
          
          <creation_ts>2009-08-24 02:10:34 -0700</creation_ts>
          <short_desc>Safari 4 not releasing memory back to the operating system</short_desc>
          <delta_ts>2010-06-11 10:12:08 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://farm3.static.flickr.com/2552/3851167461_d56de44d47_o.png</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="Jake Archibald">jaffathecake</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>adachan</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>142292</commentid>
    <comment_count>0</comment_count>
    <who name="Jake Archibald">jaffathecake</who>
    <bug_when>2009-08-24 02:10:34 -0700</bug_when>
    <thetext>Once Safari has claimed memory from the operating system, it doesn&apos;t seem to give it back, even though it&apos;s no longer using it.

Running the first test on the following page http://www.jakearchibald.co.uk/jsperformance/closurememory/1.html, this creates a 1mb string every second.

http://www.flickr.com/photos/jaffathecake/3851167461/sizes/o/

Chrome (and other browsers) release the memory back to the operating system when the test is ended, whereas Safari keeps it, even if the tab is closed. Safari will reuse the memory it has reserved, but it doesn&apos;t give it back to the operating system, even if it has claimed 700mb+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142293</commentid>
    <comment_count>1</comment_count>
    <who name="Jake Archibald">jaffathecake</who>
    <bug_when>2009-08-24 02:35:54 -0700</bug_when>
    <thetext>This is an issue in 526 (not tested the nightly builds) but the option wasn&apos;t available. Not sure which component this should be part of either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142368</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-24 12:32:03 -0700</bug_when>
    <thetext>Please test in a nightly build.  The memory allocator used by Safari on Windows has been improved so that memory is returned to the OS at a more aggressive rate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142411</commentid>
    <comment_count>3</comment_count>
    <who name="Jake Archibald">jaffathecake</who>
    <bug_when>2009-08-24 14:11:10 -0700</bug_when>
    <thetext>http://farm3.static.flickr.com/2554/3853034847_806c897794_o.png

The above is the same test in a nightly build downloaded today. Although it starts releasing memory, it&apos;s not at a useful rate.

In this test (and previous tests) one pixel on the graph == 1 second.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142422</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-24 14:53:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/7165917&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177308</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-01-05 12:34:24 -0800</bug_when>
    <thetext>*** Bug 22275 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191306</commentid>
    <comment_count>6</comment_count>
      <attachid>48950</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-17 17:09:43 -0800</bug_when>
    <thetext>Created attachment 48950
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191309</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-17 17:12:08 -0800</bug_when>
    <thetext>Attachment 48950 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/278140</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191310</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-17 17:13:31 -0800</bug_when>
    <thetext>Attachment 48950 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
JavaScriptCore/wtf/FastMalloc.cpp:1501:  TCMalloc_PageHeap::scavenge is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191312</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-17 17:15:36 -0800</bug_when>
    <thetext>Attachment 48950 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/279134</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191324</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-17 17:37:29 -0800</bug_when>
    <thetext>Attachment 48950 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/279154</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191347</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-17 18:26:15 -0800</bug_when>
    <thetext>Attachment 48950 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/280012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191349</commentid>
    <comment_count>12</comment_count>
      <attachid>48950</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-17 18:27:51 -0800</bug_when>
    <thetext>Comment on attachment 48950
patch

you have removed two #endifs but only one #if this would break stuff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191438</commentid>
    <comment_count>13</comment_count>
      <attachid>48978</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-18 00:00:47 -0800</bug_when>
    <thetext>Created attachment 48978
patch

Now with more buildy goodness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191443</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-18 00:04:47 -0800</bug_when>
    <thetext>Attachment 48978 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
JavaScriptCore/wtf/FastMalloc.cpp:1503:  TCMalloc_PageHeap::scavenge is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 2 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>191713</commentid>
    <comment_count>15</comment_count>
      <attachid>48978</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-02-18 13:32:36 -0800</bug_when>
    <thetext>Comment on attachment 48978
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191735</commentid>
    <comment_count>16</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-18 14:19:40 -0800</bug_when>
    <thetext>Fixed that edge case: Committed revision 54988.

Still analyzing other causes.

Clearing review flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198948</commentid>
    <comment_count>17</comment_count>
      <attachid>50579</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-03-11 23:44:10 -0800</bug_when>
    <thetext>Created attachment 50579
patch

Fixed a bug where the old code would release only one item from each size class per scavenge, potentially leaving large numbers of large-sized objects unreleased for a long time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198949</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-11 23:48:13 -0800</bug_when>
    <thetext>Attachment 50579 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
JavaScriptCore/wtf/FastMalloc.cpp:1385:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/FastMalloc.cpp:1386:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/FastMalloc.cpp:1387:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/FastMalloc.cpp:1387:  min_free_committed_pages_since_last_scavenge_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/FastMalloc.cpp:1432:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/FastMalloc.cpp:1438:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/FastMalloc.cpp:1464:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/FastMalloc.cpp:1507:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/FastMalloc.cpp:1517:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/FastMalloc.cpp:1518:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/FastMalloc.cpp:1525:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/FastMalloc.cpp:2401:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 12 in 2 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>198960</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-12 00:49:21 -0800</bug_when>
    <thetext>Attachment 50579 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/631033</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198961</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-12 01:01:19 -0800</bug_when>
    <thetext>Attachment 50579 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/664010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199959</commentid>
    <comment_count>21</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-03-15 19:23:21 -0700</bug_when>
    <thetext>Committed revision 56028.

Still analyzing other causes.

Clearing review flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48950</attachid>
            <date>2010-02-17 17:09:43 -0800</date>
            <delta_ts>2010-02-18 00:00:47 -0800</delta_ts>
            <desc>patch</desc>
            <filename>ro.txt</filename>
            <type>text/plain</type>
            <size>5044</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0OTEyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDItMTcgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaXhlZCBhIHBvcnRpb24gb2Y6CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MTY1OTE3PiB8IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yODY3NgorICAgICAgICBTYWZhcmkgNCBkb2VzIG5vdCByZWxlYXNlIG1lbW9yeSBiYWNrIHRv
IHRoZSBvcGVyYXRpbmcgc3lzdGVtIGZhc3QgZW5vdWdoICgyODY3NikKKyAgICAgICAgCisgICAg
ICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBzdXJwcmlzaW5nbHkgY29tbW9uIGVkZ2UgY2FzZSBpbiB3
aGljaCB0aGUgcGFnZSBoZWFwCisgICAgICAgIHdvdWxkIGhhdmUgb25seSBvbmUgZnJlZSBzcGFu
LCBidXQgdGhhdCBzcGFuIHdvdWxkIGJlIGxhcmdlciB0aGFuIHRoZQorICAgICAgICBtaW5pbXVt
IGZyZWUgc2l6ZSwgc28gd2Ugd291bGQgZGVjaWRlIG5vdCB0byBmcmVlIGl0LCBldmVuIHRob3Vn
aCBpdAorICAgICAgICBjb3VsZCBiZSBhcyBsYXJnZSBhcyAxMDBNQiBvciBtb3JlIQorICAgICAg
ICAKKyAgICAgICAgU3VuU3BpZGVyIHJlcG9ydHMgbm8gY2hhbmdlIG9uIE1hYyBvciBXaW5kb3dz
LgorCisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAoV1RGOjpUQ01hbGxv
Y19QYWdlSGVhcDo6c2NhdmVuZ2UpOiBDYWxsIHNob3VsZENvbnRpbnVlU2NhdmVuZ2luZygpIGlu
c3RlYWQKKyAgICAgICAgb2YgZG9pbmcgdGhlIG1hdGggb3Vyc2VsdmVzLiBEb24ndCBrZWVwIGEg
bG9jYWwgdmFsdWUgZm9yIHBhZ2VzRGVjb21taXR0ZWQKKyAgICAgICAgYmVjYXVzZSB0aGF0IGxl
dHMgZnJlZV9jb21taXR0ZWRfcGFnZXNfIGJlIHdyb25nIHRlbXBvcmFyaWx5LiBJbnN0ZWFkLAor
ICAgICAgICB1cGRhdGUgZnJlZV9jb21taXR0ZWRfcGFnZXNfIGFzIHdlIGdvLiBBU1NFUlQgdGhh
dCB3ZSBhcmVuJ3QgcmVsZWFzaW5nCisgICAgICAgIGEgc3BhbiB0aGF0IGhhcyBhbHJlYWR5IGJl
ZW4gcmVsZWFzZWQsIGJlY2F1c2Ugd2UgdGhpbmsgdGhpcyBpcyBpbXBvc3NpYmxlLgorICAgICAg
ICBGaW5hbGx5LCBkb24ndCBiZSBhZnJhaWQgdG8gcmVsZWFzZSBhbGwgZnJlZSBtZW1vcnkgaW4g
dGhlIHBhZ2UgaGVhcCB3aGVuCisgICAgICAgIHNjYXZlbmdpbmcuIFdlIG9ubHkgc2NhdmVuZ2Ug
YWZ0ZXIgNSBzZWNvbmRzIG9mIHRoZSBhcHBsaWNhdGlvbidzIHdvcmtpbmcKKyAgICAgICAgc2V0
IG5vdCBncm93aW5nLCBhbmQgd2Uga2VlcCBib3RoIHRocmVhZCBjYWNoZXMgYW5kIGEgY2VudHJh
bCBjYWNoZSBvbgorICAgICAgICB0b3Agb2YgdGhlIHBhZ2UgaGVhcCwgc28gdGhlIGV4dHJhIGZy
ZWUgcGFnZXMgaW4gdGhlIHBhZ2UgaGVhcCB3ZXJlIGp1c3QKKyAgICAgICAgb3ZlcmtpbGwuCisK
IDIwMTAtMDItMTcgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9GYXN0
TWFsbG9jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5j
cHAJKHJldmlzaW9uIDU0OTA4KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ4LDE1ICsxMjQ4LDYgQEAgc3RhdGljIGNvbnN0IGludCBr
U2NhdmVuZ2VUaW1lckRlbGF5SW5TZQogLy8gTnVtYmVyIG9mIGZyZWUgY29tbWl0dGVkIHBhZ2Vz
IHRoYXQgd2Ugd2FudCB0byBrZWVwIGFyb3VuZC4KIHN0YXRpYyBjb25zdCBzaXplX3Qga01pbmlt
dW1GcmVlQ29tbWl0dGVkUGFnZUNvdW50ID0gNTEyOwogCi0vLyBEdXJpbmcgYSBzY2F2ZW5nZSwg
d2UnbGwgcmVsZWFzZSB1cCB0byBhIGZyYWN0aW9uIG9mIHRoZSBmcmVlIGNvbW1pdHRlZCBwYWdl
cy4KLSNpZiBPUyhXSU5ET1dTKQotLy8gV2UgYXJlIHNsaWdodGx5IGxlc3MgYWdncmVzc2l2ZSBp
biByZWxlYXNpbmcgbWVtb3J5IG9uIFdpbmRvd3MgZHVlIHRvIHBlcmZvcm1hbmNlIHJlYXNvbnMu
Ci1zdGF0aWMgY29uc3QgaW50IGtNYXhTY2F2ZW5nZUFtb3VudEZhY3RvciA9IDM7Ci0jZWxzZQot
c3RhdGljIGNvbnN0IGludCBrTWF4U2NhdmVuZ2VBbW91bnRGYWN0b3IgPSAyOwotI2VuZGlmCi0j
ZW5kaWYKLQogY2xhc3MgVENNYWxsb2NfUGFnZUhlYXAgewogIHB1YmxpYzoKICAgdm9pZCBpbml0
KCk7CkBAIC0xNTA3LDM5ICsxNDk4LDM1IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBUQ01hbGxvY19Q
YWdlSGVhcDo6c2kKIAogI2VuZGlmCiAKLXZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OnNjYXZlbmdl
KCkgCit2b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjpzY2F2ZW5nZSgpCiB7Ci0gICAgLy8gSWYgd2Ug
aGF2ZSB0byBjb21taXQgbWVtb3J5IGluIHRoZSBsYXN0IDUgc2Vjb25kcywgaXQgbWVhbnMgd2Ug
ZG9uJ3QgaGF2ZSBlbm91Z2ggZnJlZSBjb21taXR0ZWQgcGFnZXMKLSAgICAvLyBmb3IgdGhlIGFt
b3VudCBvZiBhbGxvY2F0aW9ucyB0aGF0IHdlIGRvLiAgU28gaG9sZCBvZmYgb24gcmVsZWFzaW5n
IG1lbW9yeSBiYWNrIHRvIHRoZSBzeXN0ZW0uCisgICAgLy8gSWYgd2UndmUgcmVjZW50bHkgY29t
bWl0ZWQgcGFnZXMsIG91ciB3b3JraW5nIHNldCBpcyBncm93aW5nLCBzbyBub3cgaXMKKyAgICAv
LyBub3QgYSBnb29kIHRpbWUgdG8gZnJlZSBwYWdlcy4KICAgICBpZiAocGFnZXNfY29tbWl0dGVk
X3NpbmNlX2xhc3Rfc2NhdmVuZ2VfID4gMCkgewogICAgICAgICBwYWdlc19jb21taXR0ZWRfc2lu
Y2VfbGFzdF9zY2F2ZW5nZV8gPSAwOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIExlbmd0
aCBwYWdlc0RlY29tbWl0dGVkID0gMDsKLSAgICBmb3IgKGludCBpID0ga01heFBhZ2VzOyBpID49
IDA7IGktLSkgeworCisgICAgZm9yIChpbnQgaSA9IGtNYXhQYWdlczsgaSA+PSAwICYmIHNob3Vs
ZENvbnRpbnVlU2NhdmVuZ2luZygpOyBpLS0pIHsKICAgICAgICAgU3Bhbkxpc3QqIHNsaXN0ID0g
KHN0YXRpY19jYXN0PHNpemVfdD4oaSkgPT0ga01heFBhZ2VzKSA/ICZsYXJnZV8gOiAmZnJlZV9b
aV07CiAgICAgICAgIGlmICghRExMX0lzRW1wdHkoJnNsaXN0LT5ub3JtYWwpKSB7CiAgICAgICAg
ICAgICAvLyBSZWxlYXNlIHRoZSBsYXN0IHNwYW4gb24gdGhlIG5vcm1hbCBwb3J0aW9uIG9mIHRo
aXMgbGlzdAogICAgICAgICAgICAgU3BhbiogcyA9IHNsaXN0LT5ub3JtYWwucHJldjsgCi0gICAg
ICAgICAgICAvLyBPbmx5IGRlY29tbWl0IHVwIHRvIGEgZnJhY3Rpb24gb2YgdGhlIGZyZWUgY29t
bWl0dGVkIHBhZ2VzIGlmIHBhZ2VzX2FsbG9jYXRlZF9zaW5jZV9sYXN0X3NjYXZlbmdlXyA+IDAu
Ci0gICAgICAgICAgICBpZiAoKHBhZ2VzRGVjb21taXR0ZWQgKyBzLT5sZW5ndGgpICoga01heFNj
YXZlbmdlQW1vdW50RmFjdG9yID4gZnJlZV9jb21taXR0ZWRfcGFnZXNfKQotICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgRExMX1JlbW92ZShzKTsKLSAgICAgICAgICAgIFRD
TWFsbG9jX1N5c3RlbVJlbGVhc2UocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocy0+c3RhcnQgPDwg
a1BhZ2VTaGlmdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PHNpemVfdD4ocy0+bGVuZ3RoIDw8IGtQYWdlU2hpZnQpKTsKKyAgICAgICAgICAgIEFTU0VS
VCghcy0+ZGVjb21taXR0ZWQpOwogICAgICAgICAgICAgaWYgKCFzLT5kZWNvbW1pdHRlZCkgewot
ICAgICAgICAgICAgICAgIHBhZ2VzRGVjb21taXR0ZWQgKz0gcy0+bGVuZ3RoOworICAgICAgICAg
ICAgICAgIFRDTWFsbG9jX1N5c3RlbVJlbGVhc2UocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocy0+
c3RhcnQgPDwga1BhZ2VTaGlmdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KHMtPmxlbmd0aCA8PCBrUGFnZVNoaWZ0KSk7CisgICAg
ICAgICAgICAgICAgQVNTRVJUKGZyZWVfY29tbWl0dGVkX3BhZ2VzXyA+PSBzLT5sZW5ndGgpOwor
ICAgICAgICAgICAgICAgIGZyZWVfY29tbWl0dGVkX3BhZ2VzXyAtPSBzLT5sZW5ndGg7CiAgICAg
ICAgICAgICAgICAgcy0+ZGVjb21taXR0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgRExMX1ByZXBlbmQoJnNsaXN0LT5yZXR1cm5lZCwgcyk7Ci0gICAgICAgICAgICAvLyBX
ZSBjYW4gc3RvcCBzY2F2ZW5naW5nIGlmIHRoZSBudW1iZXIgb2YgZnJlZSBjb21taXR0ZWQgcGFn
ZXMgbGVmdCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG1pbmltdW0gbnVtYmVyIHdlIHdh
bnQgdG8ga2VlcCBhcm91bmQuCi0gICAgICAgICAgICBpZiAoZnJlZV9jb21taXR0ZWRfcGFnZXNf
IDw9IGtNaW5pbXVtRnJlZUNvbW1pdHRlZFBhZ2VDb3VudCArIHBhZ2VzRGVjb21taXR0ZWQpCi0g
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisKKyAgICBBU1NFUlQoIXNo
b3VsZENvbnRpbnVlU2NhdmVuZ2luZygpKTsKICAgICBwYWdlc19jb21taXR0ZWRfc2luY2VfbGFz
dF9zY2F2ZW5nZV8gPSAwOwotICAgIEFTU0VSVChmcmVlX2NvbW1pdHRlZF9wYWdlc18gPj0gcGFn
ZXNEZWNvbW1pdHRlZCk7Ci0gICAgZnJlZV9jb21taXR0ZWRfcGFnZXNfIC09IHBhZ2VzRGVjb21t
aXR0ZWQ7CiB9CiAKIEFMV0FZU19JTkxJTkUgYm9vbCBUQ01hbGxvY19QYWdlSGVhcDo6c2hvdWxk
Q29udGludWVTY2F2ZW5naW5nKCkgY29uc3QgCg==
</data>
<flag name="review"
          id="31697"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48978</attachid>
            <date>2010-02-18 00:00:47 -0800</date>
            <delta_ts>2010-06-11 10:12:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>ro.txt</filename>
            <type>text/plain</type>
            <size>5018</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0OTEyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDItMTcgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaXhlZCBhIHBvcnRpb24gb2Y6CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MTY1OTE3PiB8IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yODY3NgorICAgICAgICBTYWZhcmkgNCBkb2VzIG5vdCByZWxlYXNlIG1lbW9yeSBiYWNrIHRv
IHRoZSBvcGVyYXRpbmcgc3lzdGVtIGZhc3QgZW5vdWdoICgyODY3NikKKyAgICAgICAgCisgICAg
ICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBzdXJwcmlzaW5nbHkgY29tbW9uIGVkZ2UgY2FzZSBpbiB3
aGljaCB0aGUgcGFnZSBoZWFwCisgICAgICAgIHdvdWxkIGhhdmUgb25seSBvbmUgZnJlZSBzcGFu
LCBidXQgdGhhdCBzcGFuIHdvdWxkIGJlIGxhcmdlciB0aGFuIHRoZQorICAgICAgICBtaW5pbXVt
IGZyZWUgc2l6ZSwgc28gd2Ugd291bGQgZGVjaWRlIG5vdCB0byBmcmVlIGl0LCBldmVuIHRob3Vn
aCBpdAorICAgICAgICBjb3VsZCBiZSBhcyBsYXJnZSBhcyAxMDBNQiBvciBtb3JlIQorICAgICAg
ICAKKyAgICAgICAgU3VuU3BpZGVyIHJlcG9ydHMgbm8gY2hhbmdlIG9uIE1hYyBvciBXaW5kb3dz
LgorCisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAoV1RGOjpUQ01hbGxv
Y19QYWdlSGVhcDo6c2NhdmVuZ2UpOiBDYWxsIHNob3VsZENvbnRpbnVlU2NhdmVuZ2luZygpIGlu
c3RlYWQKKyAgICAgICAgb2YgZG9pbmcgdGhlIG1hdGggb3Vyc2VsdmVzLiBEb24ndCBrZWVwIGEg
bG9jYWwgdmFsdWUgZm9yIHBhZ2VzRGVjb21taXR0ZWQKKyAgICAgICAgYmVjYXVzZSB0aGF0IGxl
dHMgZnJlZV9jb21taXR0ZWRfcGFnZXNfIGJlIHdyb25nIHRlbXBvcmFyaWx5LiBJbnN0ZWFkLAor
ICAgICAgICB1cGRhdGUgZnJlZV9jb21taXR0ZWRfcGFnZXNfIGFzIHdlIGdvLiBBU1NFUlQgdGhh
dCB3ZSBhcmVuJ3QgcmVsZWFzaW5nCisgICAgICAgIGEgc3BhbiB0aGF0IGhhcyBhbHJlYWR5IGJl
ZW4gcmVsZWFzZWQsIGJlY2F1c2Ugd2UgdGhpbmsgdGhpcyBpcyBpbXBvc3NpYmxlLgorICAgICAg
ICBGaW5hbGx5LCBkb24ndCBiZSBhZnJhaWQgdG8gcmVsZWFzZSBhbGwgZnJlZSBtZW1vcnkgaW4g
dGhlIHBhZ2UgaGVhcCB3aGVuCisgICAgICAgIHNjYXZlbmdpbmcuIFdlIG9ubHkgc2NhdmVuZ2Ug
YWZ0ZXIgNSBzZWNvbmRzIG9mIHRoZSBhcHBsaWNhdGlvbidzIHdvcmtpbmcKKyAgICAgICAgc2V0
IG5vdCBncm93aW5nLCBhbmQgd2Uga2VlcCBib3RoIHRocmVhZCBjYWNoZXMgYW5kIGEgY2VudHJh
bCBjYWNoZSBvbgorICAgICAgICB0b3Agb2YgdGhlIHBhZ2UgaGVhcCwgc28gdGhlIGV4dHJhIGZy
ZWUgcGFnZXMgaW4gdGhlIHBhZ2UgaGVhcCB3ZXJlIGp1c3QKKyAgICAgICAgb3ZlcmtpbGwuCisK
IDIwMTAtMDItMTcgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9GYXN0
TWFsbG9jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5j
cHAJKHJldmlzaW9uIDU0OTA4KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ4LDEzICsxMjQ4LDYgQEAgc3RhdGljIGNvbnN0IGludCBr
U2NhdmVuZ2VUaW1lckRlbGF5SW5TZQogLy8gTnVtYmVyIG9mIGZyZWUgY29tbWl0dGVkIHBhZ2Vz
IHRoYXQgd2Ugd2FudCB0byBrZWVwIGFyb3VuZC4KIHN0YXRpYyBjb25zdCBzaXplX3Qga01pbmlt
dW1GcmVlQ29tbWl0dGVkUGFnZUNvdW50ID0gNTEyOwogCi0vLyBEdXJpbmcgYSBzY2F2ZW5nZSwg
d2UnbGwgcmVsZWFzZSB1cCB0byBhIGZyYWN0aW9uIG9mIHRoZSBmcmVlIGNvbW1pdHRlZCBwYWdl
cy4KLSNpZiBPUyhXSU5ET1dTKQotLy8gV2UgYXJlIHNsaWdodGx5IGxlc3MgYWdncmVzc2l2ZSBp
biByZWxlYXNpbmcgbWVtb3J5IG9uIFdpbmRvd3MgZHVlIHRvIHBlcmZvcm1hbmNlIHJlYXNvbnMu
Ci1zdGF0aWMgY29uc3QgaW50IGtNYXhTY2F2ZW5nZUFtb3VudEZhY3RvciA9IDM7Ci0jZWxzZQot
c3RhdGljIGNvbnN0IGludCBrTWF4U2NhdmVuZ2VBbW91bnRGYWN0b3IgPSAyOwotI2VuZGlmCiAj
ZW5kaWYKIAogY2xhc3MgVENNYWxsb2NfUGFnZUhlYXAgewpAQCAtMTUwNywzOSArMTUwMCwzNSBA
QCBBTFdBWVNfSU5MSU5FIHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OnNpCiAKICNlbmRpZgogCi12
b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjpzY2F2ZW5nZSgpIAordm9pZCBUQ01hbGxvY19QYWdlSGVh
cDo6c2NhdmVuZ2UoKQogewotICAgIC8vIElmIHdlIGhhdmUgdG8gY29tbWl0IG1lbW9yeSBpbiB0
aGUgbGFzdCA1IHNlY29uZHMsIGl0IG1lYW5zIHdlIGRvbid0IGhhdmUgZW5vdWdoIGZyZWUgY29t
bWl0dGVkIHBhZ2VzCi0gICAgLy8gZm9yIHRoZSBhbW91bnQgb2YgYWxsb2NhdGlvbnMgdGhhdCB3
ZSBkby4gIFNvIGhvbGQgb2ZmIG9uIHJlbGVhc2luZyBtZW1vcnkgYmFjayB0byB0aGUgc3lzdGVt
LgorICAgIC8vIElmIHdlJ3ZlIHJlY2VudGx5IGNvbW1pdGVkIHBhZ2VzLCBvdXIgd29ya2luZyBz
ZXQgaXMgZ3Jvd2luZywgc28gbm93IGlzCisgICAgLy8gbm90IGEgZ29vZCB0aW1lIHRvIGZyZWUg
cGFnZXMuCiAgICAgaWYgKHBhZ2VzX2NvbW1pdHRlZF9zaW5jZV9sYXN0X3NjYXZlbmdlXyA+IDAp
IHsKICAgICAgICAgcGFnZXNfY29tbWl0dGVkX3NpbmNlX2xhc3Rfc2NhdmVuZ2VfID0gMDsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBMZW5ndGggcGFnZXNEZWNvbW1pdHRlZCA9IDA7Ci0g
ICAgZm9yIChpbnQgaSA9IGtNYXhQYWdlczsgaSA+PSAwOyBpLS0pIHsKKworICAgIGZvciAoaW50
IGkgPSBrTWF4UGFnZXM7IGkgPj0gMCAmJiBzaG91bGRDb250aW51ZVNjYXZlbmdpbmcoKTsgaS0t
KSB7CiAgICAgICAgIFNwYW5MaXN0KiBzbGlzdCA9IChzdGF0aWNfY2FzdDxzaXplX3Q+KGkpID09
IGtNYXhQYWdlcykgPyAmbGFyZ2VfIDogJmZyZWVfW2ldOwogICAgICAgICBpZiAoIURMTF9Jc0Vt
cHR5KCZzbGlzdC0+bm9ybWFsKSkgewogICAgICAgICAgICAgLy8gUmVsZWFzZSB0aGUgbGFzdCBz
cGFuIG9uIHRoZSBub3JtYWwgcG9ydGlvbiBvZiB0aGlzIGxpc3QKICAgICAgICAgICAgIFNwYW4q
IHMgPSBzbGlzdC0+bm9ybWFsLnByZXY7IAotICAgICAgICAgICAgLy8gT25seSBkZWNvbW1pdCB1
cCB0byBhIGZyYWN0aW9uIG9mIHRoZSBmcmVlIGNvbW1pdHRlZCBwYWdlcyBpZiBwYWdlc19hbGxv
Y2F0ZWRfc2luY2VfbGFzdF9zY2F2ZW5nZV8gPiAwLgotICAgICAgICAgICAgaWYgKChwYWdlc0Rl
Y29tbWl0dGVkICsgcy0+bGVuZ3RoKSAqIGtNYXhTY2F2ZW5nZUFtb3VudEZhY3RvciA+IGZyZWVf
Y29tbWl0dGVkX3BhZ2VzXykKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IERMTF9SZW1vdmUocyk7Ci0gICAgICAgICAgICBUQ01hbGxvY19TeXN0ZW1SZWxlYXNlKHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KHMtPnN0YXJ0IDw8IGtQYWdlU2hpZnQpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KHMtPmxlbmd0aCA8PCBr
UGFnZVNoaWZ0KSk7CisgICAgICAgICAgICBBU1NFUlQoIXMtPmRlY29tbWl0dGVkKTsKICAgICAg
ICAgICAgIGlmICghcy0+ZGVjb21taXR0ZWQpIHsKLSAgICAgICAgICAgICAgICBwYWdlc0RlY29t
bWl0dGVkICs9IHMtPmxlbmd0aDsKKyAgICAgICAgICAgICAgICBUQ01hbGxvY19TeXN0ZW1SZWxl
YXNlKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHMtPnN0YXJ0IDw8IGtQYWdlU2hpZnQpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90Pihz
LT5sZW5ndGggPDwga1BhZ2VTaGlmdCkpOworICAgICAgICAgICAgICAgIEFTU0VSVChmcmVlX2Nv
bW1pdHRlZF9wYWdlc18gPj0gcy0+bGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBmcmVlX2NvbW1p
dHRlZF9wYWdlc18gLT0gcy0+bGVuZ3RoOwogICAgICAgICAgICAgICAgIHMtPmRlY29tbWl0dGVk
ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIERMTF9QcmVwZW5kKCZzbGlzdC0+
cmV0dXJuZWQsIHMpOwotICAgICAgICAgICAgLy8gV2UgY2FuIHN0b3Agc2NhdmVuZ2luZyBpZiB0
aGUgbnVtYmVyIG9mIGZyZWUgY29tbWl0dGVkIHBhZ2VzIGxlZnQgaXMgbGVzcyB0aGFuIG9yIGVx
dWFsIHRvIHRoZSBtaW5pbXVtIG51bWJlciB3ZSB3YW50IHRvIGtlZXAgYXJvdW5kLgotICAgICAg
ICAgICAgaWYgKGZyZWVfY29tbWl0dGVkX3BhZ2VzXyA8PSBrTWluaW11bUZyZWVDb21taXR0ZWRQ
YWdlQ291bnQgKyBwYWdlc0RlY29tbWl0dGVkKQotICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgfQorCisgICAgQVNTRVJUKCFzaG91bGRDb250aW51ZVNjYXZlbmdpbmcoKSk7
CiAgICAgcGFnZXNfY29tbWl0dGVkX3NpbmNlX2xhc3Rfc2NhdmVuZ2VfID0gMDsKLSAgICBBU1NF
UlQoZnJlZV9jb21taXR0ZWRfcGFnZXNfID49IHBhZ2VzRGVjb21taXR0ZWQpOwotICAgIGZyZWVf
Y29tbWl0dGVkX3BhZ2VzXyAtPSBwYWdlc0RlY29tbWl0dGVkOwogfQogCiBBTFdBWVNfSU5MSU5F
IGJvb2wgVENNYWxsb2NfUGFnZUhlYXA6OnNob3VsZENvbnRpbnVlU2NhdmVuZ2luZygpIGNvbnN0
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50579</attachid>
            <date>2010-03-11 23:44:10 -0800</date>
            <delta_ts>2010-03-15 19:23:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>ro.txt</filename>
            <type>text/plain</type>
            <size>12527</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1ODkwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDMtMTEgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaXhlZCBhIHBvcnRpb24gb2Y6CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MTY1OTE3PiB8IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yODY3NgorICAgICAgICBTYWZhcmkgNCBkb2VzIG5vdCByZWxlYXNlIG1lbW9yeSBiYWNrIHRv
IHRoZSBvcGVyYXRpbmcgc3lzdGVtIGZhc3QgZW5vdWdoICgyODY3NikKKworICAgICAgICBFdmVy
eSBmZXcgc2Vjb25kcywgcmVsZWFzZSBhIHBlcmNlbnRhZ2Ugb2YgdGhlIG1pbmltdW0gdW51c2Vk
IHBhZ2UgY291bnQKKyAgICAgICAgZHVyaW5nIHRoYXQgdGltZSBwZXJpb2QuCisKKyAgICAgICAg
U3VuU3BpZGVyIHJlcG9ydHMgbm8gY2hhbmdlLgorICAgICAgICAKKyAgICAgICAgKiB3dGYvRmFz
dE1hbGxvYy5jcHA6CisgICAgICAgIChXVEY6OlRDTWFsbG9jX1BhZ2VIZWFwOjppbml0KToKKyAg
ICAgICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6OnNpZ25hbFNjYXZlbmdlcik6CisgICAgICAg
IChXVEY6OlRDTWFsbG9jX1BhZ2VIZWFwOjppbml0aWFsaXplU2NhdmVuZ2VyKTogUmVuYW1lZCBz
aG91bGRDb250aW51ZVNjYXZlbmdpbmcKKyAgICAgICAgdG8gc2hvdWxkU2NhdmVuZ2UsIHNpbmNl
IHNjYXZlbmdpbmcgaXMgbm8gbG9uZ2VyIHNvbWV0aGluZyB0aGF0IHdlIGludGVycnVwdC4KKwor
ICAgICAgICAoV1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6c2NhdmVuZ2UpOiBUaGUgbmV3IHNjYXZl
bmdpbmcgYWxnb3JpdGhtLiBGaXhlcworICAgICAgICBhIGJ1ZyB3aGVyZSB0aGUgb2xkIGNvZGUg
d291bGQgcmVsZWFzZSBvbmx5IG9uZSBpdGVtIGZyb20gZWFjaCBzaXplIGNsYXNzCisgICAgICAg
IHBlciBzY2F2ZW5nZSwgcG90ZW50aWFsbHkgbGVhdmluZyBsYXJnZSBudW1iZXJzIG9mIGxhcmdl
LXNpemVkIG9iamVjdHMKKyAgICAgICAgdW5yZWxlYXNlZCBmb3IgYSBsb25nIHRpbWUuCisKKyAg
ICAgICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6OnNob3VsZFNjYXZlbmdlKToKKyAgICAgICAg
KFdURjo6VENNYWxsb2NfUGFnZUhlYXA6Ok5ldyk6CisgICAgICAgIChXVEY6OlRDTWFsbG9jX1Bh
Z2VIZWFwOjpBbGxvY0xhcmdlKToKKyAgICAgICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6OkRl
bGV0ZSk6CisgICAgICAgIChXVEY6OlRDTWFsbG9jX1BhZ2VIZWFwOjpHcm93SGVhcCk6CisgICAg
ICAgIChXVEY6OlRDTWFsbG9jX1BhZ2VIZWFwOjpzY2F2ZW5nZXJUaHJlYWQpOgorICAgICAgICAo
V1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6cGVyaW9kaWNTY2F2ZW5nZSk6IFVwZGF0ZWQgdG8gdHJh
Y2sgdGhlIG1pbmltdW0KKyAgICAgICAgdmFsdWUgb2YgZnJlZV9jb21taXR0ZWRfcGFnZXNfIGR1
cmluZyBhIGdpdmVuIHNjYXZlbmdlIHBlcmlvZC4KKwogMjAxMC0wMy0xMSAgS2VudCBIYW5zZW4g
IDxrZW50LmhhbnNlbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1
c21hbm4uCkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3BwCShyZXZpc2lvbiA1NTgxMSkK
KysrIEphdmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTI1MywxOCArMTI1MywyNiBAQCB0ZW1wbGF0ZSA8PiBjbGFzcyBNYXBTZWxlY3RvcjwzMj4gewog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCiAjaWYgVVNFX0JBQ0tHUk9VTkRfVEhSRUFEX1RPX1NDQVZF
TkdFX01FTU9SWQotLy8gVGhlIGNlbnRyYWwgcGFnZSBoZWFwIGNvbGxlY3RzIHNwYW5zIG9mIG1l
bW9yeSB0aGF0IGhhdmUgYmVlbiBkZWxldGVkIGJ1dCBhcmUgc3RpbGwgY29tbWl0dGVkIHVudGls
IHRoZXkgYXJlIHJlbGVhc2VkCi0vLyBiYWNrIHRvIHRoZSBzeXN0ZW0uICBXZSB1c2UgYSBiYWNr
Z3JvdW5kIHRocmVhZCB0byBwZXJpb2RpY2FsbHkgc2NhbiB0aGUgbGlzdCBvZiBmcmVlIHNwYW5z
IGFuZCByZWxlYXNlIHNvbWUgYmFjayB0byB0aGUKLS8vIHN5c3RlbS4gIEV2ZXJ5IDUgc2Vjb25k
cywgdGhlIGJhY2tncm91bmQgdGhyZWFkIHdha2VzIHVwIGFuZCBkb2VzIHRoZSBmb2xsb3dpbmc6
Ci0vLyAtIENoZWNrIGlmIHdlIG5lZWRlZCB0byBjb21taXQgbWVtb3J5IGluIHRoZSBsYXN0IDUg
c2Vjb25kcy4gIElmIHNvLCBza2lwIHRoaXMgc2NhdmVuZ2UgYmVjYXVzZSBpdCdzIGEgc2lnbiB0
aGF0IHdlIGFyZSBzaG9ydAotLy8gb2YgZnJlZSBjb21taXR0ZWQgcGFnZXMgYW5kIHNvIHdlIHNo
b3VsZCBub3QgcmVsZWFzZSB0aGVtIGJhY2sgdG8gdGhlIHN5c3RlbSB5ZXQuCi0vLyAtIE90aGVy
d2lzZSwgZ28gdGhyb3VnaCB0aGUgbGlzdCBvZiBmcmVlIHNwYW5zIChmcm9tIGxhcmdlc3QgdG8g
c21hbGxlc3QpIGFuZCByZWxlYXNlIHVwIHRvIGEgZnJhY3Rpb24gb2YgdGhlIGZyZWUgY29tbWl0
dGVkIHBhZ2VzCi0vLyBiYWNrIHRvIHRoZSBzeXN0ZW0uCi0vLyAtIElmIHRoZSBudW1iZXIgb2Yg
ZnJlZSBjb21taXR0ZWQgcGFnZXMgcmVhY2hlcyBrTWluaW11bUZyZWVDb21taXR0ZWRQYWdlQ291
bnQsIHdlIGNhbiBzdG9wIHRoZSBzY2F2ZW5naW5nIGFuZCBibG9jayB0aGUKLS8vIHNjYXZlbmdp
bmcgdGhyZWFkIHVudGlsIHRoZSBudW1iZXIgb2YgZnJlZSBjb21taXR0ZWQgcGFnZXMgZ29lcyBh
Ym92ZSBrTWluaW11bUZyZWVDb21taXR0ZWRQYWdlQ291bnQuCi0KLS8vIEJhY2tncm91bmQgdGhy
ZWFkIHdha2VzIHVwIGV2ZXJ5IDUgc2Vjb25kcyB0byBzY2F2ZW5nZSBhcyBsb25nIGFzIHRoZXJl
IGlzIG1lbW9yeSBhdmFpbGFibGUgdG8gcmV0dXJuIHRvIHRoZSBzeXN0ZW0uCi1zdGF0aWMgY29u
c3QgaW50IGtTY2F2ZW5nZVRpbWVyRGVsYXlJblNlY29uZHMgPSA1OworLy8gVGhlIHBhZ2UgaGVh
cCBtYWludGFpbnMgYSBmcmVlIGxpc3QgZm9yIHNwYW5zIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB1
c2UgYnkKKy8vIHRoZSBjZW50cmFsIGNhY2hlIG9yIGFueSB0aHJlYWQgY2FjaGVzLiBXZSB1c2Ug
YSBiYWNrZ3JvdW5kIHRocmVhZCB0bworLy8gcGVyaW9kaWNhbGx5IHNjYW4gdGhlIGZyZWUgbGlz
dCBhbmQgcmVsZWFzZSBhIHBlcmNlbnRhZ2Ugb2YgaXQgYmFjayB0byB0aGUgT1MuCisKKy8vIElm
IGZyZWVfY29tbWl0dGVkX3BhZ2VzXyBleGNlZWRzIGtNaW5pbXVtRnJlZUNvbW1pdHRlZFBhZ2VD
b3VudCwgdGhlCisvLyBiYWNrZ3JvdW5kIHRocmVhZDoKKy8vICAgICAtIHdha2VzIHVwCisvLyAg
ICAgLSBwYXVzZXMgZm9yIGtTY2F2ZW5nZURlbGF5SW5TZWNvbmRzCisvLyAgICAgLSByZXR1cm5z
IHRvIHRoZSBPUyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIG1lbW9yeSB0aGF0IHJlbWFpbmVkIHVudXNl
ZCBkdXJpbmcKKy8vICAgICAgIHRoYXQgcGF1c2UgKGtTY2F2ZW5nZVBlcmNlbnRhZ2UgKiBtaW5f
ZnJlZV9jb21taXR0ZWRfcGFnZXNfc2luY2VfbGFzdF9zY2F2ZW5nZV8pCisvLyBUaGUgZ29hbCBv
ZiB0aGlzIHN0cmF0ZWd5IGlzIHRvIHJlZHVjZSBtZW1vcnkgcHJlc3N1cmUgaW4gYSB0aW1lbHkg
ZmFzaGlvbgorLy8gd2hpbGUgYXZvaWRpbmcgdGhyYXNoaW5nIHRoZSBPUyBhbGxvY2F0b3IuCisK
Ky8vIFRpbWUgZGVsYXkgYmVmb3JlIHRoZSBwYWdlIGhlYXAgc2NhdmVuZ2VyIHdpbGwgY29uc2lk
ZXIgcmV0dXJuaW5nIHBhZ2VzIHRvCisvLyB0aGUgT1MuCitzdGF0aWMgY29uc3QgaW50IGtTY2F2
ZW5nZURlbGF5SW5TZWNvbmRzID0gMjsKKworLy8gQXBwcm94aW1hdGUgcGVyY2VudGFnZSBvZiBm
cmVlIGNvbW1pdHRlZCBwYWdlcyB0byByZXR1cm4gdG8gdGhlIE9TIGluIG9uZQorLy8gc2NhdmVu
Z2UuCitzdGF0aWMgY29uc3QgZmxvYXQga1NjYXZlbmdlUGVyY2VudGFnZSA9IC41ZjsKIAogLy8g
TnVtYmVyIG9mIGZyZWUgY29tbWl0dGVkIHBhZ2VzIHRoYXQgd2Ugd2FudCB0byBrZWVwIGFyb3Vu
ZC4KIHN0YXRpYyBjb25zdCBzaXplX3Qga01pbmltdW1GcmVlQ29tbWl0dGVkUGFnZUNvdW50ID0g
NTEyOwpAQCAtMTM3NCw4ICsxMzgyLDkgQEAgY2xhc3MgVENNYWxsb2NfUGFnZUhlYXAgewogICAv
LyBOdW1iZXIgb2YgcGFnZXMga2VwdCBpbiBmcmVlIGxpc3RzIHRoYXQgYXJlIHN0aWxsIGNvbW1p
dHRlZC4KICAgTGVuZ3RoIGZyZWVfY29tbWl0dGVkX3BhZ2VzXzsKIAotICAvLyBOdW1iZXIgb2Yg
cGFnZXMgdGhhdCB3ZSBjb21taXR0ZWQgaW4gdGhlIGxhc3Qgc2NhdmVuZ2Ugd2FpdCBpbnRlcnZh
bC4KLSAgTGVuZ3RoIHBhZ2VzX2NvbW1pdHRlZF9zaW5jZV9sYXN0X3NjYXZlbmdlXzsKKyAgLy8g
TWluaW11bSBudW1iZXIgb2YgZnJlZSBjb21taXR0ZWQgcGFnZXMgc2luY2UgbGFzdCBzY2F2ZW5n
ZS4gKENhbiBiZSAwIGlmCisgIC8vIHdlJ3ZlIGNvbW1pdHRlZCBuZXcgcGFnZXMgc2luY2UgdGhl
IGxhc3Qgc2NhdmVuZ2UuKQorICBMZW5ndGggbWluX2ZyZWVfY29tbWl0dGVkX3BhZ2VzX3NpbmNl
X2xhc3Rfc2NhdmVuZ2VfOwogI2VuZGlmCiAKICAgYm9vbCBHcm93SGVhcChMZW5ndGggbik7CkBA
IC0xNDIwLDEzICsxNDI5LDEzIEBAIGNsYXNzIFRDTWFsbG9jX1BhZ2VIZWFwIHsKICAgdm9pZCBp
bml0aWFsaXplU2NhdmVuZ2VyKCk7CiAgIEFMV0FZU19JTkxJTkUgdm9pZCBzaWduYWxTY2F2ZW5n
ZXIoKTsKICAgdm9pZCBzY2F2ZW5nZSgpOwotICBBTFdBWVNfSU5MSU5FIGJvb2wgc2hvdWxkQ29u
dGludWVTY2F2ZW5naW5nKCkgY29uc3Q7CisgIEFMV0FZU19JTkxJTkUgYm9vbCBzaG91bGRTY2F2
ZW5nZSgpIGNvbnN0OwogCiAjaWYgIUhBVkUoRElTUEFUQ0hfSCkKICAgc3RhdGljIE5PX1JFVFVS
TiB2b2lkKiBydW5TY2F2ZW5nZXJUaHJlYWQodm9pZCopOwogICBOT19SRVRVUk4gdm9pZCBzY2F2
ZW5nZXJUaHJlYWQoKTsKIAotICAvLyBLZWVwcyB0cmFjayBvZiB3aGV0aGVyIHRoZSBiYWNrZ3Jv
dW5kIHRocmVhZCBpcyBhY3RpdmVseSBzY2F2ZW5naW5nIG1lbW9yeSBldmVyeSBrU2NhdmVuZ2VU
aW1lckRlbGF5SW5TZWNvbmRzLCBvcgorICAvLyBLZWVwcyB0cmFjayBvZiB3aGV0aGVyIHRoZSBi
YWNrZ3JvdW5kIHRocmVhZCBpcyBhY3RpdmVseSBzY2F2ZW5naW5nIG1lbW9yeSBldmVyeSBrU2Nh
dmVuZ2VEZWxheUluU2Vjb25kcywgb3IKICAgLy8gaXQncyBibG9ja2VkIHdhaXRpbmcgZm9yIG1v
cmUgcGFnZXMgdG8gYmUgZGVsZXRlZC4KICAgYm9vbCBtX3NjYXZlbmdlVGhyZWFkQWN0aXZlOwog
CkBAIC0xNDUyLDcgKzE0NjEsNyBAQCB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjppbml0KCkKIAog
I2lmIFVTRV9CQUNLR1JPVU5EX1RIUkVBRF9UT19TQ0FWRU5HRV9NRU1PUlkKICAgZnJlZV9jb21t
aXR0ZWRfcGFnZXNfID0gMDsKLSAgcGFnZXNfY29tbWl0dGVkX3NpbmNlX2xhc3Rfc2NhdmVuZ2Vf
ID0gMDsKKyAgbWluX2ZyZWVfY29tbWl0dGVkX3BhZ2VzX3NpbmNlX2xhc3Rfc2NhdmVuZ2VfID0g
MDsKICNlbmRpZiAgLy8gVVNFX0JBQ0tHUk9VTkRfVEhSRUFEX1RPX1NDQVZFTkdFX01FTU9SWQog
CiAgIHNjYXZlbmdlX2NvdW50ZXJfID0gMDsKQEAgLTE0OTUsNyArMTUwNCw3IEBAIHZvaWQqIFRD
TWFsbG9jX1BhZ2VIZWFwOjpydW5TY2F2ZW5nZXJUaHIKIAogQUxXQVlTX0lOTElORSB2b2lkIFRD
TWFsbG9jX1BhZ2VIZWFwOjpzaWduYWxTY2F2ZW5nZXIoKQogewotICBpZiAoIW1fc2NhdmVuZ2VU
aHJlYWRBY3RpdmUgJiYgc2hvdWxkQ29udGludWVTY2F2ZW5naW5nKCkpCisgIGlmICghbV9zY2F2
ZW5nZVRocmVhZEFjdGl2ZSAmJiBzaG91bGRTY2F2ZW5nZSgpKQogICAgIHB0aHJlYWRfY29uZF9z
aWduYWwoJm1fc2NhdmVuZ2VDb25kaXRpb24pOwogfQogCkBAIC0xNTA1LDE1ICsxNTE0LDE1IEBA
IHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OmluaXRpYWxpemVTY2F2ZW4KIHsKICAgbV9zY2F2ZW5n
ZVF1ZXVlID0gZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUu
RmFzdE1hbGxvY1NhdmVuZ2VyIiwgTlVMTCk7CiAgIG1fc2NhdmVuZ2VUaW1lciA9IGRpc3BhdGNo
X3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfVElNRVIsIDAsIDAsIG1fc2NhdmVu
Z2VRdWV1ZSk7Ci0gIGRpc3BhdGNoX3RpbWVfdCBzdGFydFRpbWUgPSBkaXNwYXRjaF90aW1lKERJ
U1BBVENIX1RJTUVfTk9XLCBrU2NhdmVuZ2VUaW1lckRlbGF5SW5TZWNvbmRzICogTlNFQ19QRVJf
U0VDKTsKLSAgZGlzcGF0Y2hfc291cmNlX3NldF90aW1lcihtX3NjYXZlbmdlVGltZXIsIHN0YXJ0
VGltZSwga1NjYXZlbmdlVGltZXJEZWxheUluU2Vjb25kcyAqIE5TRUNfUEVSX1NFQywgMTAwMCAq
IE5TRUNfUEVSX1VTRUMpOworICBkaXNwYXRjaF90aW1lX3Qgc3RhcnRUaW1lID0gZGlzcGF0Y2hf
dGltZShESVNQQVRDSF9USU1FX05PVywga1NjYXZlbmdlRGVsYXlJblNlY29uZHMgKiBOU0VDX1BF
Ul9TRUMpOworICBkaXNwYXRjaF9zb3VyY2Vfc2V0X3RpbWVyKG1fc2NhdmVuZ2VUaW1lciwgc3Rh
cnRUaW1lLCBrU2NhdmVuZ2VEZWxheUluU2Vjb25kcyAqIE5TRUNfUEVSX1NFQywgMTAwMCAqIE5T
RUNfUEVSX1VTRUMpOwogICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIobV9zY2F2
ZW5nZVRpbWVyLCBeeyBwZXJpb2RpY1NjYXZlbmdlKCk7IH0pOwogICBtX3NjYXZlbmdpbmdTY2hl
ZHVsZWQgPSBmYWxzZTsKIH0KIAogQUxXQVlTX0lOTElORSB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFw
OjpzaWduYWxTY2F2ZW5nZXIoKQogewotICBpZiAoIW1fc2NhdmVuZ2luZ1NjaGVkdWxlZCAmJiBz
aG91bGRDb250aW51ZVNjYXZlbmdpbmcoKSkgeworICBpZiAoIW1fc2NhdmVuZ2luZ1NjaGVkdWxl
ZCAmJiBzaG91bGRTY2F2ZW5nZSgpKSB7CiAgICAgbV9zY2F2ZW5naW5nU2NoZWR1bGVkID0gdHJ1
ZTsKICAgICBkaXNwYXRjaF9yZXN1bWUobV9zY2F2ZW5nZVRpbWVyKTsKICAgfQpAQCAtMTUyMywx
NiArMTUzMiwxMiBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OnNpCiAK
IHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OnNjYXZlbmdlKCkKIHsKLSAgICAvLyBJZiB3ZSd2ZSBy
ZWNlbnRseSBjb21taXRlZCBwYWdlcywgb3VyIHdvcmtpbmcgc2V0IGlzIGdyb3dpbmcsIHNvIG5v
dyBpcwotICAgIC8vIG5vdCBhIGdvb2QgdGltZSB0byBmcmVlIHBhZ2VzLgotICAgIGlmIChwYWdl
c19jb21taXR0ZWRfc2luY2VfbGFzdF9zY2F2ZW5nZV8gPiAwKSB7Ci0gICAgICAgIHBhZ2VzX2Nv
bW1pdHRlZF9zaW5jZV9sYXN0X3NjYXZlbmdlXyA9IDA7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
CisgICAgc2l6ZV90IHBhZ2VzVG9SZWxlYXNlID0gbWluX2ZyZWVfY29tbWl0dGVkX3BhZ2VzX3Np
bmNlX2xhc3Rfc2NhdmVuZ2VfICoga1NjYXZlbmdlUGVyY2VudGFnZTsKKyAgICBzaXplX3QgdGFy
Z2V0UGFnZUNvdW50ID0gbWF4PHNpemVfdD4oa01pbmltdW1GcmVlQ29tbWl0dGVkUGFnZUNvdW50
LCBmcmVlX2NvbW1pdHRlZF9wYWdlc18gLSBwYWdlc1RvUmVsZWFzZSk7CiAKLSAgICBmb3IgKGlu
dCBpID0ga01heFBhZ2VzOyBpID49IDAgJiYgc2hvdWxkQ29udGludWVTY2F2ZW5naW5nKCk7IGkt
LSkgeworICAgIGZvciAoaW50IGkgPSBrTWF4UGFnZXM7IGkgPj0gMCAmJiBmcmVlX2NvbW1pdHRl
ZF9wYWdlc18gPiB0YXJnZXRQYWdlQ291bnQ7IGktLSkgewogICAgICAgICBTcGFuTGlzdCogc2xp
c3QgPSAoc3RhdGljX2Nhc3Q8c2l6ZV90PihpKSA9PSBrTWF4UGFnZXMpID8gJmxhcmdlXyA6ICZm
cmVlX1tpXTsKLSAgICAgICAgaWYgKCFETExfSXNFbXB0eSgmc2xpc3QtPm5vcm1hbCkpIHsKKyAg
ICAgICAgd2hpbGUgKCFETExfSXNFbXB0eSgmc2xpc3QtPm5vcm1hbCkgJiYgZnJlZV9jb21taXR0
ZWRfcGFnZXNfID4gdGFyZ2V0UGFnZUNvdW50KSB7CiAgICAgICAgICAgICAvLyBSZWxlYXNlIHRo
ZSBsYXN0IHNwYW4gb24gdGhlIG5vcm1hbCBwb3J0aW9uIG9mIHRoaXMgbGlzdAogICAgICAgICAg
ICAgU3BhbiogcyA9IHNsaXN0LT5ub3JtYWwucHJldjsgCiAgICAgICAgICAgICBETExfUmVtb3Zl
KHMpOwpAQCAtMTU0OCwxMCArMTU1MywxMCBAQCB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjpzY2F2
ZW5nZSgpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwYWdlc19jb21taXR0ZWRfc2luY2VfbGFz
dF9zY2F2ZW5nZV8gPSAwOworICAgIG1pbl9mcmVlX2NvbW1pdHRlZF9wYWdlc19zaW5jZV9sYXN0
X3NjYXZlbmdlXyA9IGZyZWVfY29tbWl0dGVkX3BhZ2VzXzsKIH0KIAotQUxXQVlTX0lOTElORSBi
b29sIFRDTWFsbG9jX1BhZ2VIZWFwOjpzaG91bGRDb250aW51ZVNjYXZlbmdpbmcoKSBjb25zdCAK
K0FMV0FZU19JTkxJTkUgYm9vbCBUQ01hbGxvY19QYWdlSGVhcDo6c2hvdWxkU2NhdmVuZ2UoKSBj
b25zdCAKIHsKICAgICByZXR1cm4gZnJlZV9jb21taXR0ZWRfcGFnZXNfID4ga01pbmltdW1GcmVl
Q29tbWl0dGVkUGFnZUNvdW50OyAKIH0KQEAgLTE1ODMsOSArMTU4OCw2IEBAIGlubGluZSBTcGFu
KiBUQ01hbGxvY19QYWdlSGVhcDo6TmV3KExlbmcKICAgICBpZiAocmVzdWx0LT5kZWNvbW1pdHRl
ZCkgewogICAgICAgICBUQ01hbGxvY19TeXN0ZW1Db21taXQocmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4ocmVzdWx0LT5zdGFydCA8PCBrUGFnZVNoaWZ0KSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihuIDw8
IGtQYWdlU2hpZnQpKTsKICAgICAgICAgcmVzdWx0LT5kZWNvbW1pdHRlZCA9IGZhbHNlOwotI2lm
IFVTRV9CQUNLR1JPVU5EX1RIUkVBRF9UT19TQ0FWRU5HRV9NRU1PUlkKLSAgICAgICAgcGFnZXNf
Y29tbWl0dGVkX3NpbmNlX2xhc3Rfc2NhdmVuZ2VfICs9IG47Ci0jZW5kaWYKICAgICB9CiAjaWYg
VVNFX0JBQ0tHUk9VTkRfVEhSRUFEX1RPX1NDQVZFTkdFX01FTU9SWQogICAgIGVsc2UgewpAQCAt
MTU5Myw2ICsxNTk1LDggQEAgaW5saW5lIFNwYW4qIFRDTWFsbG9jX1BhZ2VIZWFwOjpOZXcoTGVu
ZwogICAgICAgICAvLyBmcmVlIGNvbW1pdHRlZCBwYWdlcyBjb3VudC4KICAgICAgICAgQVNTRVJU
KGZyZWVfY29tbWl0dGVkX3BhZ2VzXyA+PSBuKTsKICAgICAgICAgZnJlZV9jb21taXR0ZWRfcGFn
ZXNfIC09IG47CisgICAgICAgIGlmIChmcmVlX2NvbW1pdHRlZF9wYWdlc18gPCBtaW5fZnJlZV9j
b21taXR0ZWRfcGFnZXNfc2luY2VfbGFzdF9zY2F2ZW5nZV8pCisgICAgICAgICAgICBtaW5fZnJl
ZV9jb21taXR0ZWRfcGFnZXNfc2luY2VfbGFzdF9zY2F2ZW5nZV8gPSBmcmVlX2NvbW1pdHRlZF9w
YWdlc187CiAgICAgfQogI2VuZGlmICAvLyBVU0VfQkFDS0dST1VORF9USFJFQURfVE9fU0NBVkVO
R0VfTUVNT1JZCiAgICAgQVNTRVJUKENoZWNrKCkpOwpAQCAtMTY1NCw5ICsxNjU4LDYgQEAgU3Bh
biogVENNYWxsb2NfUGFnZUhlYXA6OkFsbG9jTGFyZ2UoTGVuZwogICAgIGlmIChiZXN0LT5kZWNv
bW1pdHRlZCkgewogICAgICAgICBUQ01hbGxvY19TeXN0ZW1Db21taXQocmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oYmVzdC0+c3RhcnQgPDwga1BhZ2VTaGlmdCksIHN0YXRpY19jYXN0PHNpemVfdD4o
biA8PCBrUGFnZVNoaWZ0KSk7CiAgICAgICAgIGJlc3QtPmRlY29tbWl0dGVkID0gZmFsc2U7Ci0j
aWYgVVNFX0JBQ0tHUk9VTkRfVEhSRUFEX1RPX1NDQVZFTkdFX01FTU9SWQotICAgICAgICBwYWdl
c19jb21taXR0ZWRfc2luY2VfbGFzdF9zY2F2ZW5nZV8gKz0gbjsKLSNlbmRpZgogICAgIH0KICNp
ZiBVU0VfQkFDS0dST1VORF9USFJFQURfVE9fU0NBVkVOR0VfTUVNT1JZCiAgICAgZWxzZSB7CkBA
IC0xNjY0LDYgKzE2NjUsOCBAQCBTcGFuKiBUQ01hbGxvY19QYWdlSGVhcDo6QWxsb2NMYXJnZShM
ZW5nCiAgICAgICAgIC8vIGZyZWUgY29tbWl0dGVkIHBhZ2VzIGNvdW50LgogICAgICAgICBBU1NF
UlQoZnJlZV9jb21taXR0ZWRfcGFnZXNfID49IG4pOwogICAgICAgICBmcmVlX2NvbW1pdHRlZF9w
YWdlc18gLT0gbjsKKyAgICAgICAgaWYgKGZyZWVfY29tbWl0dGVkX3BhZ2VzXyA8IG1pbl9mcmVl
X2NvbW1pdHRlZF9wYWdlc19zaW5jZV9sYXN0X3NjYXZlbmdlXykKKyAgICAgICAgICAgIG1pbl9m
cmVlX2NvbW1pdHRlZF9wYWdlc19zaW5jZV9sYXN0X3NjYXZlbmdlXyA9IGZyZWVfY29tbWl0dGVk
X3BhZ2VzXzsKICAgICB9CiAjZW5kaWYgIC8vIFVTRV9CQUNLR1JPVU5EX1RIUkVBRF9UT19TQ0FW
RU5HRV9NRU1PUlkKICAgICBBU1NFUlQoQ2hlY2soKSk7CkBAIC0xODA3LDYgKzE4MTAsOCBAQCBp
bmxpbmUgdm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6RGVsZXRlKFNwCiAgICAgICAvLyBJZiB0aGUg
bWVyZ2VkIHNwYW4gaXMgZGVjb21taXR0ZWQsIHRoYXQgbWVhbnMgd2UgZGVjb21taXR0ZWQgYW55
IG5laWdoYm9yaW5nIHNwYW5zIHRoYXQgd2VyZQogICAgICAgLy8gY29tbWl0dGVkLiAgVXBkYXRl
IHRoZSBmcmVlIGNvbW1pdHRlZCBwYWdlcyBjb3VudC4KICAgICAgIGZyZWVfY29tbWl0dGVkX3Bh
Z2VzXyAtPSBuZWlnaGJvcmluZ0NvbW1pdHRlZFNwYW5zTGVuZ3RoOworICAgICAgaWYgKGZyZWVf
Y29tbWl0dGVkX3BhZ2VzXyA8IG1pbl9mcmVlX2NvbW1pdHRlZF9wYWdlc19zaW5jZV9sYXN0X3Nj
YXZlbmdlXykKKyAgICAgICAgICAgIG1pbl9mcmVlX2NvbW1pdHRlZF9wYWdlc19zaW5jZV9sYXN0
X3NjYXZlbmdlXyA9IGZyZWVfY29tbWl0dGVkX3BhZ2VzXzsKICAgfSBlbHNlIHsKICAgICAgIC8v
IElmIHRoZSBtZXJnZWQgc3BhbiByZW1haW5zIGNvbW1pdHRlZCwgYWRkIHRoZSBkZWxldGVkIHNw
YW4ncyBzaXplIHRvIHRoZSBmcmVlIGNvbW1pdHRlZCBwYWdlcyBjb3VudC4KICAgICAgIGZyZWVf
Y29tbWl0dGVkX3BhZ2VzXyArPSBuOwpAQCAtMTk3MSwxMCArMTk3Niw2IEBAIGJvb2wgVENNYWxs
b2NfUGFnZUhlYXA6Okdyb3dIZWFwKExlbmd0aCAKICAgfQogICBhc2sgPSBhY3R1YWxfc2l6ZSA+
PiBrUGFnZVNoaWZ0OwogCi0jaWYgVVNFX0JBQ0tHUk9VTkRfVEhSRUFEX1RPX1NDQVZFTkdFX01F
TU9SWQotICBwYWdlc19jb21taXR0ZWRfc2luY2VfbGFzdF9zY2F2ZW5nZV8gKz0gYXNrOwotI2Vu
ZGlmCi0KICAgdWludDY0X3Qgb2xkX3N5c3RlbV9ieXRlcyA9IHN5c3RlbV9ieXRlc187CiAgIHN5
c3RlbV9ieXRlc18gKz0gKGFzayA8PCBrUGFnZVNoaWZ0KTsKICAgY29uc3QgUGFnZUlEIHAgPSBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKSA+PiBrUGFnZVNoaWZ0OwpAQCAtMjM3Miwx
NSArMjM3MywxNSBAQCB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjpzY2F2ZW5nZXJUaHJlYWQoCiAj
ZW5kaWYKIAogICB3aGlsZSAoMSkgewotICAgICAgaWYgKCFzaG91bGRDb250aW51ZVNjYXZlbmdp
bmcoKSkgeworICAgICAgaWYgKCFzaG91bGRTY2F2ZW5nZSgpKSB7CiAgICAgICAgICAgcHRocmVh
ZF9tdXRleF9sb2NrKCZtX3NjYXZlbmdlTXV0ZXgpOwogICAgICAgICAgIG1fc2NhdmVuZ2VUaHJl
YWRBY3RpdmUgPSBmYWxzZTsKLSAgICAgICAgICAvLyBCbG9jayB1bnRpbCB0aGVyZSBhcmUgZW5v
dWdoIGZyZWVkIHBhZ2VzIHRvIHJlbGVhc2UgYmFjayB0byB0aGUgc3lzdGVtLgorICAgICAgICAg
IC8vIEJsb2NrIHVudGlsIHRoZXJlIGFyZSBlbm91Z2ggZnJlZSBjb21taXR0ZWQgcGFnZXMgdG8g
cmVsZWFzZSBiYWNrIHRvIHRoZSBzeXN0ZW0uCiAgICAgICAgICAgcHRocmVhZF9jb25kX3dhaXQo
Jm1fc2NhdmVuZ2VDb25kaXRpb24sICZtX3NjYXZlbmdlTXV0ZXgpOwogICAgICAgICAgIG1fc2Nh
dmVuZ2VUaHJlYWRBY3RpdmUgPSB0cnVlOwogICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2Nr
KCZtX3NjYXZlbmdlTXV0ZXgpOwogICAgICAgfQotICAgICAgc2xlZXAoa1NjYXZlbmdlVGltZXJE
ZWxheUluU2Vjb25kcyk7CisgICAgICBzbGVlcChrU2NhdmVuZ2VEZWxheUluU2Vjb25kcyk7CiAg
ICAgICB7CiAgICAgICAgICAgU3BpbkxvY2tIb2xkZXIgaCgmcGFnZWhlYXBfbG9jayk7CiAgICAg
ICAgICAgcGFnZWhlYXAtPnNjYXZlbmdlKCk7CkBAIC0yMzk3LDcgKzIzOTgsNyBAQCB2b2lkIFRD
TWFsbG9jX1BhZ2VIZWFwOjpwZXJpb2RpY1NjYXZlbmdlCiAgICAgcGFnZWhlYXAtPnNjYXZlbmdl
KCk7CiAgIH0KIAotICBpZiAoIXNob3VsZENvbnRpbnVlU2NhdmVuZ2luZygpKSB7CisgIGlmICgh
c2hvdWxkU2NhdmVuZ2UoKSkgewogICAgIG1fc2NhdmVuZ2luZ1NjaGVkdWxlZCA9IGZhbHNlOwog
ICAgIGRpc3BhdGNoX3N1c3BlbmQobV9zY2F2ZW5nZVRpbWVyKTsKICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>