<?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>31027</bug_id>
          
          <creation_ts>2009-11-02 12:34:58 -0800</creation_ts>
          <short_desc>CRASH: Rehashing of EventListenerMap leads to loss of EventListenerList.</short_desc>
          <delta_ts>2009-11-05 12:11:01 -0800</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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://soundcloud.com/you/tracks</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Vitaly Repeshko">vitalyr</assigned_to>
          <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>sullivan</cc>
    
    <cc>vitalyr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>159894</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-11-02 12:34:58 -0800</bug_when>
    <thetext>:(

.. which in turn ruins our brand new no-copy scheme. Have a layout test. Coming up in a sec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159897</commentid>
    <comment_count>1</comment_count>
      <attachid>42338</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-11-02 12:37:47 -0800</bug_when>
    <thetext>Created attachment 42338
Layout Test/Reduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159912</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-11-02 13:49:08 -0800</bug_when>
    <thetext>I guess we need to store a pointer to a vector, instead of a vector, in the event target&apos;s hash table.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159913</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-11-02 13:53:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/7358150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159917</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-11-02 14:05:45 -0800</bug_when>
    <thetext>Just to avoid double-work... Geoffrey, are you working on this or am I :)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159921</commentid>
    <comment_count>5</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-11-02 14:18:44 -0800</bug_when>
    <thetext>Vitaly wins the straw poll!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160039</commentid>
    <comment_count>6</comment_count>
      <attachid>42371</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-11-03 05:43:22 -0800</bug_when>
    <thetext>Created attachment 42371
patch: proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160050</commentid>
    <comment_count>7</comment_count>
      <attachid>42376</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-11-03 06:46:21 -0800</bug_when>
    <thetext>Created attachment 42376
patch: proposed fix v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160092</commentid>
    <comment_count>8</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-11-03 09:43:53 -0800</bug_when>
    <thetext>You probably need to also include my test in your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160153</commentid>
    <comment_count>9</comment_count>
      <attachid>42402</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-11-03 11:54:24 -0800</bug_when>
    <thetext>Created attachment 42402
patch: proposed fix v3 (now includes the test)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160252</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-03 15:56:01 -0800</bug_when>
    <thetext>I think Geoff should review this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160619</commentid>
    <comment_count>11</comment_count>
      <attachid>42402</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-11-04 14:56:43 -0800</bug_when>
    <thetext>Comment on attachment 42402
patch: proposed fix v3 (now includes the test)

r=me

Please update your ChangeLogs to match the title of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160721</commentid>
    <comment_count>12</comment_count>
      <attachid>42546</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-11-04 22:00:28 -0800</bug_when>
    <thetext>Created attachment 42546
patch: proposed fix v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160722</commentid>
    <comment_count>13</comment_count>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-11-04 22:00:53 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 42402 [details])
&gt; r=me
&gt; 
&gt; Please update your ChangeLogs to match the title of this bug.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160727</commentid>
    <comment_count>14</comment_count>
      <attachid>42546</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-11-04 22:16:08 -0800</bug_when>
    <thetext>Comment on attachment 42546
patch: proposed fix v4

great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160877</commentid>
    <comment_count>15</comment_count>
      <attachid>42546</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-11-05 10:47:54 -0800</bug_when>
    <thetext>Comment on attachment 42546
patch: proposed fix v4

Also needs to build with USE(JSC) == 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160903</commentid>
    <comment_count>16</comment_count>
      <attachid>42583</attachid>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-11-05 11:51:40 -0800</bug_when>
    <thetext>Created attachment 42583
patch: proposed fix v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160904</commentid>
    <comment_count>17</comment_count>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2009-11-05 11:52:40 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 42546 [details])
&gt; Also needs to build with USE(JSC) == 1.

Oops. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160906</commentid>
    <comment_count>18</comment_count>
      <attachid>42583</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-11-05 11:55:42 -0800</bug_when>
    <thetext>Comment on attachment 42583
patch: proposed fix v5

r=Geof and me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160914</commentid>
    <comment_count>19</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-11-05 12:11:01 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/50573.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42338</attachid>
            <date>2009-11-02 12:37:47 -0800</date>
            <delta_ts>2009-11-02 12:37:47 -0800</delta_ts>
            <desc>Layout Test/Reduction</desc>
            <filename>bug-31027-20091102123744.patch</filename>
            <type>text/plain</type>
            <size>1700</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmODBkZmY4Li5kNWEzMzcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTEt
MDIgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWhhc2hpbmcgb2YgRXZlbnRM
aXN0ZW5lck1hcCBsZWFkcyB0byBhIGRhbmdsaW5nIHJlZmVyZW5jZSB0byB0aGUgbGlzdGVuZXIg
bGlzdC4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMTAyNworCisgICAgICAgICogZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXItbWFw
LXJlaGFzaC1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAwOS0xMS0wMiAgUm9sYW5kIFN0ZWluZXIg
IDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZl
IEh5YXR0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVu
ZXItbWFwLXJlaGFzaC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQt
bGlzdGVuZXItbWFwLXJlaGFzaC1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjM3NGY3OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9ldmVudC1saXN0ZW5lci1tYXAtcmVoYXNoLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworICAgIGZ1bmN0aW9uIHN0dWIoKSB7fQorCisg
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTA7ICsraSkKKyAgICAgICAg
ICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImJvb20iICsgaSwgc3R1YiwgZmFsc2UpOwor
CisgICAgfSwgZmFsc2UpOworCisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29u
dGVudExvYWRlZCIsIHN0dWIpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJF
bnN1cmVzIHRoYXQgcmVoYXNoaW5nIG9mIGV2ZW50cyBtYXAgZG9lc24ndCBsZWF2ZSB1cyB3aXRo
IGEgZGFuZ2xpbmcgZXZlbnQgbGlzdCByZWZlcmVuY2UuIik7CisKKyAgICB0ZXN0UGFzc2VkKCJE
aWQgbm90IGNyYXNoLiIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42371</attachid>
            <date>2009-11-03 05:43:22 -0800</date>
            <delta_ts>2009-11-03 06:46:21 -0800</delta_ts>
            <desc>patch: proposed fix</desc>
            <filename>fix_rehash.patch</filename>
            <type>text/plain</type>
            <size>7269</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDY0MTMxZi4uNTYwYmY1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAwOS0xMS0wMyAgVml0YWx5IFJlcGVz
aGtvICA8dml0YWx5ckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRml4OiBSZWhhc2hpbmcgb2YgRXZlbnRMaXN0ZW5lck1hcCBs
ZWFkcyB0byBsb3NzIG9mIEV2ZW5MaXN0ZW5lckxpc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTAyNworCisgICAgICAgIFRlc3RlZCBieSBuZXcg
ZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXItbWFwLXJlaGFzaC1jcmFzaC5odG1sLgorCisgICAg
ICAgIEV2ZW50TGlzdGVuZXJNYXAgbW9kaWZpZWQgdG8gc3RvcmUgcG9pbnRlcnMgdG8gbGlzdGVu
ZXIgdmVjdG9yczoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRUYXJnZXREYXRhOjp+RXZlbnRUYXJnZXREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJn
ZXQ6OmdldEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0Ojpy
ZW1vdmVBbGxFdmVudExpc3RlbmVycyk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0Lmg6CisK
KyAgICAgICAgVXNhZ2VzIHVwZGF0ZWQgYWZ0ZXIgaW50ZXJmYWNlIGNoYW5nZXM6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUpOgorICAgICAgICAqIHN2
Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnRy
YW5zZmVyRXZlbnRMaXN0ZW5lcnNUb1NoYWRvd1RyZWUpOgorCiAyMDA5LTExLTAyICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2
aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggNjk0ZTc4YS4uZWMyMjEyZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0LmNwcApAQCAtNjgsNiArNjgsMTEgQEAgYm9vbCBldmVudERpc3BhdGNoRm9yYmlkZGVuKCkK
IH0KICNlbmRpZiAvLyBOREVCVUcKIAorRXZlbnRUYXJnZXREYXRhOjp+RXZlbnRUYXJnZXREYXRh
KCkKK3sKKyAgICBkZWxldGVBbGxWYWx1ZXMoZXZlbnRMaXN0ZW5lck1hcCk7Cit9CisKIEV2ZW50
VGFyZ2V0Ojp+RXZlbnRUYXJnZXQoKQogewogfQpAQCAtMTU3LDIwICsxNjIsMjMgQEAgYm9vbCBF
dmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgUGFzc1JlZlB0cjxFdmUKIHsKICAgICBFdmVudFRhcmdldERhdGEqIGQgPSBlbnN1cmVFdmVu
dFRhcmdldERhdGEoKTsKIAotICAgIHBhaXI8RXZlbnRMaXN0ZW5lck1hcDo6aXRlcmF0b3IsIGJv
b2w+IHJlc3VsdCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAuYWRkKGV2ZW50VHlwZSwgRXZlbnRMaXN0
ZW5lclZlY3RvcigpKTsKLSAgICBFdmVudExpc3RlbmVyVmVjdG9yJiBlbnRyeSA9IHJlc3VsdC5m
aXJzdC0+c2Vjb25kOworICAgIHBhaXI8RXZlbnRMaXN0ZW5lck1hcDo6aXRlcmF0b3IsIGJvb2w+
IHJlc3VsdCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAuYWRkKGV2ZW50VHlwZSwgMCk7CisgICAgRXZl
bnRMaXN0ZW5lclZlY3RvciomIGVudHJ5ID0gcmVzdWx0LmZpcnN0LT5zZWNvbmQ7CisgICAgY29u
c3QgYm9vbCBpc05ld0VudHJ5ID0gcmVzdWx0LnNlY29uZDsKKyAgICBpZiAoaXNOZXdFbnRyeSkK
KyAgICAgICAgZW50cnkgPSBuZXcgRXZlbnRMaXN0ZW5lclZlY3RvcigpOwogCiAgICAgUmVnaXN0
ZXJlZEV2ZW50TGlzdGVuZXIgcmVnaXN0ZXJlZExpc3RlbmVyKGxpc3RlbmVyLCB1c2VDYXB0dXJl
KTsKLSAgICBpZiAoIXJlc3VsdC5zZWNvbmQpIHsgLy8gcHJlLWV4aXN0aW5nIGVudHJ5Ci0gICAg
ICAgIGlmIChlbnRyeS5maW5kKHJlZ2lzdGVyZWRMaXN0ZW5lcikgIT0gbm90Rm91bmQpIC8vIGR1
cGxpY2F0ZSBsaXN0ZW5lcgorICAgIGlmICghaXNOZXdFbnRyeSkgeworICAgICAgICBpZiAoZW50
cnktPmZpbmQocmVnaXN0ZXJlZExpc3RlbmVyKSAhPSBub3RGb3VuZCkgLy8gZHVwbGljYXRlIGxp
c3RlbmVyCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgZW50cnkuYXBw
ZW5kKHJlZ2lzdGVyZWRMaXN0ZW5lcik7CisgICAgZW50cnktPmFwcGVuZChyZWdpc3RlcmVkTGlz
dGVuZXIpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEV2ZW50VGFyZ2V0OjpyZW1vdmVF
dmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVy
KiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQorYm9vbCBFdmVudFRhcmdldDo6cmVtb3ZlRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciog
bGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSlnCiB7CiAgICAgRXZlbnRUYXJnZXREYXRhKiBkID0g
ZXZlbnRUYXJnZXREYXRhKCk7CiAgICAgaWYgKCFkKQpAQCAtMTc5LDE2ICsxODcsMTggQEAgYm9v
bCBFdmVudFRhcmdldDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgRXZlbnRMaXN0ZW4KICAgICBFdmVudExpc3RlbmVyTWFwOjppdGVyYXRvciByZXN1
bHQgPSBkLT5ldmVudExpc3RlbmVyTWFwLmZpbmQoZXZlbnRUeXBlKTsKICAgICBpZiAocmVzdWx0
ID09IGQtPmV2ZW50TGlzdGVuZXJNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBFdmVudExpc3RlbmVyVmVjdG9yJiBlbnRyeSA9IHJlc3VsdC0+c2Vjb25kOworICAgIEV2ZW50
TGlzdGVuZXJWZWN0b3IqIGVudHJ5ID0gcmVzdWx0LT5zZWNvbmQ7CiAKICAgICBSZWdpc3RlcmVk
RXZlbnRMaXN0ZW5lciByZWdpc3RlcmVkTGlzdGVuZXIobGlzdGVuZXIsIHVzZUNhcHR1cmUpOwot
ICAgIHNpemVfdCBpbmRleCA9IGVudHJ5LmZpbmQocmVnaXN0ZXJlZExpc3RlbmVyKTsKKyAgICBz
aXplX3QgaW5kZXggPSBlbnRyeS0+ZmluZChyZWdpc3RlcmVkTGlzdGVuZXIpOwogICAgIGlmIChp
bmRleCA9PSBub3RGb3VuZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZW50cnkucmVt
b3ZlKGluZGV4KTsKLSAgICBpZiAoIWVudHJ5LnNpemUoKSkKKyAgICBlbnRyeS0+cmVtb3ZlKGlu
ZGV4KTsKKyAgICBpZiAoZW50cnktPmlzRW1wdHkoKSkgeworICAgICAgICBkZWxldGUgZW50cnk7
CiAgICAgICAgIGQtPmV2ZW50TGlzdGVuZXJNYXAucmVtb3ZlKHJlc3VsdCk7CisgICAgfQogCiAg
ICAgLy8gTm90aWZ5IGZpcmluZyBldmVudHMgcGxhbm5pbmcgdG8gaW52b2tlIHRoZSBsaXN0ZW5l
ciBhdCAnaW5kZXgnIHRoYXQKICAgICAvLyB0aGV5IGhhdmUgb25lIGxlc3MgbGlzdGVuZXIgdG8g
aW52b2tlLgpAQCAtMjY2LDcgKzI3Niw3IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OmZpcmVFdmVudExp
c3RlbmVycyhFdmVudCogZXZlbnQpCiAgICAgRXZlbnRMaXN0ZW5lck1hcDo6aXRlcmF0b3IgcmVz
dWx0ID0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50LT50eXBlKCkpOwogICAgIGlmIChy
ZXN1bHQgPT0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIEV2ZW50TGlzdGVuZXJWZWN0b3ImIGVudHJ5ID0gcmVzdWx0LT5zZWNvbmQ7CisgICAg
RXZlbnRMaXN0ZW5lclZlY3RvciYgZW50cnkgPSAqcmVzdWx0LT5zZWNvbmQ7CiAKICAgICBSZWZQ
dHI8RXZlbnRUYXJnZXQ+IHByb3RlY3QgPSB0aGlzOwogCkBAIC0zMDMsNyArMzEzLDcgQEAgY29u
c3QgRXZlbnRMaXN0ZW5lclZlY3RvciYgRXZlbnRUYXJnZXQ6OmdldEV2ZW50TGlzdGVuZXJzKGNv
bnN0IEF0b21pY1N0cmluZyYgZXYKICAgICBFdmVudExpc3RlbmVyTWFwOjppdGVyYXRvciBpdCA9
IGQtPmV2ZW50TGlzdGVuZXJNYXAuZmluZChldmVudFR5cGUpOwogICAgIGlmIChpdCA9PSBkLT5l
dmVudExpc3RlbmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm4gZW1wdHlWZWN0b3I7Ci0gICAg
cmV0dXJuIGl0LT5zZWNvbmQ7CisgICAgcmV0dXJuICppdC0+c2Vjb25kOwogfQogCiB2b2lkIEV2
ZW50VGFyZ2V0OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCkBAIC0zMTEsNiArMzIxLDcgQEAg
dm9pZCBFdmVudFRhcmdldDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIEV2ZW50VGFy
Z2V0RGF0YSogZCA9IGV2ZW50VGFyZ2V0RGF0YSgpOwogICAgIGlmICghZCkKICAgICAgICAgcmV0
dXJuOworICAgIGRlbGV0ZUFsbFZhbHVlcyhkLT5ldmVudExpc3RlbmVyTWFwKTsKICAgICBkLT5l
dmVudExpc3RlbmVyTWFwLmNsZWFyKCk7CiAKICAgICAvLyBOb3RpZnkgZmlyaW5nIGV2ZW50cyBw
bGFubmluZyB0byBpbnZva2UgdGhlIGxpc3RlbmVyIGF0ICdpbmRleCcgdGhhdApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaCBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgK
aW5kZXggOWExOTc1Yy4uYjE1Yjk1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXQuaAorKysgYi9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCkBAIC03Niw5ICs3NiwxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdHlwZWRlZiBWZWN0b3I8RmlyaW5nRXZlbnRJdGVyYXRv
ciwgMT4gRmlyaW5nRXZlbnRJdGVyYXRvclZlY3RvcjsKIAogICAgIHR5cGVkZWYgVmVjdG9yPFJl
Z2lzdGVyZWRFdmVudExpc3RlbmVyLCAxPiBFdmVudExpc3RlbmVyVmVjdG9yOwotICAgIHR5cGVk
ZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIEV2ZW50TGlzdGVuZXJWZWN0b3I+IEV2ZW50TGlzdGVu
ZXJNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgRXZlbnRMaXN0ZW5lclZl
Y3Rvcio+IEV2ZW50TGlzdGVuZXJNYXA7CiAKICAgICBzdHJ1Y3QgRXZlbnRUYXJnZXREYXRhIHsK
KyAgICAgICAgfkV2ZW50VGFyZ2V0RGF0YSgpOworCiAgICAgICAgIEV2ZW50TGlzdGVuZXJNYXAg
ZXZlbnRMaXN0ZW5lck1hcDsKICAgICAgICAgRmlyaW5nRXZlbnRJdGVyYXRvclZlY3RvciBmaXJp
bmdFdmVudEl0ZXJhdG9yczsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCmluZGV4IGY2YzJkNDYuLmM3ZjdmNTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKQEAgLTM4MCw4ICszODAsOCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUobG9uZyBjYWxsSWQsIGxvbmcgbm9kZUlkKQogICAg
IC8vIEdldCB0aGUgbGlzdCBvZiBldmVudCB0eXBlcyB0aGlzIE5vZGUgaXMgY29uY2VybmVkIHdp
dGgKICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBldmVudFR5cGVzOwogICAgIGNvbnN0IEV2ZW50
TGlzdGVuZXJNYXAmIGxpc3RlbmVyTWFwID0gZC0+ZXZlbnRMaXN0ZW5lck1hcDsKLSAgICBIYXNo
TWFwPEF0b21pY1N0cmluZywgRXZlbnRMaXN0ZW5lclZlY3Rvcj46OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IGxpc3RlbmVyTWFwLmVuZCgpOwotICAgIGZvciAoSGFzaE1hcDxBdG9taWNTdHJpbmcsIEV2
ZW50TGlzdGVuZXJWZWN0b3I+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbGlzdGVuZXJNYXAuYmVn
aW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKKyAgICBFdmVudExpc3RlbmVyTWFwOjpjb25zdF9p
dGVyYXRvciBlbmQgPSBsaXN0ZW5lck1hcC5lbmQoKTsKKyAgICBmb3IgKEV2ZW50TGlzdGVuZXJN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBsaXN0ZW5lck1hcC5iZWdpbigpOyBpdGVyICE9IGVu
ZDsgKytpdGVyKQogICAgICAgICBldmVudFR5cGVzLmFwcGVuZChpdGVyLT5maXJzdCk7CiAKICAg
ICAvLyBRdWljayBicmVhayBpZiBubyB1c2VmdWwgbGlzdGVuZXJzCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3Bw
CmluZGV4IDQyNTE3YmQuLjE2NzU5NzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC03NzIsNyAr
NzcyLDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50Ojp0cmFuc2ZlckV2ZW50TGlzdGVuZXJzVG9TaGFk
b3dUcmVlKFNWR0VsZW1lbnRJbnN0YW5jZSogdGFyZ2UKICAgICAgICAgICAgIEV2ZW50TGlzdGVu
ZXJNYXAmIG1hcCA9IGQtPmV2ZW50TGlzdGVuZXJNYXA7CiAgICAgICAgICAgICBFdmVudExpc3Rl
bmVyTWFwOjppdGVyYXRvciBlbmQgPSBtYXAuZW5kKCk7CiAgICAgICAgICAgICBmb3IgKEV2ZW50
TGlzdGVuZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkg
ewotICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXJWZWN0b3ImIGVudHJ5ID0gaXQtPnNlY29u
ZDsKKyAgICAgICAgICAgICAgICBFdmVudExpc3RlbmVyVmVjdG9yJiBlbnRyeSA9ICppdC0+c2Vj
b25kOwogICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gRXZlbnQgbGlzdGVuZXJzIGNyZWF0ZWQg
ZnJvbSBtYXJrdXAgaGF2ZSBhbHJlYWR5IGJlZW4gdHJhbnNmZXJlZCB0byB0aGUgc2hhZG93IHRy
ZWUgZHVyaW5nIGNsb25pbmcuCiAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeVtpXS5saXN0
ZW5lci0+d2FzQ3JlYXRlZEZyb21NYXJrdXAoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42376</attachid>
            <date>2009-11-03 06:46:21 -0800</date>
            <delta_ts>2009-11-03 11:54:24 -0800</delta_ts>
            <desc>patch: proposed fix v2</desc>
            <filename>fix_rehash.patch</filename>
            <type>text/plain</type>
            <size>6983</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDY0MTMxZi4uNTYwYmY1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAwOS0xMS0wMyAgVml0YWx5IFJlcGVz
aGtvICA8dml0YWx5ckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRml4OiBSZWhhc2hpbmcgb2YgRXZlbnRMaXN0ZW5lck1hcCBs
ZWFkcyB0byBsb3NzIG9mIEV2ZW5MaXN0ZW5lckxpc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTAyNworCisgICAgICAgIFRlc3RlZCBieSBuZXcg
ZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXItbWFwLXJlaGFzaC1jcmFzaC5odG1sLgorCisgICAg
ICAgIEV2ZW50TGlzdGVuZXJNYXAgbW9kaWZpZWQgdG8gc3RvcmUgcG9pbnRlcnMgdG8gbGlzdGVu
ZXIgdmVjdG9yczoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRUYXJnZXREYXRhOjp+RXZlbnRUYXJnZXREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJn
ZXQ6OmdldEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0Ojpy
ZW1vdmVBbGxFdmVudExpc3RlbmVycyk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0Lmg6CisK
KyAgICAgICAgVXNhZ2VzIHVwZGF0ZWQgYWZ0ZXIgaW50ZXJmYWNlIGNoYW5nZXM6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUpOgorICAgICAgICAqIHN2
Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnRy
YW5zZmVyRXZlbnRMaXN0ZW5lcnNUb1NoYWRvd1RyZWUpOgorCiAyMDA5LTExLTAyICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2
aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggNjk0ZTc4YS4uYjA2NDg1NCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0LmNwcApAQCAtNjgsNiArNjgsMTEgQEAgYm9vbCBldmVudERpc3BhdGNoRm9yYmlkZGVuKCkK
IH0KICNlbmRpZiAvLyBOREVCVUcKIAorRXZlbnRUYXJnZXREYXRhOjp+RXZlbnRUYXJnZXREYXRh
KCkKK3sKKyAgICBkZWxldGVBbGxWYWx1ZXMoZXZlbnRMaXN0ZW5lck1hcCk7Cit9CisKIEV2ZW50
VGFyZ2V0Ojp+RXZlbnRUYXJnZXQoKQogewogfQpAQCAtMTU3LDE2ICsxNjIsMTkgQEAgYm9vbCBF
dmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgUGFzc1JlZlB0cjxFdmUKIHsKICAgICBFdmVudFRhcmdldERhdGEqIGQgPSBlbnN1cmVFdmVu
dFRhcmdldERhdGEoKTsKIAotICAgIHBhaXI8RXZlbnRMaXN0ZW5lck1hcDo6aXRlcmF0b3IsIGJv
b2w+IHJlc3VsdCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAuYWRkKGV2ZW50VHlwZSwgRXZlbnRMaXN0
ZW5lclZlY3RvcigpKTsKLSAgICBFdmVudExpc3RlbmVyVmVjdG9yJiBlbnRyeSA9IHJlc3VsdC5m
aXJzdC0+c2Vjb25kOworICAgIHBhaXI8RXZlbnRMaXN0ZW5lck1hcDo6aXRlcmF0b3IsIGJvb2w+
IHJlc3VsdCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAuYWRkKGV2ZW50VHlwZSwgMCk7CisgICAgRXZl
bnRMaXN0ZW5lclZlY3RvciomIGVudHJ5ID0gcmVzdWx0LmZpcnN0LT5zZWNvbmQ7CisgICAgY29u
c3QgYm9vbCBpc05ld0VudHJ5ID0gcmVzdWx0LnNlY29uZDsKKyAgICBpZiAoaXNOZXdFbnRyeSkK
KyAgICAgICAgZW50cnkgPSBuZXcgRXZlbnRMaXN0ZW5lclZlY3RvcigpOwogCiAgICAgUmVnaXN0
ZXJlZEV2ZW50TGlzdGVuZXIgcmVnaXN0ZXJlZExpc3RlbmVyKGxpc3RlbmVyLCB1c2VDYXB0dXJl
KTsKLSAgICBpZiAoIXJlc3VsdC5zZWNvbmQpIHsgLy8gcHJlLWV4aXN0aW5nIGVudHJ5Ci0gICAg
ICAgIGlmIChlbnRyeS5maW5kKHJlZ2lzdGVyZWRMaXN0ZW5lcikgIT0gbm90Rm91bmQpIC8vIGR1
cGxpY2F0ZSBsaXN0ZW5lcgorICAgIGlmICghaXNOZXdFbnRyeSkgeworICAgICAgICBpZiAoZW50
cnktPmZpbmQocmVnaXN0ZXJlZExpc3RlbmVyKSAhPSBub3RGb3VuZCkgLy8gZHVwbGljYXRlIGxp
c3RlbmVyCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgZW50cnkuYXBw
ZW5kKHJlZ2lzdGVyZWRMaXN0ZW5lcik7CisgICAgZW50cnktPmFwcGVuZChyZWdpc3RlcmVkTGlz
dGVuZXIpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xNzksMTYgKzE4NywxOCBAQCBib29s
IEV2ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBFdmVudExpc3RlbgogICAgIEV2ZW50TGlzdGVuZXJNYXA6Oml0ZXJhdG9yIHJlc3Vs
dCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAuZmluZChldmVudFR5cGUpOwogICAgIGlmIChyZXN1bHQg
PT0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IEV2ZW50TGlzdGVuZXJWZWN0b3ImIGVudHJ5ID0gcmVzdWx0LT5zZWNvbmQ7CisgICAgRXZlbnRM
aXN0ZW5lclZlY3RvciogZW50cnkgPSByZXN1bHQtPnNlY29uZDsKIAogICAgIFJlZ2lzdGVyZWRF
dmVudExpc3RlbmVyIHJlZ2lzdGVyZWRMaXN0ZW5lcihsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7Ci0g
ICAgc2l6ZV90IGluZGV4ID0gZW50cnkuZmluZChyZWdpc3RlcmVkTGlzdGVuZXIpOworICAgIHNp
emVfdCBpbmRleCA9IGVudHJ5LT5maW5kKHJlZ2lzdGVyZWRMaXN0ZW5lcik7CiAgICAgaWYgKGlu
ZGV4ID09IG5vdEZvdW5kKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBlbnRyeS5yZW1v
dmUoaW5kZXgpOwotICAgIGlmICghZW50cnkuc2l6ZSgpKQorICAgIGVudHJ5LT5yZW1vdmUoaW5k
ZXgpOworICAgIGlmIChlbnRyeS0+aXNFbXB0eSgpKSB7CisgICAgICAgIGRlbGV0ZSBlbnRyeTsK
ICAgICAgICAgZC0+ZXZlbnRMaXN0ZW5lck1hcC5yZW1vdmUocmVzdWx0KTsKKyAgICB9CiAKICAg
ICAvLyBOb3RpZnkgZmlyaW5nIGV2ZW50cyBwbGFubmluZyB0byBpbnZva2UgdGhlIGxpc3RlbmVy
IGF0ICdpbmRleCcgdGhhdAogICAgIC8vIHRoZXkgaGF2ZSBvbmUgbGVzcyBsaXN0ZW5lciB0byBp
bnZva2UuCkBAIC0yNjYsNyArMjc2LDcgQEAgYm9vbCBFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlz
dGVuZXJzKEV2ZW50KiBldmVudCkKICAgICBFdmVudExpc3RlbmVyTWFwOjppdGVyYXRvciByZXN1
bHQgPSBkLT5ldmVudExpc3RlbmVyTWFwLmZpbmQoZXZlbnQtPnR5cGUoKSk7CiAgICAgaWYgKHJl
c3VsdCA9PSBkLT5ldmVudExpc3RlbmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgRXZlbnRMaXN0ZW5lclZlY3RvciYgZW50cnkgPSByZXN1bHQtPnNlY29uZDsKKyAgICBF
dmVudExpc3RlbmVyVmVjdG9yJiBlbnRyeSA9ICpyZXN1bHQtPnNlY29uZDsKIAogICAgIFJlZlB0
cjxFdmVudFRhcmdldD4gcHJvdGVjdCA9IHRoaXM7CiAKQEAgLTMwMyw3ICszMTMsNyBAQCBjb25z
dCBFdmVudExpc3RlbmVyVmVjdG9yJiBFdmVudFRhcmdldDo6Z2V0RXZlbnRMaXN0ZW5lcnMoY29u
c3QgQXRvbWljU3RyaW5nJiBldgogICAgIEV2ZW50TGlzdGVuZXJNYXA6Oml0ZXJhdG9yIGl0ID0g
ZC0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50VHlwZSk7CiAgICAgaWYgKGl0ID09IGQtPmV2
ZW50TGlzdGVuZXJNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBlbXB0eVZlY3RvcjsKLSAgICBy
ZXR1cm4gaXQtPnNlY29uZDsKKyAgICByZXR1cm4gKml0LT5zZWNvbmQ7CiB9CiAKIHZvaWQgRXZl
bnRUYXJnZXQ6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkKQEAgLTMxMSw2ICszMjEsNyBAQCB2
b2lkIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAgICAgRXZlbnRUYXJn
ZXREYXRhKiBkID0gZXZlbnRUYXJnZXREYXRhKCk7CiAgICAgaWYgKCFkKQogICAgICAgICByZXR1
cm47CisgICAgZGVsZXRlQWxsVmFsdWVzKGQtPmV2ZW50TGlzdGVuZXJNYXApOwogICAgIGQtPmV2
ZW50TGlzdGVuZXJNYXAuY2xlYXIoKTsKIAogICAgIC8vIE5vdGlmeSBmaXJpbmcgZXZlbnRzIHBs
YW5uaW5nIHRvIGludm9rZSB0aGUgbGlzdGVuZXIgYXQgJ2luZGV4JyB0aGF0CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oIGIvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApp
bmRleCA5YTE5NzVjLi5iMTViOTViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dC5oCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKQEAgLTc2LDkgKzc2LDExIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICB0eXBlZGVmIFZlY3RvcjxGaXJpbmdFdmVudEl0ZXJhdG9y
LCAxPiBGaXJpbmdFdmVudEl0ZXJhdG9yVmVjdG9yOwogCiAgICAgdHlwZWRlZiBWZWN0b3I8UmVn
aXN0ZXJlZEV2ZW50TGlzdGVuZXIsIDE+IEV2ZW50TGlzdGVuZXJWZWN0b3I7Ci0gICAgdHlwZWRl
ZiBIYXNoTWFwPEF0b21pY1N0cmluZywgRXZlbnRMaXN0ZW5lclZlY3Rvcj4gRXZlbnRMaXN0ZW5l
ck1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBFdmVudExpc3RlbmVyVmVj
dG9yKj4gRXZlbnRMaXN0ZW5lck1hcDsKIAogICAgIHN0cnVjdCBFdmVudFRhcmdldERhdGEgewor
ICAgICAgICB+RXZlbnRUYXJnZXREYXRhKCk7CisKICAgICAgICAgRXZlbnRMaXN0ZW5lck1hcCBl
dmVudExpc3RlbmVyTWFwOwogICAgICAgICBGaXJpbmdFdmVudEl0ZXJhdG9yVmVjdG9yIGZpcmlu
Z0V2ZW50SXRlcmF0b3JzOwogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKaW5kZXggZjZjMmQ0Ni4uYzdmN2Y1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcApAQCAtMzgwLDggKzM4MCw4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6
OmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpCiAgICAg
Ly8gR2V0IHRoZSBsaXN0IG9mIGV2ZW50IHR5cGVzIHRoaXMgTm9kZSBpcyBjb25jZXJuZWQgd2l0
aAogICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IGV2ZW50VHlwZXM7CiAgICAgY29uc3QgRXZlbnRM
aXN0ZW5lck1hcCYgbGlzdGVuZXJNYXAgPSBkLT5ldmVudExpc3RlbmVyTWFwOwotICAgIEhhc2hN
YXA8QXRvbWljU3RyaW5nLCBFdmVudExpc3RlbmVyVmVjdG9yPjo6Y29uc3RfaXRlcmF0b3IgZW5k
ID0gbGlzdGVuZXJNYXAuZW5kKCk7Ci0gICAgZm9yIChIYXNoTWFwPEF0b21pY1N0cmluZywgRXZl
bnRMaXN0ZW5lclZlY3Rvcj46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBsaXN0ZW5lck1hcC5iZWdp
bigpOyBpdGVyICE9IGVuZDsgKytpdGVyKQorICAgIEV2ZW50TGlzdGVuZXJNYXA6OmNvbnN0X2l0
ZXJhdG9yIGVuZCA9IGxpc3RlbmVyTWFwLmVuZCgpOworICAgIGZvciAoRXZlbnRMaXN0ZW5lck1h
cDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGxpc3RlbmVyTWFwLmJlZ2luKCk7IGl0ZXIgIT0gZW5k
OyArK2l0ZXIpCiAgICAgICAgIGV2ZW50VHlwZXMuYXBwZW5kKGl0ZXItPmZpcnN0KTsKIAogICAg
IC8vIFF1aWNrIGJyZWFrIGlmIG5vIHVzZWZ1bCBsaXN0ZW5lcnMKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAK
aW5kZXggNDI1MTdiZC4uMTY3NTk3NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTc3Miw3ICs3
NzIsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnRyYW5zZmVyRXZlbnRMaXN0ZW5lcnNUb1NoYWRv
d1RyZWUoU1ZHRWxlbWVudEluc3RhbmNlKiB0YXJnZQogICAgICAgICAgICAgRXZlbnRMaXN0ZW5l
ck1hcCYgbWFwID0gZC0+ZXZlbnRMaXN0ZW5lck1hcDsKICAgICAgICAgICAgIEV2ZW50TGlzdGVu
ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKICAgICAgICAgICAgIGZvciAoRXZlbnRM
aXN0ZW5lck1hcDo6aXRlcmF0b3IgaXQgPSBtYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7
Ci0gICAgICAgICAgICAgICAgRXZlbnRMaXN0ZW5lclZlY3RvciYgZW50cnkgPSBpdC0+c2Vjb25k
OworICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXJWZWN0b3ImIGVudHJ5ID0gKml0LT5zZWNv
bmQ7CiAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5zaXplKCk7
ICsraSkgewogICAgICAgICAgICAgICAgICAgICAvLyBFdmVudCBsaXN0ZW5lcnMgY3JlYXRlZCBm
cm9tIG1hcmt1cCBoYXZlIGFscmVhZHkgYmVlbiB0cmFuc2ZlcmVkIHRvIHRoZSBzaGFkb3cgdHJl
ZSBkdXJpbmcgY2xvbmluZy4KICAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5W2ldLmxpc3Rl
bmVyLT53YXNDcmVhdGVkRnJvbU1hcmt1cCgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42402</attachid>
            <date>2009-11-03 11:54:24 -0800</date>
            <delta_ts>2009-11-04 22:00:28 -0800</delta_ts>
            <desc>patch: proposed fix v3 (now includes the test)</desc>
            <filename>fix_rehash.patch</filename>
            <type>text/plain</type>
            <size>9186</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZThmZTAyLi40ZTE0M2UwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMTEt
MDIgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWhhc2hpbmcgb2YgRXZlbnRM
aXN0ZW5lck1hcCBsZWFkcyB0byBhIGRhbmdsaW5nIHJlZmVyZW5jZSB0byB0aGUgbGlzdGVuZXIg
bGlzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMx
MDI3CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9ldmVudC1saXN0ZW5lci1tYXAtcmVoYXNoLWNy
YXNoLmh0bWw6IEFkZGVkLgorCiAyMDA5LTExLTAzICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUHV0IHRlc3QgaW50byBza2lwbGlzdCBhZGRlZCBpbiBy
NTA0MTEgYmVjYXVzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQt
bGlzdGVuZXItbWFwLXJlaGFzaC1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9ldmVudC1saXN0ZW5lci1tYXAtcmVoYXNoLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjUzYmEzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXItbWFwLXJlaGFzaC1jcmFz
aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitFbnN1cmVzIHRoYXQgcmVoYXNoaW5nIG9m
IGV2ZW50cyBtYXAgZG9lc24ndCBsZWF2ZSB1cyB3aXRoIGEgZGFuZ2xpbmcgZXZlbnQgbGlzdCBy
ZWZlcmVuY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIERpZCBub3Qg
Y3Jhc2guCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LWxpc3RlbmVyLW1hcC1y
ZWhhc2gtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LWxpc3RlbmVy
LW1hcC1yZWhhc2gtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li40ZTgxZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZl
bnQtbGlzdGVuZXItbWFwLXJlaGFzaC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gc3R1YigpIHt9CisKKyAg
ICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDsgKytpKQorICAgICAgICAg
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYm9vbSIgKyBpLCBzdHViLCBmYWxzZSk7Cisg
ICAgfSwgZmFsc2UpOworCisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVu
dExvYWRlZCIsIHN0dWIpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkVuc3VyZXMg
dGhhdCByZWhhc2hpbmcgb2YgZXZlbnRzIG1hcCBkb2Vzbid0IGxlYXZlIHVzIHdpdGggYSBkYW5n
bGluZyBldmVudCBsaXN0IHJlZmVyZW5jZS4iKTsKKyAgICB0ZXN0UGFzc2VkKCJEaWQgbm90IGNy
YXNoLiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ2NDEzMWYuLjU2MGJmNTMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMDktMTEtMDMgIFZpdGFseSBSZXBlc2hrbyAgPHZpdGFseXJAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZpeDogUmVoYXNoaW5nIG9mIEV2ZW50TGlzdGVuZXJNYXAgbGVhZHMgdG8gbG9zcyBvZiBFdmVu
TGlzdGVuZXJMaXN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzEwMjcKKworICAgICAgICBUZXN0ZWQgYnkgbmV3IGZhc3QvZXZlbnRzL2V2ZW50LWxp
c3RlbmVyLW1hcC1yZWhhc2gtY3Jhc2guaHRtbC4KKworICAgICAgICBFdmVudExpc3RlbmVyTWFw
IG1vZGlmaWVkIHRvIHN0b3JlIHBvaW50ZXJzIHRvIGxpc3RlbmVyIHZlY3RvcnM6CisgICAgICAg
ICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0RGF0
YTo6fkV2ZW50VGFyZ2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6YWRk
RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6cmVtb3ZlRXZl
bnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlz
dGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpnZXRFdmVudExpc3RlbmVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5l
cnMpOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5oOgorCisgICAgICAgIFVzYWdlcyB1cGRh
dGVkIGFmdGVyIGludGVyZmFjZSBjaGFuZ2VzOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6Z2V0
RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKToKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojp0cmFuc2ZlckV2ZW50TGlzdGVuZXJz
VG9TaGFkb3dUcmVlKToKKwogMjAwOS0xMS0wMiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQu
Y3BwCmluZGV4IDY5NGU3OGEuLmIwNjQ4NTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0LmNwcAorKysgYi9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTY4LDYgKzY4
LDExIEBAIGJvb2wgZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpCiB9CiAjZW5kaWYgLy8gTkRFQlVH
CiAKK0V2ZW50VGFyZ2V0RGF0YTo6fkV2ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgZGVsZXRlQWxs
VmFsdWVzKGV2ZW50TGlzdGVuZXJNYXApOworfQorCiBFdmVudFRhcmdldDo6fkV2ZW50VGFyZ2V0
KCkKIHsKIH0KQEAgLTE1NywxNiArMTYyLDE5IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OmFkZEV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlCiB7
CiAgICAgRXZlbnRUYXJnZXREYXRhKiBkID0gZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CiAKLSAg
ICBwYWlyPEV2ZW50TGlzdGVuZXJNYXA6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBkLT5ldmVu
dExpc3RlbmVyTWFwLmFkZChldmVudFR5cGUsIEV2ZW50TGlzdGVuZXJWZWN0b3IoKSk7Ci0gICAg
RXZlbnRMaXN0ZW5lclZlY3RvciYgZW50cnkgPSByZXN1bHQuZmlyc3QtPnNlY29uZDsKKyAgICBw
YWlyPEV2ZW50TGlzdGVuZXJNYXA6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBkLT5ldmVudExp
c3RlbmVyTWFwLmFkZChldmVudFR5cGUsIDApOworICAgIEV2ZW50TGlzdGVuZXJWZWN0b3IqJiBl
bnRyeSA9IHJlc3VsdC5maXJzdC0+c2Vjb25kOworICAgIGNvbnN0IGJvb2wgaXNOZXdFbnRyeSA9
IHJlc3VsdC5zZWNvbmQ7CisgICAgaWYgKGlzTmV3RW50cnkpCisgICAgICAgIGVudHJ5ID0gbmV3
IEV2ZW50TGlzdGVuZXJWZWN0b3IoKTsKIAogICAgIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyIHJl
Z2lzdGVyZWRMaXN0ZW5lcihsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7Ci0gICAgaWYgKCFyZXN1bHQu
c2Vjb25kKSB7IC8vIHByZS1leGlzdGluZyBlbnRyeQotICAgICAgICBpZiAoZW50cnkuZmluZChy
ZWdpc3RlcmVkTGlzdGVuZXIpICE9IG5vdEZvdW5kKSAvLyBkdXBsaWNhdGUgbGlzdGVuZXIKKyAg
ICBpZiAoIWlzTmV3RW50cnkpIHsKKyAgICAgICAgaWYgKGVudHJ5LT5maW5kKHJlZ2lzdGVyZWRM
aXN0ZW5lcikgIT0gbm90Rm91bmQpIC8vIGR1cGxpY2F0ZSBsaXN0ZW5lcgogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGVudHJ5LmFwcGVuZChyZWdpc3RlcmVkTGlzdGVu
ZXIpOworICAgIGVudHJ5LT5hcHBlbmQocmVnaXN0ZXJlZExpc3RlbmVyKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApAQCAtMTc5LDE2ICsxODcsMTggQEAgYm9vbCBFdmVudFRhcmdldDo6cmVtb3Zl
RXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW4K
ICAgICBFdmVudExpc3RlbmVyTWFwOjppdGVyYXRvciByZXN1bHQgPSBkLT5ldmVudExpc3RlbmVy
TWFwLmZpbmQoZXZlbnRUeXBlKTsKICAgICBpZiAocmVzdWx0ID09IGQtPmV2ZW50TGlzdGVuZXJN
YXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBFdmVudExpc3RlbmVyVmVjdG9y
JiBlbnRyeSA9IHJlc3VsdC0+c2Vjb25kOworICAgIEV2ZW50TGlzdGVuZXJWZWN0b3IqIGVudHJ5
ID0gcmVzdWx0LT5zZWNvbmQ7CiAKICAgICBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciByZWdpc3Rl
cmVkTGlzdGVuZXIobGlzdGVuZXIsIHVzZUNhcHR1cmUpOwotICAgIHNpemVfdCBpbmRleCA9IGVu
dHJ5LmZpbmQocmVnaXN0ZXJlZExpc3RlbmVyKTsKKyAgICBzaXplX3QgaW5kZXggPSBlbnRyeS0+
ZmluZChyZWdpc3RlcmVkTGlzdGVuZXIpOwogICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZW50cnkucmVtb3ZlKGluZGV4KTsKLSAgICBpZiAo
IWVudHJ5LnNpemUoKSkKKyAgICBlbnRyeS0+cmVtb3ZlKGluZGV4KTsKKyAgICBpZiAoZW50cnkt
PmlzRW1wdHkoKSkgeworICAgICAgICBkZWxldGUgZW50cnk7CiAgICAgICAgIGQtPmV2ZW50TGlz
dGVuZXJNYXAucmVtb3ZlKHJlc3VsdCk7CisgICAgfQogCiAgICAgLy8gTm90aWZ5IGZpcmluZyBl
dmVudHMgcGxhbm5pbmcgdG8gaW52b2tlIHRoZSBsaXN0ZW5lciBhdCAnaW5kZXgnIHRoYXQKICAg
ICAvLyB0aGV5IGhhdmUgb25lIGxlc3MgbGlzdGVuZXIgdG8gaW52b2tlLgpAQCAtMjY2LDcgKzI3
Niw3IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3RlbmVycyhFdmVudCogZXZlbnQp
CiAgICAgRXZlbnRMaXN0ZW5lck1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZC0+ZXZlbnRMaXN0ZW5l
ck1hcC5maW5kKGV2ZW50LT50eXBlKCkpOwogICAgIGlmIChyZXN1bHQgPT0gZC0+ZXZlbnRMaXN0
ZW5lck1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIEV2ZW50TGlzdGVuZXJW
ZWN0b3ImIGVudHJ5ID0gcmVzdWx0LT5zZWNvbmQ7CisgICAgRXZlbnRMaXN0ZW5lclZlY3RvciYg
ZW50cnkgPSAqcmVzdWx0LT5zZWNvbmQ7CiAKICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IHByb3Rl
Y3QgPSB0aGlzOwogCkBAIC0zMDMsNyArMzEzLDcgQEAgY29uc3QgRXZlbnRMaXN0ZW5lclZlY3Rv
ciYgRXZlbnRUYXJnZXQ6OmdldEV2ZW50TGlzdGVuZXJzKGNvbnN0IEF0b21pY1N0cmluZyYgZXYK
ICAgICBFdmVudExpc3RlbmVyTWFwOjppdGVyYXRvciBpdCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAu
ZmluZChldmVudFR5cGUpOwogICAgIGlmIChpdCA9PSBkLT5ldmVudExpc3RlbmVyTWFwLmVuZCgp
KQogICAgICAgICByZXR1cm4gZW1wdHlWZWN0b3I7Ci0gICAgcmV0dXJuIGl0LT5zZWNvbmQ7Cisg
ICAgcmV0dXJuICppdC0+c2Vjb25kOwogfQogCiB2b2lkIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxF
dmVudExpc3RlbmVycygpCkBAIC0zMTEsNiArMzIxLDcgQEAgdm9pZCBFdmVudFRhcmdldDo6cmVt
b3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIEV2ZW50VGFyZ2V0RGF0YSogZCA9IGV2ZW50VGFy
Z2V0RGF0YSgpOwogICAgIGlmICghZCkKICAgICAgICAgcmV0dXJuOworICAgIGRlbGV0ZUFsbFZh
bHVlcyhkLT5ldmVudExpc3RlbmVyTWFwKTsKICAgICBkLT5ldmVudExpc3RlbmVyTWFwLmNsZWFy
KCk7CiAKICAgICAvLyBOb3RpZnkgZmlyaW5nIGV2ZW50cyBwbGFubmluZyB0byBpbnZva2UgdGhl
IGxpc3RlbmVyIGF0ICdpbmRleCcgdGhhdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXQuaCBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKaW5kZXggOWExOTc1Yy4uYjE1Yjk1
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysgYi9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5oCkBAIC03Niw5ICs3NiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgdHlwZWRlZiBWZWN0b3I8RmlyaW5nRXZlbnRJdGVyYXRvciwgMT4gRmlyaW5nRXZlbnRJdGVy
YXRvclZlY3RvcjsKIAogICAgIHR5cGVkZWYgVmVjdG9yPFJlZ2lzdGVyZWRFdmVudExpc3RlbmVy
LCAxPiBFdmVudExpc3RlbmVyVmVjdG9yOwotICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJp
bmcsIEV2ZW50TGlzdGVuZXJWZWN0b3I+IEV2ZW50TGlzdGVuZXJNYXA7CisgICAgdHlwZWRlZiBI
YXNoTWFwPEF0b21pY1N0cmluZywgRXZlbnRMaXN0ZW5lclZlY3Rvcio+IEV2ZW50TGlzdGVuZXJN
YXA7CiAKICAgICBzdHJ1Y3QgRXZlbnRUYXJnZXREYXRhIHsKKyAgICAgICAgfkV2ZW50VGFyZ2V0
RGF0YSgpOworCiAgICAgICAgIEV2ZW50TGlzdGVuZXJNYXAgZXZlbnRMaXN0ZW5lck1hcDsKICAg
ICAgICAgRmlyaW5nRXZlbnRJdGVyYXRvclZlY3RvciBmaXJpbmdFdmVudEl0ZXJhdG9yczsKICAg
ICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3Bw
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGY2YzJkNDYu
LmM3ZjdmNTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTM4
MCw4ICszODAsOCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zv
ck5vZGUobG9uZyBjYWxsSWQsIGxvbmcgbm9kZUlkKQogICAgIC8vIEdldCB0aGUgbGlzdCBvZiBl
dmVudCB0eXBlcyB0aGlzIE5vZGUgaXMgY29uY2VybmVkIHdpdGgKICAgICBWZWN0b3I8QXRvbWlj
U3RyaW5nPiBldmVudFR5cGVzOwogICAgIGNvbnN0IEV2ZW50TGlzdGVuZXJNYXAmIGxpc3RlbmVy
TWFwID0gZC0+ZXZlbnRMaXN0ZW5lck1hcDsKLSAgICBIYXNoTWFwPEF0b21pY1N0cmluZywgRXZl
bnRMaXN0ZW5lclZlY3Rvcj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGxpc3RlbmVyTWFwLmVuZCgp
OwotICAgIGZvciAoSGFzaE1hcDxBdG9taWNTdHJpbmcsIEV2ZW50TGlzdGVuZXJWZWN0b3I+Ojpj
b25zdF9pdGVyYXRvciBpdGVyID0gbGlzdGVuZXJNYXAuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsr
aXRlcikKKyAgICBFdmVudExpc3RlbmVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBsaXN0ZW5l
ck1hcC5lbmQoKTsKKyAgICBmb3IgKEV2ZW50TGlzdGVuZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0
ZXIgPSBsaXN0ZW5lck1hcC5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKQogICAgICAgICBl
dmVudFR5cGVzLmFwcGVuZChpdGVyLT5maXJzdCk7CiAKICAgICAvLyBRdWljayBicmVhayBpZiBu
byB1c2VmdWwgbGlzdGVuZXJzCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDQyNTE3YmQuLjE2NzU5
NzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC03NzIsNyArNzcyLDcgQEAgdm9pZCBTVkdVc2VF
bGVtZW50Ojp0cmFuc2ZlckV2ZW50TGlzdGVuZXJzVG9TaGFkb3dUcmVlKFNWR0VsZW1lbnRJbnN0
YW5jZSogdGFyZ2UKICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXJNYXAmIG1hcCA9IGQtPmV2ZW50
TGlzdGVuZXJNYXA7CiAgICAgICAgICAgICBFdmVudExpc3RlbmVyTWFwOjppdGVyYXRvciBlbmQg
PSBtYXAuZW5kKCk7CiAgICAgICAgICAgICBmb3IgKEV2ZW50TGlzdGVuZXJNYXA6Oml0ZXJhdG9y
IGl0ID0gbWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICAgICAgICAgIEV2
ZW50TGlzdGVuZXJWZWN0b3ImIGVudHJ5ID0gaXQtPnNlY29uZDsKKyAgICAgICAgICAgICAgICBF
dmVudExpc3RlbmVyVmVjdG9yJiBlbnRyeSA9ICppdC0+c2Vjb25kOwogICAgICAgICAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAg
ICAgICAgICAgLy8gRXZlbnQgbGlzdGVuZXJzIGNyZWF0ZWQgZnJvbSBtYXJrdXAgaGF2ZSBhbHJl
YWR5IGJlZW4gdHJhbnNmZXJlZCB0byB0aGUgc2hhZG93IHRyZWUgZHVyaW5nIGNsb25pbmcuCiAg
ICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeVtpXS5saXN0ZW5lci0+d2FzQ3JlYXRlZEZyb21N
YXJrdXAoKSkK
</data>
<flag name="review"
          id="23928"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42546</attachid>
            <date>2009-11-04 22:00:28 -0800</date>
            <delta_ts>2009-11-05 11:51:40 -0800</delta_ts>
            <desc>patch: proposed fix v4</desc>
            <filename>fix_rehash.patch</filename>
            <type>text/plain</type>
            <size>9178</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZThmZTAyLi45ZTZlZmJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMTEt
MDIgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDUkFTSDogUmVoYXNoaW5nIG9m
IEV2ZW50TGlzdGVuZXJNYXAgbGVhZHMgdG8gbG9zcyBvZiBFdmVuTGlzdGVuZXJMaXN0LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwMjcKKworICAg
ICAgICAqIGZhc3QvZXZlbnRzL2V2ZW50LWxpc3RlbmVyLW1hcC1yZWhhc2gtY3Jhc2guaHRtbDog
QWRkZWQuCisKIDIwMDktMTEtMDMgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBQdXQgdGVzdCBpbnRvIHNraXBsaXN0IGFkZGVkIGluIHI1MDQxMSBiZWNh
dXNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9ldmVudC1saXN0ZW5lci1t
YXAtcmVoYXNoLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2
ZW50LWxpc3RlbmVyLW1hcC1yZWhhc2gtY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNTNiYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9ldmVudC1saXN0ZW5lci1tYXAtcmVoYXNoLWNyYXNoLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkgQEAKK0Vuc3VyZXMgdGhhdCByZWhhc2hpbmcgb2YgZXZlbnRzIG1h
cCBkb2Vzbid0IGxlYXZlIHVzIHdpdGggYSBkYW5nbGluZyBldmVudCBsaXN0IHJlZmVyZW5jZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgRGlkIG5vdCBjcmFzaC4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXItbWFwLXJlaGFzaC1jcmFz
aC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXItbWFwLXJlaGFz
aC1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlODFlMTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9ldmVudC1saXN0ZW5l
ci1tYXAtcmVoYXNoLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBzdHViKCkge30KKworICAgIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDUwOyArK2kpCisgICAgICAgICAgICBkb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCJib29tIiArIGksIHN0dWIsIGZhbHNlKTsKKyAgICB9LCBmYWxz
ZSk7CisKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwg
c3R1Yik7CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiRW5zdXJlcyB0aGF0IHJlaGFz
aGluZyBvZiBldmVudHMgbWFwIGRvZXNuJ3QgbGVhdmUgdXMgd2l0aCBhIGRhbmdsaW5nIGV2ZW50
IGxpc3QgcmVmZXJlbmNlLiIpOworICAgIHRlc3RQYXNzZWQoIkRpZCBub3QgY3Jhc2guIik7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY0MTMxZi4uNTgxMmI4YyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBA
QAorMjAwOS0xMS0wMyAgVml0YWx5IFJlcGVzaGtvICA8dml0YWx5ckBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ1JBU0g6IFJl
aGFzaGluZyBvZiBFdmVudExpc3RlbmVyTWFwIGxlYWRzIHRvIGxvc3Mgb2YgRXZlbkxpc3RlbmVy
TGlzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMx
MDI3CisKKyAgICAgICAgVGVzdGVkIGJ5IG5ldyBmYXN0L2V2ZW50cy9ldmVudC1saXN0ZW5lci1t
YXAtcmVoYXNoLWNyYXNoLmh0bWwuCisKKyAgICAgICAgRXZlbnRMaXN0ZW5lck1hcCBtb2RpZmll
ZCB0byBzdG9yZSBwb2ludGVycyB0byBsaXN0ZW5lciB2ZWN0b3JzOgorICAgICAgICAqIGRvbS9F
dmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldERhdGE6On5FdmVu
dFRhcmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OmFkZEV2ZW50TGlz
dGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnJlbW92ZUV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3RlbmVycyk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6Z2V0RXZlbnRMaXN0ZW5lcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAg
ICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaDoKKworICAgICAgICBVc2FnZXMgdXBkYXRlZCBhZnRl
ciBpbnRlcmZhY2UgY2hhbmdlczoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmdldEV2ZW50TGlz
dGVuZXJzRm9yTm9kZSk6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6dHJhbnNmZXJFdmVudExpc3RlbmVyc1RvU2hhZG93
VHJlZSk6CisKIDIwMDktMTEtMDIgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRl
eCA2OTRlNzhhLi5iMDY0ODU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5j
cHAKKysrIGIvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC02OCw2ICs2OCwxMSBAQCBi
b29sIGV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKQogfQogI2VuZGlmIC8vIE5ERUJVRwogCitFdmVu
dFRhcmdldERhdGE6On5FdmVudFRhcmdldERhdGEoKQoreworICAgIGRlbGV0ZUFsbFZhbHVlcyhl
dmVudExpc3RlbmVyTWFwKTsKK30KKwogRXZlbnRUYXJnZXQ6On5FdmVudFRhcmdldCgpCiB7CiB9
CkBAIC0xNTcsMTYgKzE2MiwxOSBAQCBib29sIEV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3RlbmVy
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZQogewogICAgIEV2
ZW50VGFyZ2V0RGF0YSogZCA9IGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwogCi0gICAgcGFpcjxF
dmVudExpc3RlbmVyTWFwOjppdGVyYXRvciwgYm9vbD4gcmVzdWx0ID0gZC0+ZXZlbnRMaXN0ZW5l
ck1hcC5hZGQoZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyVmVjdG9yKCkpOwotICAgIEV2ZW50TGlz
dGVuZXJWZWN0b3ImIGVudHJ5ID0gcmVzdWx0LmZpcnN0LT5zZWNvbmQ7CisgICAgcGFpcjxFdmVu
dExpc3RlbmVyTWFwOjppdGVyYXRvciwgYm9vbD4gcmVzdWx0ID0gZC0+ZXZlbnRMaXN0ZW5lck1h
cC5hZGQoZXZlbnRUeXBlLCAwKTsKKyAgICBFdmVudExpc3RlbmVyVmVjdG9yKiYgZW50cnkgPSBy
ZXN1bHQuZmlyc3QtPnNlY29uZDsKKyAgICBjb25zdCBib29sIGlzTmV3RW50cnkgPSByZXN1bHQu
c2Vjb25kOworICAgIGlmIChpc05ld0VudHJ5KQorICAgICAgICBlbnRyeSA9IG5ldyBFdmVudExp
c3RlbmVyVmVjdG9yKCk7CiAKICAgICBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciByZWdpc3RlcmVk
TGlzdGVuZXIobGlzdGVuZXIsIHVzZUNhcHR1cmUpOwotICAgIGlmICghcmVzdWx0LnNlY29uZCkg
eyAvLyBwcmUtZXhpc3RpbmcgZW50cnkKLSAgICAgICAgaWYgKGVudHJ5LmZpbmQocmVnaXN0ZXJl
ZExpc3RlbmVyKSAhPSBub3RGb3VuZCkgLy8gZHVwbGljYXRlIGxpc3RlbmVyCisgICAgaWYgKCFp
c05ld0VudHJ5KSB7CisgICAgICAgIGlmIChlbnRyeS0+ZmluZChyZWdpc3RlcmVkTGlzdGVuZXIp
ICE9IG5vdEZvdW5kKSAvLyBkdXBsaWNhdGUgbGlzdGVuZXIKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKLSAgICBlbnRyeS5hcHBlbmQocmVnaXN0ZXJlZExpc3RlbmVyKTsKKyAg
ICBlbnRyeS0+YXBwZW5kKHJlZ2lzdGVyZWRMaXN0ZW5lcik7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKQEAgLTE3OSwxNiArMTg3LDE4IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OnJlbW92ZUV2ZW50TGlz
dGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuCiAgICAgRXZl
bnRMaXN0ZW5lck1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5maW5k
KGV2ZW50VHlwZSk7CiAgICAgaWYgKHJlc3VsdCA9PSBkLT5ldmVudExpc3RlbmVyTWFwLmVuZCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgRXZlbnRMaXN0ZW5lclZlY3RvciYgZW50cnkg
PSByZXN1bHQtPnNlY29uZDsKKyAgICBFdmVudExpc3RlbmVyVmVjdG9yKiBlbnRyeSA9IHJlc3Vs
dC0+c2Vjb25kOwogCiAgICAgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIgcmVnaXN0ZXJlZExpc3Rl
bmVyKGxpc3RlbmVyLCB1c2VDYXB0dXJlKTsKLSAgICBzaXplX3QgaW5kZXggPSBlbnRyeS5maW5k
KHJlZ2lzdGVyZWRMaXN0ZW5lcik7CisgICAgc2l6ZV90IGluZGV4ID0gZW50cnktPmZpbmQocmVn
aXN0ZXJlZExpc3RlbmVyKTsKICAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGVudHJ5LnJlbW92ZShpbmRleCk7Ci0gICAgaWYgKCFlbnRyeS5z
aXplKCkpCisgICAgZW50cnktPnJlbW92ZShpbmRleCk7CisgICAgaWYgKGVudHJ5LT5pc0VtcHR5
KCkpIHsKKyAgICAgICAgZGVsZXRlIGVudHJ5OwogICAgICAgICBkLT5ldmVudExpc3RlbmVyTWFw
LnJlbW92ZShyZXN1bHQpOworICAgIH0KIAogICAgIC8vIE5vdGlmeSBmaXJpbmcgZXZlbnRzIHBs
YW5uaW5nIHRvIGludm9rZSB0aGUgbGlzdGVuZXIgYXQgJ2luZGV4JyB0aGF0CiAgICAgLy8gdGhl
eSBoYXZlIG9uZSBsZXNzIGxpc3RlbmVyIHRvIGludm9rZS4KQEAgLTI2Niw3ICsyNzYsNyBAQCBi
b29sIEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQqIGV2ZW50KQogICAgIEV2
ZW50TGlzdGVuZXJNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAuZmlu
ZChldmVudC0+dHlwZSgpKTsKICAgICBpZiAocmVzdWx0ID09IGQtPmV2ZW50TGlzdGVuZXJNYXAu
ZW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBFdmVudExpc3RlbmVyVmVjdG9yJiBl
bnRyeSA9IHJlc3VsdC0+c2Vjb25kOworICAgIEV2ZW50TGlzdGVuZXJWZWN0b3ImIGVudHJ5ID0g
KnJlc3VsdC0+c2Vjb25kOwogCiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBwcm90ZWN0ID0gdGhp
czsKIApAQCAtMzAzLDcgKzMxMyw3IEBAIGNvbnN0IEV2ZW50TGlzdGVuZXJWZWN0b3ImIEV2ZW50
VGFyZ2V0OjpnZXRFdmVudExpc3RlbmVycyhjb25zdCBBdG9taWNTdHJpbmcmIGV2CiAgICAgRXZl
bnRMaXN0ZW5lck1hcDo6aXRlcmF0b3IgaXQgPSBkLT5ldmVudExpc3RlbmVyTWFwLmZpbmQoZXZl
bnRUeXBlKTsKICAgICBpZiAoaXQgPT0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5lbmQoKSkKICAgICAg
ICAgcmV0dXJuIGVtcHR5VmVjdG9yOwotICAgIHJldHVybiBpdC0+c2Vjb25kOworICAgIHJldHVy
biAqaXQtPnNlY29uZDsKIH0KIAogdm9pZCBFdmVudFRhcmdldDo6cmVtb3ZlQWxsRXZlbnRMaXN0
ZW5lcnMoKQpAQCAtMzExLDYgKzMyMSw3IEBAIHZvaWQgRXZlbnRUYXJnZXQ6OnJlbW92ZUFsbEV2
ZW50TGlzdGVuZXJzKCkKICAgICBFdmVudFRhcmdldERhdGEqIGQgPSBldmVudFRhcmdldERhdGEo
KTsKICAgICBpZiAoIWQpCiAgICAgICAgIHJldHVybjsKKyAgICBkZWxldGVBbGxWYWx1ZXMoZC0+
ZXZlbnRMaXN0ZW5lck1hcCk7CiAgICAgZC0+ZXZlbnRMaXN0ZW5lck1hcC5jbGVhcigpOwogCiAg
ICAgLy8gTm90aWZ5IGZpcmluZyBldmVudHMgcGxhbm5pbmcgdG8gaW52b2tlIHRoZSBsaXN0ZW5l
ciBhdCAnaW5kZXgnIHRoYXQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Lmgg
Yi9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCmluZGV4IDlhMTk3NWMuLmIxNWI5NWIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKKysrIGIvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXQuaApAQCAtNzYsOSArNzYsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHR5cGVk
ZWYgVmVjdG9yPEZpcmluZ0V2ZW50SXRlcmF0b3IsIDE+IEZpcmluZ0V2ZW50SXRlcmF0b3JWZWN0
b3I7CiAKICAgICB0eXBlZGVmIFZlY3RvcjxSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciwgMT4gRXZl
bnRMaXN0ZW5lclZlY3RvcjsKLSAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBFdmVu
dExpc3RlbmVyVmVjdG9yPiBFdmVudExpc3RlbmVyTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxB
dG9taWNTdHJpbmcsIEV2ZW50TGlzdGVuZXJWZWN0b3IqPiBFdmVudExpc3RlbmVyTWFwOwogCiAg
ICAgc3RydWN0IEV2ZW50VGFyZ2V0RGF0YSB7CisgICAgICAgIH5FdmVudFRhcmdldERhdGEoKTsK
KwogICAgICAgICBFdmVudExpc3RlbmVyTWFwIGV2ZW50TGlzdGVuZXJNYXA7CiAgICAgICAgIEZp
cmluZ0V2ZW50SXRlcmF0b3JWZWN0b3IgZmlyaW5nRXZlbnRJdGVyYXRvcnM7CiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBmNmMyZDQ2Li5jN2Y3ZjUz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0zODAsOCArMzgw
LDggQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKGxv
bmcgY2FsbElkLCBsb25nIG5vZGVJZCkKICAgICAvLyBHZXQgdGhlIGxpc3Qgb2YgZXZlbnQgdHlw
ZXMgdGhpcyBOb2RlIGlzIGNvbmNlcm5lZCB3aXRoCiAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4g
ZXZlbnRUeXBlczsKICAgICBjb25zdCBFdmVudExpc3RlbmVyTWFwJiBsaXN0ZW5lck1hcCA9IGQt
PmV2ZW50TGlzdGVuZXJNYXA7Ci0gICAgSGFzaE1hcDxBdG9taWNTdHJpbmcsIEV2ZW50TGlzdGVu
ZXJWZWN0b3I+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBsaXN0ZW5lck1hcC5lbmQoKTsKLSAgICBm
b3IgKEhhc2hNYXA8QXRvbWljU3RyaW5nLCBFdmVudExpc3RlbmVyVmVjdG9yPjo6Y29uc3RfaXRl
cmF0b3IgaXRlciA9IGxpc3RlbmVyTWFwLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCisg
ICAgRXZlbnRMaXN0ZW5lck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbGlzdGVuZXJNYXAuZW5k
KCk7CisgICAgZm9yIChFdmVudExpc3RlbmVyTWFwOjpjb25zdF9pdGVyYXRvciBpdGVyID0gbGlz
dGVuZXJNYXAuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKICAgICAgICAgZXZlbnRUeXBl
cy5hcHBlbmQoaXRlci0+Zmlyc3QpOwogCiAgICAgLy8gUXVpY2sgYnJlYWsgaWYgbm8gdXNlZnVs
IGxpc3RlbmVycwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCA0MjUxN2JkLi4xNjc1OTc3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmNwcApAQCAtNzcyLDcgKzc3Miw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6
dHJhbnNmZXJFdmVudExpc3RlbmVyc1RvU2hhZG93VHJlZShTVkdFbGVtZW50SW5zdGFuY2UqIHRh
cmdlCiAgICAgICAgICAgICBFdmVudExpc3RlbmVyTWFwJiBtYXAgPSBkLT5ldmVudExpc3RlbmVy
TWFwOwogICAgICAgICAgICAgRXZlbnRMaXN0ZW5lck1hcDo6aXRlcmF0b3IgZW5kID0gbWFwLmVu
ZCgpOwogICAgICAgICAgICAgZm9yIChFdmVudExpc3RlbmVyTWFwOjppdGVyYXRvciBpdCA9IG1h
cC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgICAgICAgICBFdmVudExpc3Rl
bmVyVmVjdG9yJiBlbnRyeSA9IGl0LT5zZWNvbmQ7CisgICAgICAgICAgICAgICAgRXZlbnRMaXN0
ZW5lclZlY3RvciYgZW50cnkgPSAqaXQtPnNlY29uZDsKICAgICAgICAgICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGVudHJ5LnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAg
IC8vIEV2ZW50IGxpc3RlbmVycyBjcmVhdGVkIGZyb20gbWFya3VwIGhhdmUgYWxyZWFkeSBiZWVu
IHRyYW5zZmVyZWQgdG8gdGhlIHNoYWRvdyB0cmVlIGR1cmluZyBjbG9uaW5nLgogICAgICAgICAg
ICAgICAgICAgICBpZiAoZW50cnlbaV0ubGlzdGVuZXItPndhc0NyZWF0ZWRGcm9tTWFya3VwKCkp
Cg==
</data>
<flag name="review"
          id="24094"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42583</attachid>
            <date>2009-11-05 11:51:40 -0800</date>
            <delta_ts>2009-11-05 11:55:41 -0800</delta_ts>
            <desc>patch: proposed fix v5</desc>
            <filename>fix_rehash.patch</filename>
            <type>text/plain</type>
            <size>9798</size>
            <attacher name="Vitaly Repeshko">vitalyr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMjJhYmEwLi45NTFjOGU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMTEt
MDIgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDUkFTSDogUmVoYXNoaW5nIG9m
IEV2ZW50TGlzdGVuZXJNYXAgbGVhZHMgdG8gbG9zcyBvZiBFdmVuTGlzdGVuZXJMaXN0LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwMjcKKworICAg
ICAgICAqIGZhc3QvZXZlbnRzL2V2ZW50LWxpc3RlbmVyLW1hcC1yZWhhc2gtY3Jhc2guaHRtbDog
QWRkZWQuCisKIDIwMDktMTEtMDUgIEplZmYgU2NoaWxsZXIgIDxjb2RlZHJlYWRAZ21haWwuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LWxpc3RlbmVyLW1hcC1yZWhhc2gtY3Jhc2gtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXZlbnQtbGlzdGVuZXItbWFwLXJlaGFz
aC1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OWI1M2JhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50
LWxpc3RlbmVyLW1hcC1yZWhhc2gtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAor
RW5zdXJlcyB0aGF0IHJlaGFzaGluZyBvZiBldmVudHMgbWFwIGRvZXNuJ3QgbGVhdmUgdXMgd2l0
aCBhIGRhbmdsaW5nIGV2ZW50IGxpc3QgcmVmZXJlbmNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBEaWQgbm90IGNyYXNoLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9ldmVudC1saXN0ZW5lci1tYXAtcmVoYXNoLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9ldmVudC1saXN0ZW5lci1tYXAtcmVoYXNoLWNyYXNoLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU4MWUxNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V2ZW50LWxpc3RlbmVyLW1hcC1yZWhhc2gtY3Jhc2guaHRt
bApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAg
IGZ1bmN0aW9uIHN0dWIoKSB7fQorCisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9N
Q29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgNTA7ICsraSkKKyAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImJv
b20iICsgaSwgc3R1YiwgZmFsc2UpOworICAgIH0sIGZhbHNlKTsKKworICAgIGRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBzdHViKTsKKworICAgIHZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJFbnN1cmVzIHRoYXQgcmVoYXNoaW5nIG9mIGV2ZW50cyBtYXAgZG9l
c24ndCBsZWF2ZSB1cyB3aXRoIGEgZGFuZ2xpbmcgZXZlbnQgbGlzdCByZWZlcmVuY2UuIik7Cisg
ICAgdGVzdFBhc3NlZCgiRGlkIG5vdCBjcmFzaC4iKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBlMGQ5NjY1Li41NWRmODkyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDA5LTExLTAzICBWaXRhbHkg
UmVwZXNoa28gIDx2aXRhbHlyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDUkFTSDogUmVoYXNoaW5nIG9mIEV2ZW50TGlzdGVu
ZXJNYXAgbGVhZHMgdG8gbG9zcyBvZiBFdmVuTGlzdGVuZXJMaXN0LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwMjcKKworICAgICAgICBUZXN0ZWQg
YnkgbmV3IGZhc3QvZXZlbnRzL2V2ZW50LWxpc3RlbmVyLW1hcC1yZWhhc2gtY3Jhc2guaHRtbC4K
KworICAgICAgICBFdmVudExpc3RlbmVyTWFwIG1vZGlmaWVkIHRvIHN0b3JlIHBvaW50ZXJzIHRv
IGxpc3RlbmVyIHZlY3RvcnM6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0RGF0YTo6fkV2ZW50VGFyZ2V0RGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudFRhcmdldDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50VGFyZ2V0OjpnZXRFdmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRh
cmdldDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdl
dC5oOgorCisgICAgICAgIFVzYWdlcyB1cGRhdGVkIGFmdGVyIGludGVyZmFjZSBjaGFuZ2VzOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKToKKyAgICAg
ICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVt
ZW50Ojp0cmFuc2ZlckV2ZW50TGlzdGVuZXJzVG9TaGFkb3dUcmVlKToKKwogMjAwOS0xMS0wNSAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dC5jcHAgYi9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggNjk0ZTc4YS4uYjA2NDg1
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtNjgsNiArNjgsMTEgQEAgYm9vbCBldmVudERpc3BhdGNo
Rm9yYmlkZGVuKCkKIH0KICNlbmRpZiAvLyBOREVCVUcKIAorRXZlbnRUYXJnZXREYXRhOjp+RXZl
bnRUYXJnZXREYXRhKCkKK3sKKyAgICBkZWxldGVBbGxWYWx1ZXMoZXZlbnRMaXN0ZW5lck1hcCk7
Cit9CisKIEV2ZW50VGFyZ2V0Ojp+RXZlbnRUYXJnZXQoKQogewogfQpAQCAtMTU3LDE2ICsxNjIs
MTkgQEAgYm9vbCBFdmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmUKIHsKICAgICBFdmVudFRhcmdldERhdGEqIGQg
PSBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsKIAotICAgIHBhaXI8RXZlbnRMaXN0ZW5lck1hcDo6
aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAuYWRkKGV2ZW50VHlw
ZSwgRXZlbnRMaXN0ZW5lclZlY3RvcigpKTsKLSAgICBFdmVudExpc3RlbmVyVmVjdG9yJiBlbnRy
eSA9IHJlc3VsdC5maXJzdC0+c2Vjb25kOworICAgIHBhaXI8RXZlbnRMaXN0ZW5lck1hcDo6aXRl
cmF0b3IsIGJvb2w+IHJlc3VsdCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAuYWRkKGV2ZW50VHlwZSwg
MCk7CisgICAgRXZlbnRMaXN0ZW5lclZlY3RvciomIGVudHJ5ID0gcmVzdWx0LmZpcnN0LT5zZWNv
bmQ7CisgICAgY29uc3QgYm9vbCBpc05ld0VudHJ5ID0gcmVzdWx0LnNlY29uZDsKKyAgICBpZiAo
aXNOZXdFbnRyeSkKKyAgICAgICAgZW50cnkgPSBuZXcgRXZlbnRMaXN0ZW5lclZlY3RvcigpOwog
CiAgICAgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIgcmVnaXN0ZXJlZExpc3RlbmVyKGxpc3RlbmVy
LCB1c2VDYXB0dXJlKTsKLSAgICBpZiAoIXJlc3VsdC5zZWNvbmQpIHsgLy8gcHJlLWV4aXN0aW5n
IGVudHJ5Ci0gICAgICAgIGlmIChlbnRyeS5maW5kKHJlZ2lzdGVyZWRMaXN0ZW5lcikgIT0gbm90
Rm91bmQpIC8vIGR1cGxpY2F0ZSBsaXN0ZW5lcgorICAgIGlmICghaXNOZXdFbnRyeSkgeworICAg
ICAgICBpZiAoZW50cnktPmZpbmQocmVnaXN0ZXJlZExpc3RlbmVyKSAhPSBub3RGb3VuZCkgLy8g
ZHVwbGljYXRlIGxpc3RlbmVyCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0g
ICAgZW50cnkuYXBwZW5kKHJlZ2lzdGVyZWRMaXN0ZW5lcik7CisgICAgZW50cnktPmFwcGVuZChy
ZWdpc3RlcmVkTGlzdGVuZXIpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xNzksMTYgKzE4
NywxOCBAQCBib29sIEV2ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbgogICAgIEV2ZW50TGlzdGVuZXJNYXA6Oml0
ZXJhdG9yIHJlc3VsdCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAuZmluZChldmVudFR5cGUpOwogICAg
IGlmIChyZXN1bHQgPT0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIEV2ZW50TGlzdGVuZXJWZWN0b3ImIGVudHJ5ID0gcmVzdWx0LT5zZWNvbmQ7
CisgICAgRXZlbnRMaXN0ZW5lclZlY3RvciogZW50cnkgPSByZXN1bHQtPnNlY29uZDsKIAogICAg
IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyIHJlZ2lzdGVyZWRMaXN0ZW5lcihsaXN0ZW5lciwgdXNl
Q2FwdHVyZSk7Ci0gICAgc2l6ZV90IGluZGV4ID0gZW50cnkuZmluZChyZWdpc3RlcmVkTGlzdGVu
ZXIpOworICAgIHNpemVfdCBpbmRleCA9IGVudHJ5LT5maW5kKHJlZ2lzdGVyZWRMaXN0ZW5lcik7
CiAgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBlbnRyeS5yZW1vdmUoaW5kZXgpOwotICAgIGlmICghZW50cnkuc2l6ZSgpKQorICAgIGVudHJ5
LT5yZW1vdmUoaW5kZXgpOworICAgIGlmIChlbnRyeS0+aXNFbXB0eSgpKSB7CisgICAgICAgIGRl
bGV0ZSBlbnRyeTsKICAgICAgICAgZC0+ZXZlbnRMaXN0ZW5lck1hcC5yZW1vdmUocmVzdWx0KTsK
KyAgICB9CiAKICAgICAvLyBOb3RpZnkgZmlyaW5nIGV2ZW50cyBwbGFubmluZyB0byBpbnZva2Ug
dGhlIGxpc3RlbmVyIGF0ICdpbmRleCcgdGhhdAogICAgIC8vIHRoZXkgaGF2ZSBvbmUgbGVzcyBs
aXN0ZW5lciB0byBpbnZva2UuCkBAIC0yNjYsNyArMjc2LDcgQEAgYm9vbCBFdmVudFRhcmdldDo6
ZmlyZUV2ZW50TGlzdGVuZXJzKEV2ZW50KiBldmVudCkKICAgICBFdmVudExpc3RlbmVyTWFwOjpp
dGVyYXRvciByZXN1bHQgPSBkLT5ldmVudExpc3RlbmVyTWFwLmZpbmQoZXZlbnQtPnR5cGUoKSk7
CiAgICAgaWYgKHJlc3VsdCA9PSBkLT5ldmVudExpc3RlbmVyTWFwLmVuZCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgRXZlbnRMaXN0ZW5lclZlY3RvciYgZW50cnkgPSByZXN1bHQtPnNl
Y29uZDsKKyAgICBFdmVudExpc3RlbmVyVmVjdG9yJiBlbnRyeSA9ICpyZXN1bHQtPnNlY29uZDsK
IAogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gcHJvdGVjdCA9IHRoaXM7CiAKQEAgLTMwMyw3ICsz
MTMsNyBAQCBjb25zdCBFdmVudExpc3RlbmVyVmVjdG9yJiBFdmVudFRhcmdldDo6Z2V0RXZlbnRM
aXN0ZW5lcnMoY29uc3QgQXRvbWljU3RyaW5nJiBldgogICAgIEV2ZW50TGlzdGVuZXJNYXA6Oml0
ZXJhdG9yIGl0ID0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50VHlwZSk7CiAgICAgaWYg
KGl0ID09IGQtPmV2ZW50TGlzdGVuZXJNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBlbXB0eVZl
Y3RvcjsKLSAgICByZXR1cm4gaXQtPnNlY29uZDsKKyAgICByZXR1cm4gKml0LT5zZWNvbmQ7CiB9
CiAKIHZvaWQgRXZlbnRUYXJnZXQ6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkKQEAgLTMxMSw2
ICszMjEsNyBAQCB2b2lkIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAg
ICAgRXZlbnRUYXJnZXREYXRhKiBkID0gZXZlbnRUYXJnZXREYXRhKCk7CiAgICAgaWYgKCFkKQog
ICAgICAgICByZXR1cm47CisgICAgZGVsZXRlQWxsVmFsdWVzKGQtPmV2ZW50TGlzdGVuZXJNYXAp
OwogICAgIGQtPmV2ZW50TGlzdGVuZXJNYXAuY2xlYXIoKTsKIAogICAgIC8vIE5vdGlmeSBmaXJp
bmcgZXZlbnRzIHBsYW5uaW5nIHRvIGludm9rZSB0aGUgbGlzdGVuZXIgYXQgJ2luZGV4JyB0aGF0
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oIGIvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXQuaAppbmRleCAxZTUxZjA0Li4yZDc3Yzg3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5oCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKQEAgLTc2LDkg
Kzc2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB0eXBlZGVmIFZlY3RvcjxGaXJpbmdF
dmVudEl0ZXJhdG9yLCAxPiBGaXJpbmdFdmVudEl0ZXJhdG9yVmVjdG9yOwogCiAgICAgdHlwZWRl
ZiBWZWN0b3I8UmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIsIDE+IEV2ZW50TGlzdGVuZXJWZWN0b3I7
Ci0gICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgRXZlbnRMaXN0ZW5lclZlY3Rvcj4g
RXZlbnRMaXN0ZW5lck1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBFdmVu
dExpc3RlbmVyVmVjdG9yKj4gRXZlbnRMaXN0ZW5lck1hcDsKIAogICAgIHN0cnVjdCBFdmVudFRh
cmdldERhdGEgOiBOb25jb3B5YWJsZSB7CisgICAgICAgIH5FdmVudFRhcmdldERhdGEoKTsKKwog
ICAgICAgICBFdmVudExpc3RlbmVyTWFwIGV2ZW50TGlzdGVuZXJNYXA7CiAgICAgICAgIEZpcmlu
Z0V2ZW50SXRlcmF0b3JWZWN0b3IgZmlyaW5nRXZlbnRJdGVyYXRvcnM7CiAgICAgfTsKQEAgLTE5
MCw3ICsxOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgRXZlbnRMaXN0ZW5l
ck1hcDo6aXRlcmF0b3IgZW5kID0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5lbmQoKTsKICAgICAgICAg
Zm9yIChFdmVudExpc3RlbmVyTWFwOjppdGVyYXRvciBpdCA9IGQtPmV2ZW50TGlzdGVuZXJNYXAu
YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgICAgICBFdmVudExpc3RlbmVyVmVj
dG9yJiBlbnRyeSA9IGl0LT5zZWNvbmQ7CisgICAgICAgICAgICBFdmVudExpc3RlbmVyVmVjdG9y
JiBlbnRyeSA9ICppdC0+c2Vjb25kOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBlbnRyeS5zaXplKCk7ICsraSkKICAgICAgICAgICAgICAgICBlbnRyeVtpXS5saXN0ZW5lci0+
bWFya0pTRnVuY3Rpb24obWFya1N0YWNrKTsKICAgICAgICAgfQpAQCAtMjAyLDYgKzIwNCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaWYgKCFkKQogICAgICAgICAgICAgcmV0dXJu
OwogCisgICAgICAgIGRlbGV0ZUFsbFZhbHVlcyhkLT5ldmVudExpc3RlbmVyTWFwKTsKICAgICAg
ICAgZC0+ZXZlbnRMaXN0ZW5lck1hcC5jbGVhcigpOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGY2YzJkNDYuLmM3ZjdmNTMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTM4MCw4ICszODAsOCBAQCB2
b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUobG9uZyBjYWxs
SWQsIGxvbmcgbm9kZUlkKQogICAgIC8vIEdldCB0aGUgbGlzdCBvZiBldmVudCB0eXBlcyB0aGlz
IE5vZGUgaXMgY29uY2VybmVkIHdpdGgKICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBldmVudFR5
cGVzOwogICAgIGNvbnN0IEV2ZW50TGlzdGVuZXJNYXAmIGxpc3RlbmVyTWFwID0gZC0+ZXZlbnRM
aXN0ZW5lck1hcDsKLSAgICBIYXNoTWFwPEF0b21pY1N0cmluZywgRXZlbnRMaXN0ZW5lclZlY3Rv
cj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGxpc3RlbmVyTWFwLmVuZCgpOwotICAgIGZvciAoSGFz
aE1hcDxBdG9taWNTdHJpbmcsIEV2ZW50TGlzdGVuZXJWZWN0b3I+Ojpjb25zdF9pdGVyYXRvciBp
dGVyID0gbGlzdGVuZXJNYXAuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKKyAgICBFdmVu
dExpc3RlbmVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBsaXN0ZW5lck1hcC5lbmQoKTsKKyAg
ICBmb3IgKEV2ZW50TGlzdGVuZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBsaXN0ZW5lck1h
cC5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKQogICAgICAgICBldmVudFR5cGVzLmFwcGVu
ZChpdGVyLT5maXJzdCk7CiAKICAgICAvLyBRdWljayBicmVhayBpZiBubyB1c2VmdWwgbGlzdGVu
ZXJzCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1dlYkNvcmUv
c3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDQyNTE3YmQuLjE2NzU5NzcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwCkBAIC03NzIsNyArNzcyLDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50Ojp0cmFuc2Zl
ckV2ZW50TGlzdGVuZXJzVG9TaGFkb3dUcmVlKFNWR0VsZW1lbnRJbnN0YW5jZSogdGFyZ2UKICAg
ICAgICAgICAgIEV2ZW50TGlzdGVuZXJNYXAmIG1hcCA9IGQtPmV2ZW50TGlzdGVuZXJNYXA7CiAg
ICAgICAgICAgICBFdmVudExpc3RlbmVyTWFwOjppdGVyYXRvciBlbmQgPSBtYXAuZW5kKCk7CiAg
ICAgICAgICAgICBmb3IgKEV2ZW50TGlzdGVuZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbWFwLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXJWZWN0
b3ImIGVudHJ5ID0gaXQtPnNlY29uZDsKKyAgICAgICAgICAgICAgICBFdmVudExpc3RlbmVyVmVj
dG9yJiBlbnRyeSA9ICppdC0+c2Vjb25kOwogICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgZW50cnkuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gRXZl
bnQgbGlzdGVuZXJzIGNyZWF0ZWQgZnJvbSBtYXJrdXAgaGF2ZSBhbHJlYWR5IGJlZW4gdHJhbnNm
ZXJlZCB0byB0aGUgc2hhZG93IHRyZWUgZHVyaW5nIGNsb25pbmcuCiAgICAgICAgICAgICAgICAg
ICAgIGlmIChlbnRyeVtpXS5saXN0ZW5lci0+d2FzQ3JlYXRlZEZyb21NYXJrdXAoKSkK
</data>
<flag name="review"
          id="24137"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>