<?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>38191</bug_id>
          
          <creation_ts>2010-04-27 04:14:36 -0700</creation_ts>
          <short_desc>Revert 58274 and 58269 (WebSQLDatabase changes)</short_desc>
          <delta_ts>2010-04-27 17:28:22 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Dumitru Daniliuc">dumi</assigned_to>
          <cc>dumi</cc>
    
    <cc>jorlow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217646</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-27 04:14:36 -0700</bug_when>
    <thetext>Revert 58274 and 58269 (WebSQLDatabase changes)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217649</commentid>
    <comment_count>1</comment_count>
      <attachid>54408</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-27 04:15:57 -0700</bug_when>
    <thetext>Created attachment 54408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217653</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-27 04:20:32 -0700</bug_when>
    <thetext>Reverted these:
http://trac.webkit.org/changeset/58274
http://trac.webkit.org/changeset/58270

Some additional info, tho this is super easy to repro:
http://code.google.com/p/chromium/issues/detail?id=42618#makechanges</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217654</commentid>
    <comment_count>3</comment_count>
      <attachid>54408</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-27 04:20:52 -0700</bug_when>
    <thetext>Comment on attachment 54408
Patch

Committed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217660</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-27 05:07:08 -0700</bug_when>
    <thetext>Landed http://trac.webkit.org/changeset/58302 to revert.

And http://trac.webkit.org/changeset/58303 to disable the quota test in Chromium until Dumi can take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218026</commentid>
    <comment_count>5</comment_count>
      <attachid>54469</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-04-27 16:20:30 -0700</bug_when>
    <thetext>Created attachment 54469
patch

Same patch as before + all necessary fixes to storage/quota-tracking.html. The Chromium-side fix (that will go in first) is at http://codereview.chromium.org/1709014.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218070</commentid>
    <comment_count>6</comment_count>
      <attachid>54469</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-04-27 17:23:26 -0700</bug_when>
    <thetext>Comment on attachment 54469
patch

I think this patch is attached to the wrong bug. The bug says that it needs to revert some changes, and this instead appears to be turning on AUTO_VACUUM. Sorry but r- b/c this is too confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218076</commentid>
    <comment_count>7</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-04-27 17:28:22 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 54469 [details])
&gt; I think this patch is attached to the wrong bug. The bug says that it needs to
&gt; revert some changes, and this instead appears to be turning on AUTO_VACUUM.
&gt; Sorry but r- b/c this is too confusing.

ok, i&apos;ll close this bug and attach the patch to bug 36251. please take a look if you have time.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54408</attachid>
            <date>2010-04-27 04:15:57 -0700</date>
            <delta_ts>2010-04-27 04:20:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38191-20100427121555.patch</filename>
            <type>text/plain</type>
            <size>14128</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZWFmMWVhYWRkMWU4N2QxYzQ5NjViMTIxZDVhMGQ5YWRkMTkzNWNjLi4xNzljYTgx
Y2ViNTI0NTkwNTEwYmEwNmZjZjI5MTI0NDhhY2FjMWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDQtMjcgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2ZXJ0IDU4Mjc0IGFu
ZCA1ODI2OSAoV2ViU1FMRGF0YWJhc2UgY2hhbmdlcykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MTkxCisKKyAgICAgICAgKiBzdG9yYWdlL3F1b3Rh
LXRyYWNraW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL3F1b3RhLXRyYWNraW5n
Lmh0bWw6CisKIDIwMTAtMDQtMjcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9xdW90YS10cmFja2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL3F1b3RhLXRyYWNraW5nLWV4cGVjdGVkLnR4dAppbmRleCA2ZDg2MGYwYzA0ZGQ3NTZmYzhk
NDc0YjM3OWJlM2E1ZmM3ZjdjZTg3Li42MmEyYzZiMmVmNzQ2ODcyNDNjMWQ5ZjUwYjM0ZWViNTMx
N2Y5MTljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL3F1b3RhLXRyYWNraW5nLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL3F1b3RhLXRyYWNraW5nLWV4cGVj
dGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIFVJIERFTEVHQVRFIERBVEFCQVNFIENBTExCQUNLOiBl
eGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjp7ZmlsZSwgLCAwfSBkYXRhYmFz
ZTpRdW90YU1hbmFnZW1lbnREYXRhYmFzZTIKIFRoaXMgdGVzdCBjaGVja3MgdG8gbWFrZSBzdXJl
IHRoYXQgcXVvdGFzIGFyZSBlbmZvcmNlZCBwZXItb3JpZ2luIGluc3RlYWQgb2YgcGVyLWRhdGFi
YXNlLCBhcyB0aGV5IHdlcmUgcHJpb3IgdG8gaHR0cDovL3RyYWMud2Via2l0Lm9yZy9wcm9qZWN0
cy93ZWJraXQvY2hhbmdlc2V0LzI5OTgzLgotVGhlIHRlc3QgY2xlYXJzIGFsbCBkYXRhYmFzZXMs
IHNldHMgdGhlIHF1b3RhIGZvciB0aGUgb3JpZ2luIHRvIDQwaywgdGhlbiB0cmllcyB0byBpbnNl
cnQgMTdrIG9mIGRhdGEgaW50byB0d28gZGF0YWJhc2VzLiBJZiB0aGluZ3MgZ28gYXMgcGxhbm5l
ZCwgdGhlIHNlY29uZCBpbnNlcnQgc2hvdWxkIGZhaWwsIHRoZSBVSSBEZWxlZ2F0ZSBzaG91bGQg
YmUgaW5mb3JtZWQgb2YgdGhlIGV4Y2VlZGVkIHF1b3RhIGFuZCBzaG91bGQgaW5jcmVhc2UgdGhl
IHF1b3RhIGZvciB0aGlzIG9yaWdpbi4gSW5zZXJ0aW5nIDE3ayBvZiBkYXRhIHRoZSB0aGlyZCB0
aW1lIHNob3VsZCBzdWNjZWVkIGFnYWluLgorVGhlIHRlc3QgY2xlYXJzIGFsbCBkYXRhYmFzZXMs
IHNldHMgdGhlIHF1b3RhIGZvciB0aGUgb3JpZ2luIHRvIDMyaywgdGhlbiB0cmllcyB0byBpbnNl
cnQgMTdrIG9mIGRhdGEgaW50byB0d28gZGF0YWJhc2VzLiBJZiB0aGluZ3MgZ28gYXMgcGxhbm5l
ZCwgdGhlIFVJIERlbGVnYXRlIHdpbGwgYmUgaW5mb3JtZWQgb2YgdGhlIGV4Y2VlZGVkIHF1b3Rh
IGFuZCBzaG91bGQgaW5jcmVhc2UgdGhlIHF1b3RhIGZvciB0aGlzIG9yaWdpbi4gSW5zZXJ0aW5n
IDE3ayBvZiBkYXRhIHRoZSB0aGlyZCB0aW1lIHNob3VsZCBzdWNjZWVkIGFnYWluLgogQWRkaW5n
IGEgdGFibGUKIEluc2VydGluZyBzb21lIGRhdGEKIERvbmUgYWRkaW5nIGRhdGEKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvcXVvdGEtdHJhY2tpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvcXVvdGEtdHJhY2tpbmcuaHRtbAppbmRleCA2ZTUyNTIzYjE2M2YwNTQ1NTg4YTg4
ZWIxMzEwYmRmZDhjNjYyM2ExLi4yYjViNDlkZTU0ZGU1YjhkMzA0Yjg0ZTg1NmJlNjczZTVkOWVi
MjU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL3F1b3RhLXRyYWNraW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9xdW90YS10cmFja2luZy5odG1sCkBAIC05MSw3ICs5
MSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMo
KTsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERhdGFiYXNlQ2FsbGJhY2tzKCk7
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldERhdGFiYXNlUXVvdGEoNDA5NjApOwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXREYXRhYmFzZVF1b3RhKDMyNzY4KTsKICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAgICAgfQpAQCAtMTA1LDcgKzEwNSw3IEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKQogCiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CiBUaGlzIHRl
c3QgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGF0IHF1b3RhcyBhcmUgZW5mb3JjZWQgcGVyLW9yaWdp
biBpbnN0ZWFkIG9mIHBlci1kYXRhYmFzZSwgYXMgdGhleSB3ZXJlIHByaW9yIHRvIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvcHJvamVjdHMvd2Via2l0L2NoYW5nZXNldC8yOTk4My48YnI+Ci1UaGUg
dGVzdCBjbGVhcnMgYWxsIGRhdGFiYXNlcywgc2V0cyB0aGUgcXVvdGEgZm9yIHRoZSBvcmlnaW4g
dG8gNDBrLCB0aGVuIHRyaWVzIHRvIGluc2VydCAxN2sgb2YgZGF0YSBpbnRvIHR3byBkYXRhYmFz
ZXMuIElmIHRoaW5ncyBnbyBhcyBwbGFubmVkLCB0aGUgc2Vjb25kIGluc2VydCBzaG91bGQgZmFp
bCwgdGhlIFVJIERlbGVnYXRlIHNob3VsZCBiZSBpbmZvcm1lZCBvZiB0aGUgZXhjZWVkZWQgcXVv
dGEgYW5kIHNob3VsZCBpbmNyZWFzZSB0aGUgcXVvdGEgZm9yIHRoaXMgb3JpZ2luLiBJbnNlcnRp
bmcgMTdrIG9mIGRhdGEgdGhlIHRoaXJkIHRpbWUgc2hvdWxkIHN1Y2NlZWQgYWdhaW4uCitUaGUg
dGVzdCBjbGVhcnMgYWxsIGRhdGFiYXNlcywgc2V0cyB0aGUgcXVvdGEgZm9yIHRoZSBvcmlnaW4g
dG8gMzJrLCB0aGVuIHRyaWVzIHRvIGluc2VydCAxN2sgb2YgZGF0YSBpbnRvIHR3byBkYXRhYmFz
ZXMuIElmIHRoaW5ncyBnbyBhcyBwbGFubmVkLCB0aGUgVUkgRGVsZWdhdGUgd2lsbCBiZSBpbmZv
cm1lZCBvZiB0aGUgZXhjZWVkZWQgcXVvdGEgYW5kIHNob3VsZCBpbmNyZWFzZSB0aGUgcXVvdGEg
Zm9yIHRoaXMgb3JpZ2luLiBJbnNlcnRpbmcgMTdrIG9mIGRhdGEgdGhlIHRoaXJkIHRpbWUgc2hv
dWxkIHN1Y2NlZWQgYWdhaW4uCiA8cHJlIGlkPSJjb25zb2xlIj4KIDwvcHJlPgogPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjVkM2YyMDQ5NDNkMmRkMjkzNDk3M2E4OTg1NTU3ODZmOTQ0NWUxLi5iMTAxY2Q3YjczMzhlNjNi
YzI0ODA0MGUxMzg2Zjk1ODYyZWI1MDJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA0LTI3ICBKZXJl
bXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldmVydCA1ODI3NCBhbmQgNTgyNjkgKFdlYlNRTERh
dGFiYXNlIGNoYW5nZXMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zODE5MQorCisgICAgICAgIENocm9taXVtIGJvdHMgYXJlIGhpdHRpbmcgQVNTRVJU
UyB3aGVuIHJ1bm5pbmcgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NR
TGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjptYXhp
bXVtU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6ZnJlZVNwYWNlU2l6
ZSk6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVTdGF0ZW1lbnQ6OnByZXBhcmUpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAg
ICAgKiBzdG9yYWdlL0RhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6cG9zdGZsaWdodEFuZENv
bW1pdCk6CisKIDIwMTAtMDQtMjcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFNoaW5pY2hpcm8gSGFtYWppLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9z
cWwvU1FMaXRlRGF0YWJhc2UuY3BwCmluZGV4IGIyNGNkMTA2OTY3M2JmN2FlNzI2NGE4MTU1Njhh
M2NiNTY4MjhlNGUuLjU4ZmRjN2M1MjM0MTczNDI0OWQwMTIyZTlkYzg4ZTk0ZDEwYjZkMzggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTEwMiwxNyArMTAyLDE0
IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldEZ1bGxzeW5jKGJvb2wgZnN5bmMpCiAKIGludDY0
X3QgU1FMaXRlRGF0YWJhc2U6Om1heGltdW1TaXplKCkKIHsKLSAgICBpbnQ2NF90IG1heFBhZ2VD
b3VudCA9IDA7Ci0KLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6
ZXJMb2NrKTsKLSAgICAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7Ci0gICAgICAgIFNRTGl0
ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsICJQUkFHTUEgbWF4X3BhZ2VfY291bnQiKTsKLSAg
ICAgICAgbWF4UGFnZUNvdW50ID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDApOwotICAgICAg
ICBlbmFibGVBdXRob3JpemVyKHRydWUpOwotICAgIH0KLQotICAgIHJldHVybiBtYXhQYWdlQ291
bnQgKiBwYWdlU2l6ZSgpOworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2Nr
KTsKKyAgICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKKyAgICAKKyAgICBTUUxpdGVTdGF0ZW1l
bnQgc3RhdGVtZW50KCp0aGlzLCAiUFJBR01BIG1heF9wYWdlX2NvdW50Iik7CisgICAgaW50NjRf
dCBzaXplID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDApICogcGFnZVNpemUoKTsKKyAgICAK
KyAgICBlbmFibGVBdXRob3JpemVyKHRydWUpOworICAgIHJldHVybiBzaXplOwogfQogCiB2b2lk
IFNRTGl0ZURhdGFiYXNlOjpzZXRNYXhpbXVtU2l6ZShpbnQ2NF90IHNpemUpCkBAIC0xNTYsMzMg
KzE1MywxNCBAQCBpbnQgU1FMaXRlRGF0YWJhc2U6OnBhZ2VTaXplKCkKIAogaW50NjRfdCBTUUxp
dGVEYXRhYmFzZTo6ZnJlZVNwYWNlU2l6ZSgpCiB7Ci0gICAgaW50NjRfdCBmcmVlbGlzdENvdW50
ID0gMDsKLQotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxv
Y2spOwotICAgICAgICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKLSAgICAgICAgLy8gTm90ZTog
ZnJlZWxpc3RfY291bnQgd2FzIGFkZGVkIGluIFNRTGl0ZSAzLjQuMS4KLSAgICAgICAgU1FMaXRl
U3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSBmcmVlbGlzdF9jb3VudCIpOwotICAg
ICAgICBmcmVlbGlzdENvdW50ID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDApOwotICAgICAg
ICBlbmFibGVBdXRob3JpemVyKHRydWUpOwotICAgIH0KLQotICAgIHJldHVybiBmcmVlbGlzdENv
dW50ICogcGFnZVNpemUoKTsKLX0KLQotaW50NjRfdCBTUUxpdGVEYXRhYmFzZTo6dG90YWxTaXpl
KCkKLXsKLSAgICBpbnQ2NF90IHBhZ2VDb3VudCA9IDA7Ci0KLSAgICB7Ci0gICAgICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKLSAgICAgICAgZW5hYmxlQXV0aG9yaXpl
cihmYWxzZSk7Ci0gICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsICJQUkFH
TUEgcGFnZV9jb3VudCIpOwotICAgICAgICBwYWdlQ291bnQgPSBzdGF0ZW1lbnQuZ2V0Q29sdW1u
SW50NjQoMCk7Ci0gICAgICAgIGVuYWJsZUF1dGhvcml6ZXIodHJ1ZSk7Ci0gICAgfQorICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6ZXJMb2NrKTsKKyAgICBlbmFibGVBdXRob3JpemVy
KGZhbHNlKTsKKyAgICAvLyBOb3RlOiBmcmVlbGlzdF9jb3VudCB3YXMgYWRkZWQgaW4gU1FMaXRl
IDMuNC4xLgorICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsICJQUkFHTUEgZnJl
ZWxpc3RfY291bnQiKTsKKyAgICBpbnQ2NF90IHNpemUgPSBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50
NjQoMCkgKiBwYWdlU2l6ZSgpOwogCi0gICAgcmV0dXJuIHBhZ2VDb3VudCAqIHBhZ2VTaXplKCk7
CisgICAgZW5hYmxlQXV0aG9yaXplcih0cnVlKTsKKyAgICByZXR1cm4gc2l6ZTsKIH0KIAogdm9p
ZCBTUUxpdGVEYXRhYmFzZTo6c2V0U3luY2hyb25vdXMoU3luY2hyb25vdXNQcmFnbWEgc3luYykK
QEAgLTI1MSwxNyArMjI5LDYgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6cnVuVmFjdXVtQ29tbWFu
ZCgpCiAgICAgICAgIExPRyhTUUxEYXRhYmFzZSwgIlVuYWJsZSB0byB2YWN1dW0gZGF0YWJhc2Ug
LSAlcyIsIGxhc3RFcnJvck1zZygpKTsKIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5j
cmVtZW50YWxWYWN1dW1Db21tYW5kKCkKLXsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRo
b3JpemVyTG9jayk7Ci0gICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7Ci0KLSAgICBpZiAoIWV4
ZWN1dGVDb21tYW5kKCJQUkFHTUEgaW5jcmVtZW50YWxfdmFjdXVtIikpCi0gICAgICAgIExPRyhT
UUxEYXRhYmFzZSwgIlVuYWJsZSB0byBydW4gaW5jcmVtZW50YWwgdmFjdXVtIC0gJXMiLCBsYXN0
RXJyb3JNc2coKSk7Ci0KLSAgICBlbmFibGVBdXRob3JpemVyKHRydWUpOwotfQotCiBpbnQ2NF90
IFNRTGl0ZURhdGFiYXNlOjpsYXN0SW5zZXJ0Um93SUQoKQogewogICAgIGlmICghbV9kYikKQEAg
LTQxMiwzNCArMzc5LDQgQEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6aXNBdXRvQ29tbWl0T24oKSBj
b25zdAogICAgIHJldHVybiBzcWxpdGUzX2dldF9hdXRvY29tbWl0KG1fZGIpOwogfQogCi1ib29s
IFNRTGl0ZURhdGFiYXNlOjp0dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKQotewotICAgIFNR
TGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsICJQUkFHTUEgYXV0b192YWN1dW0iKTsKLSAg
ICBpbnQgYXV0b1ZhY3V1bU1vZGUgPSBzdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApOwotICAgIGlu
dCBlcnJvciA9IGxhc3RFcnJvcigpOwotCi0gICAgLy8gQ2hlY2sgaWYgd2UgZ290IGFuIGVycm9y
IHdoaWxlIHRyeWluZyB0byBnZXQgdGhlIHZhbHVlIG9mIHRoZSBhdXRvX3ZhY3V1bSBmbGFnLgot
ICAgIC8vIElmIHdlIGdvdCBhIFNRTElURV9CVVNZIGVycm9yLCB0aGVuIHRoZXJlJ3MgcHJvYmFi
bHkgYW5vdGhlciB0cmFuc2FjdGlvbiBpbgotICAgIC8vIHByb2dyZXNzIG9uIHRoaXMgZGF0YWJh
c2UuIEluIHRoaXMgY2FzZSwga2VlcCB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUKLSAgICAvLyBh
dXRvX3ZhY3V1bSBmbGFnIGFuZCB0cnkgdG8gc2V0IGl0IHRvIElOQ1JFTUVOVEFMIHRoZSBuZXh0
IHRpbWUgd2Ugb3BlbiB0aGlzCi0gICAgLy8gZGF0YWJhc2UuIElmIHRoZSBlcnJvciBpcyBub3Qg
U1FMSVRFX0JVU1ksIHRoZW4gd2UgcHJvYmFibHkgcmFuIGludG8gYSBtb3JlCi0gICAgLy8gc2Vy
aW91cyBwcm9ibGVtIGFuZCBzaG91bGQgcmV0dXJuIGZhbHNlICh0byBsb2cgYW4gZXJyb3IgbWVz
c2FnZSkuCi0gICAgaWYgKGVycm9yICE9IFNRTElURV9ST1cpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIHN3aXRjaCAoYXV0b1ZhY3V1bU1vZGUpIHsKLSAgICBjYXNlIEF1dG9WYWN1dW1J
bmNyZW1lbnRhbDoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBBdXRvVmFjdXVtRnVs
bDoKLSAgICAgICAgcmV0dXJuIGV4ZWN1dGVDb21tYW5kKCJQUkFHTUEgYXV0b192YWN1dW0gPSAy
Iik7Ci0gICAgY2FzZSBBdXRvVmFjdXVtTm9uZToKLSAgICBkZWZhdWx0OgotICAgICAgICBpZiAo
IWV4ZWN1dGVDb21tYW5kKCJQUkFHTUEgYXV0b192YWN1dW0gPSAyIikpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJ1blZhY3V1bUNvbW1hbmQoKTsKLSAgICAgICAgZXJyb3Ig
PSBsYXN0RXJyb3IoKTsKLSAgICAgICAgcmV0dXJuIChlcnJvciA9PSBTUUxJVEVfT0spOwotICAg
IH0KLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmgKaW5kZXggYzU5MjRjMDY3Mjc0Y2ZlYzNjYmVhZWIwMjJhYjE2MmNiN2MwNTg0MS4u
YmM1OGEzMjRlNDQzZDM0ZGMzOTU3Zjg5OTBiMTY4N2FlMTFjMTU2NiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZS5oCkBAIC02NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAgICBib29s
IHRhYmxlRXhpc3RzKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgY2xlYXJBbGxUYWJsZXMoKTsK
ICAgICB2b2lkIHJ1blZhY3V1bUNvbW1hbmQoKTsKLSAgICB2b2lkIHJ1bkluY3JlbWVudGFsVmFj
dXVtQ29tbWFuZCgpOwogICAgIAogICAgIGJvb2wgdHJhbnNhY3Rpb25JblByb2dyZXNzKCkgY29u
c3QgeyByZXR1cm4gbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3M7IH0KICAgICAKQEAgLTg2LDcgKzg1
LDYgQEAgcHVibGljOgogICAgIAogICAgIC8vIEdldHMgdGhlIG51bWJlciBvZiB1bnVzZWQgYnl0
ZXMgaW4gdGhlIGRhdGFiYXNlIGZpbGUuCiAgICAgaW50NjRfdCBmcmVlU3BhY2VTaXplKCk7Ci0g
ICAgaW50NjRfdCB0b3RhbFNpemUoKTsKIAogICAgIC8vIFRoZSBTUUxpdGUgU1lOQ0hST05PVVMg
cHJhZ21hIGNhbiBiZSBlaXRoZXIgRlVMTCwgTk9STUFMLCBvciBPRkYKICAgICAvLyBGVUxMIC0g
QW55IHdyaXRpbmcgY2FsbHMgdG8gdGhlIERCIGJsb2NrIHVudGlsIHRoZSBkYXRhIGlzIGFjdHVh
bGx5IG9uIHRoZSBkaXNrIHN1cmZhY2UKQEAgLTExMCwxOCArMTA4LDYgQEAgcHVibGljOgogICAg
IHZvaWQgdW5sb2NrKCk7CiAgICAgYm9vbCBpc0F1dG9Db21taXRPbigpIGNvbnN0OwogCi0gICAg
Ly8gVGhlIFNRTGl0ZSBBVVRPX1ZBQ1VVTSBwcmFnbWEgY2FuIGJlIGVpdGhlciBOT05FLCBGVUxM
LCBvciBJTkNSRU1FTlRBTC4KLSAgICAvLyBOT05FIC0gU1FMaXRlIGRvZXMgbm90IGRvIGFueSB2
YWN1dW1pbmcKLSAgICAvLyBGVUxMIC0gU1FMaXRlIG1vdmVzIGFsbCBlbXB0eSBwYWdlcyB0byB0
aGUgZW5kIG9mIHRoZSBEQiBmaWxlIGFuZCB0cnVuY2F0ZXMKLSAgICAvLyAgICAgICAgdGhlIGZp
bGUgdG8gcmVtb3ZlIHRob3NlIHBhZ2VzIGFmdGVyIGV2ZXJ5IHRyYW5zYWN0aW9uLiBUaGlzIG9w
dGlvbgotICAgIC8vICAgICAgICByZXF1aXJlcyBTUUxpdGUgdG8gc3RvcmUgYWRkaXRpb25hbCBp
bmZvcm1hdGlvbiBhYm91dCBlYWNoIHBhZ2UgaW4KLSAgICAvLyAgICAgICAgdGhlIGRhdGFiYXNl
IGZpbGUuCi0gICAgLy8gSU5DUkVNRU5UQUwgLSBTUUxpdGUgc3RvcmVzIGV4dHJhIGluZm9ybWF0
aW9uIGZvciBlYWNoIHBhZ2UgaW4gdGhlIGRhdGFiYXNlCi0gICAgLy8gICAgICAgICAgICAgICBm
aWxlLCBidXQgcmVtb3ZlcyB0aGUgZW1wdHkgcGFnZXMgb25seSB3aGVuIFBSQUdNQSBJTkNSRU1B
TlRBTF9WQUNVVU0KLSAgICAvLyAgICAgICAgICAgICAgIGlzIGNhbGxlZC4KLSAgICBlbnVtIEF1
dG9WYWN1dW1QcmFnbWEgeyBBdXRvVmFjdXVtTm9uZSA9IDAsIEF1dG9WYWN1dW1GdWxsID0gMSwg
QXV0b1ZhY3V1bUluY3JlbWVudGFsID0gMiB9OwotICAgIGJvb2wgdHVybk9uSW5jcmVtZW50YWxB
dXRvVmFjdXVtKCk7Ci0KICAgICAvLyBTZXQgdGhpcyBmbGFnIHRvIGFsbG93IGFjY2VzcyBmcm9t
IG11bHRpcGxlIHRocmVhZHMuICBOb3QgYWxsIG11bHRpLXRocmVhZGVkIGFjY2Vzc2VzIGFyZSBz
YWZlIQogICAgIC8vIFNlZSBodHRwOi8vd3d3LnNxbGl0ZS5vcmcvY3ZzdHJhYy93aWtpP3A9TXVs
dGlUaHJlYWRpbmcgZm9yIG1vcmUgaW5mby4KICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcAppbmRleCBlZjgxMzE3MjA0MDU2ZDQ3OTZhMWFhZWU2
NmFlZDkxNzMyMWQwZDFjLi44OTYzYWRiNzZjNWI5ZWY2NWYzY2JkNTE5YTI2ZDYxOGRiNTU1MDE5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAKQEAgLTY1LDE1ICs2
NSw2IEBAIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUoKQogICAgIExPRyhTUUxEYXRhYmFz
ZSwgIlNRTCAtIHByZXBhcmUgLSAlcyIsIG1fcXVlcnkuYXNjaWkoKS5kYXRhKCkpOwogICAgIFN0
cmluZyBzdHJpcHBlZFF1ZXJ5ID0gbV9xdWVyeS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICBpbnQg
ZXJyb3IgPSBzcWxpdGUzX3ByZXBhcmUxNl92MihtX2RhdGFiYXNlLnNxbGl0ZTNIYW5kbGUoKSwg
c3RyaXBwZWRRdWVyeS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLCAtMSwgJm1fc3Rh
dGVtZW50LCAmdGFpbCk7Ci0KLSAgICAvLyBTdGFydGluZyB3aXRoIHZlcnNpb24gMy42LjE2LCBz
cWxpdGUgaGFzIGEgcGF0Y2ggKGh0dHA6Ly93d3cuc3FsaXRlLm9yZy9zcmMvY2kvMjU2ZWMzYzZh
ZikKLSAgICAvLyB0aGF0IHNob3VsZCBtYWtlIHN1cmUgc3FsaXRlM19wcmVwYXJlMTZfdjIgZG9l
c24ndCByZXR1cm4gYSBTUUxJVEVfU0NIRU1BIGVycm9yLgotICAgIC8vIElmIHdlJ3JlIHVzaW5n
IGFuIG9sZGVyIHNxbGl0ZSB2ZXJzaW9uLCB0cnkgdG8gZW11bGF0ZSB0aGUgcGF0Y2guCi0gICAg
aWYgKGVycm9yID09IFNRTElURV9TQ0hFTUEpIHsKLSAgICAgIHNxbGl0ZTNfZmluYWxpemUobV9z
dGF0ZW1lbnQpOwotICAgICAgZXJyb3IgPSBzcWxpdGUzX3ByZXBhcmUxNl92MihtX2RhdGFiYXNl
LnNxbGl0ZTNIYW5kbGUoKSwgbV9xdWVyeS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigp
LCAtMSwgJm1fc3RhdGVtZW50LCAmdGFpbCk7Ci0gICAgfQotCiAgICAgaWYgKGVycm9yICE9IFNR
TElURV9PSykKICAgICAgICAgTE9HKFNRTERhdGFiYXNlLCAic3FsaXRlM19wcmVwYXJlMTYgZmFp
bGVkICglaSlcbiVzXG4lcyIsIGVycm9yLCBtX3F1ZXJ5LmFzY2lpKCkuZGF0YSgpLCBzcWxpdGUz
X2Vycm1zZyhtX2RhdGFiYXNlLnNxbGl0ZTNIYW5kbGUoKSkpOwogICAgIGNvbnN0IFVDaGFyKiBj
aCA9IHN0YXRpY19jYXN0PGNvbnN0IFVDaGFyKj4odGFpbCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvRGF0YWJhc2UuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmNwcAppbmRl
eCAwNjQ0ZGY1YWZiZTgyYmQ3NGNkNDMyNjJmMjM0MmJlZjYwYjhkYzc5Li5jYjYxZDQ4MzMyYzYy
MDMwNGU2NDFkYjQ3NDEwNTg2Y2EyOTU0MjlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2Uv
RGF0YWJhc2UuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAKQEAgLTU0Myw4
ICs1NDMsNiBAQCBib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShFeGNlcHRpb25D
b2RlJiBlKQogICAgICAgICBlID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9Ci0gICAgaWYgKCFtX3NxbGl0ZURhdGFiYXNlLnR1cm5PbkluY3JlbWVudGFs
QXV0b1ZhY3V1bSgpKQotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byB0dXJuIG9uIGluY3Jl
bWVudGFsIGF1dG8tdmFjdXVtIGZvciBkYXRhYmFzZSAlcyIsIG1fZmlsZW5hbWUuYXNjaWkoKS5k
YXRhKCkpOwogCiAgICAgQVNTRVJUKG1fZGF0YWJhc2VBdXRob3JpemVyKTsKICAgICBtX3NxbGl0
ZURhdGFiYXNlLnNldEF1dGhvcml6ZXIobV9kYXRhYmFzZUF1dGhvcml6ZXIpOwpAQCAtODEwLDE0
ICs4MDgsNiBAQCBTdHJpbmcgRGF0YWJhc2U6OmZpbGVOYW1lKCkgY29uc3QKICAgICByZXR1cm4g
bV9maWxlbmFtZS50aHJlYWRzYWZlQ29weSgpOwogfQogCi12b2lkIERhdGFiYXNlOjppbmNyZW1l
bnRhbFZhY3V1bUlmTmVlZGVkKCkKLXsKLSAgICBpbnQ2NF90IGZyZWVTcGFjZVNpemUgPSBtX3Nx
bGl0ZURhdGFiYXNlLmZyZWVTcGFjZVNpemUoKTsKLSAgICBpbnQ2NF90IHRvdGFsU2l6ZSA9IG1f
c3FsaXRlRGF0YWJhc2UudG90YWxTaXplKCk7Ci0gICAgaWYgKHRvdGFsU2l6ZSA8PSAxMCAqIGZy
ZWVTcGFjZVNpemUpCi0gICAgICAgIG1fc3FsaXRlRGF0YWJhc2UucnVuSW5jcmVtZW50YWxWYWN1
dW1Db21tYW5kKCk7Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oIGIv
V2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmgKaW5kZXggN2JmOWRjODYwOTA2NjVhMjQ4N2FiOTY2
MWU1YzQ2NjU5OTM1MDJlYi4uZjdiODhhMjdmODVjYjBjYzYwNTIwMzI0YjdjMzdiYmMyNGFiYmJl
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmgKKysrIGIvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlLmgKQEAgLTEzMyw4ICsxMzMsNiBAQCBwdWJsaWM6CiAgICAgU1FMVHJh
bnNhY3Rpb25DbGllbnQqIHRyYW5zYWN0aW9uQ2xpZW50KCkgY29uc3Q7CiAgICAgU1FMVHJhbnNh
Y3Rpb25Db29yZGluYXRvciogdHJhbnNhY3Rpb25Db29yZGluYXRvcigpIGNvbnN0OwogCi0gICAg
dm9pZCBpbmNyZW1lbnRhbFZhY3V1bUlmTmVlZGVkKCk7Ci0KIHByaXZhdGU6CiAgICAgRGF0YWJh
c2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLAog
ICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcm
IGRpc3BsYXlOYW1lLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9u
LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAKaW5kZXggMWIwMjc4OGU5
ODZkODU3ZDM5NjA1YmExMTZjYzQ0MzRmZDczODczMS4uZWE3ZGVlZWE2NzIyNGQ3M2UxYWViZjUx
MjlmMTBiYmU5M2NmOTRjMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0
aW9uLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCkBAIC00NjYs
OSArNDY2LDYgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdCgpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBUaGUgY29tbWl0IHdhcyBzdWNjZXNzZnVs
LCB2YWN1dW0gdGhlIGRhdGFiYXNlIGlmIG5lZWRlZAotICAgIG1fZGF0YWJhc2UtPmluY3JlbWVu
dGFsVmFjdXVtSWZOZWVkZWQoKTsKLQogICAgIC8vIFRoZSBjb21taXQgd2FzIHN1Y2Nlc3NmdWws
IG5vdGlmeSB0aGUgZGVsZWdhdGVzIGlmIHRoZSB0cmFuc2FjdGlvbiBtb2RpZmllZCB0aGlzIGRh
dGFiYXNlCiAgICAgaWYgKG1fbW9kaWZpZWREYXRhYmFzZSkKICAgICAgICAgbV9kYXRhYmFzZS0+
dHJhbnNhY3Rpb25DbGllbnQoKS0+ZGlkQ29tbWl0VHJhbnNhY3Rpb24odGhpcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54469</attachid>
            <date>2010-04-27 16:20:30 -0700</date>
            <delta_ts>2010-04-27 17:23:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>15089</size>
            <attacher name="Dumitru Daniliuc">dumi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODM0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDQtMjcgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUdXJuIG9uIEFVVE9fVkFDVVVNID0gSU5DUkVNRU5UQUwgZm9yIGFsbCBIVE1MNSBkYXRhYmFz
ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODE5
MQorCisgICAgICAgIFZhY3V1bSBhbGwgZGF0YWJhc2VzIHdoZW4gdGhlIG51bWJlciBvZiBmcmVl
IHBhZ2VzIGlzIGF0IGxlYXN0IDEwJQorICAgICAgICBvZiB0aGUgbnVtYmVyIG9mIHRvdGFsIHBh
Z2VzLiBBbHNvLCBhZGQgYSBndWFyZCBhZ2FpbnN0IGEgYnVnIHRoYXQKKyAgICAgICAgd2FzIGZp
eGVkIGluIFNRTGl0ZSBvbmx5IHN0YXJ0aW5nIHdpdGggdmVyc2lvbiAzLjYuMTYuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1FMaXRlRGF0YWJhc2U6Om1heGltdW1TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURh
dGFiYXNlOjpmcmVlU3BhY2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNl
Ojp0b3RhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OnJ1bkluY3Jl
bWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6
dHVybk9uSW5jcmVtZW50YWxBdXRvVmFjdXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjopOgorICAg
ICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50OjpwcmVwYXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudDo6c3RlcCk6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2U6OmluY3JlbWVudGFsVmFjdXVtSWZOZWVkZWQpOgorICAgICAgICAqIHN0
b3JhZ2UvRGF0YWJhc2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToK
KwogMjAxMC0wNC0yNyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjU4MzE4LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9z
cWwvU1FMaXRlRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmNwcAkocmV2aXNpb24gNTgzMzUpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiwxNCArMTAyLDE3
IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldEZ1bGxzeW5jKGJvb2wgZnMKIAogaW50NjRfdCBT
UUxpdGVEYXRhYmFzZTo6bWF4aW11bVNpemUoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2F1dGhvcml6ZXJMb2NrKTsKLSAgICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKLSAgICAKLSAg
ICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0aGlzLCAiUFJBR01BIG1heF9wYWdlX2NvdW50
Iik7Ci0gICAgaW50NjRfdCBzaXplID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDApICogcGFn
ZVNpemUoKTsKLSAgICAKLSAgICBlbmFibGVBdXRob3JpemVyKHRydWUpOwotICAgIHJldHVybiBz
aXplOworICAgIGludDY0X3QgbWF4UGFnZUNvdW50ID0gMDsKKworICAgIHsKKyAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fYXV0aG9yaXplckxvY2spOworICAgICAgICBlbmFibGVBdXRob3Jp
emVyKGZhbHNlKTsKKyAgICAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudCgqdGhpcywgIlBS
QUdNQSBtYXhfcGFnZV9jb3VudCIpOworICAgICAgICBtYXhQYWdlQ291bnQgPSBzdGF0ZW1lbnQu
Z2V0Q29sdW1uSW50NjQoMCk7CisgICAgICAgIGVuYWJsZUF1dGhvcml6ZXIodHJ1ZSk7CisgICAg
fQorCisgICAgcmV0dXJuIG1heFBhZ2VDb3VudCAqIHBhZ2VTaXplKCk7CiB9CiAKIHZvaWQgU1FM
aXRlRGF0YWJhc2U6OnNldE1heGltdW1TaXplKGludDY0X3Qgc2l6ZSkKQEAgLTE1MywxNCArMTU2
LDMzIEBAIGludCBTUUxpdGVEYXRhYmFzZTo6cGFnZVNpemUoKQogCiBpbnQ2NF90IFNRTGl0ZURh
dGFiYXNlOjpmcmVlU3BhY2VTaXplKCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRo
b3JpemVyTG9jayk7Ci0gICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7Ci0gICAgLy8gTm90ZTog
ZnJlZWxpc3RfY291bnQgd2FzIGFkZGVkIGluIFNRTGl0ZSAzLjQuMS4KLSAgICBTUUxpdGVTdGF0
ZW1lbnQgc3RhdGVtZW50KCp0aGlzLCAiUFJBR01BIGZyZWVsaXN0X2NvdW50Iik7Ci0gICAgaW50
NjRfdCBzaXplID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDApICogcGFnZVNpemUoKTsKKyAg
ICBpbnQ2NF90IGZyZWVsaXN0Q291bnQgPSAwOwogCi0gICAgZW5hYmxlQXV0aG9yaXplcih0cnVl
KTsKLSAgICByZXR1cm4gc2l6ZTsKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X2F1dGhvcml6ZXJMb2NrKTsKKyAgICAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CisgICAg
ICAgIC8vIE5vdGU6IGZyZWVsaXN0X2NvdW50IHdhcyBhZGRlZCBpbiBTUUxpdGUgMy40LjEuCisg
ICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoKnRoaXMsICJQUkFHTUEgZnJlZWxpc3Rf
Y291bnQiKTsKKyAgICAgICAgZnJlZWxpc3RDb3VudCA9IHN0YXRlbWVudC5nZXRDb2x1bW5JbnQ2
NCgwKTsKKyAgICAgICAgZW5hYmxlQXV0aG9yaXplcih0cnVlKTsKKyAgICB9CisKKyAgICByZXR1
cm4gZnJlZWxpc3RDb3VudCAqIHBhZ2VTaXplKCk7Cit9CisKK2ludDY0X3QgU1FMaXRlRGF0YWJh
c2U6OnRvdGFsU2l6ZSgpCit7CisgICAgaW50NjRfdCBwYWdlQ291bnQgPSAwOworCisgICAgewor
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CisgICAgICAgIGVu
YWJsZUF1dGhvcml6ZXIoZmFsc2UpOworICAgICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50
KCp0aGlzLCAiUFJBR01BIHBhZ2VfY291bnQiKTsKKyAgICAgICAgcGFnZUNvdW50ID0gc3RhdGVt
ZW50LmdldENvbHVtbkludDY0KDApOworICAgICAgICBlbmFibGVBdXRob3JpemVyKHRydWUpOwor
ICAgIH0KKworICAgIHJldHVybiBwYWdlQ291bnQgKiBwYWdlU2l6ZSgpOwogfQogCiB2b2lkIFNR
TGl0ZURhdGFiYXNlOjpzZXRTeW5jaHJvbm91cyhTeW5jaHJvbm91c1ByYWdtYSBzeW5jKQpAQCAt
MjI5LDYgKzI1MSwxNyBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpydW5WYWN1dW1Db21tYW5kKCkK
ICAgICAgICAgTE9HKFNRTERhdGFiYXNlLCAiVW5hYmxlIHRvIHZhY3V1bSBkYXRhYmFzZSAtICVz
IiwgbGFzdEVycm9yTXNnKCkpOwogfQogCit2b2lkIFNRTGl0ZURhdGFiYXNlOjpydW5JbmNyZW1l
bnRhbFZhY3V1bUNvbW1hbmQoKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2F1dGhvcml6
ZXJMb2NrKTsKKyAgICBlbmFibGVBdXRob3JpemVyKGZhbHNlKTsKKworICAgIGlmICghZXhlY3V0
ZUNvbW1hbmQoIlBSQUdNQSBpbmNyZW1lbnRhbF92YWN1dW0iKSkKKyAgICAgICAgTE9HKFNRTERh
dGFiYXNlLCAiVW5hYmxlIHRvIHJ1biBpbmNyZW1lbnRhbCB2YWN1dW0gLSAlcyIsIGxhc3RFcnJv
ck1zZygpKTsKKworICAgIGVuYWJsZUF1dGhvcml6ZXIodHJ1ZSk7Cit9CisKIGludDY0X3QgU1FM
aXRlRGF0YWJhc2U6Omxhc3RJbnNlcnRSb3dJRCgpCiB7CiAgICAgaWYgKCFtX2RiKQpAQCAtMzc5
LDQgKzQxMiwzNCBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjppc0F1dG9Db21taXRPbigpIGNvCiAg
ICAgcmV0dXJuIHNxbGl0ZTNfZ2V0X2F1dG9jb21taXQobV9kYik7CiB9CiAKK2Jvb2wgU1FMaXRl
RGF0YWJhc2U6OnR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSgpCit7CisgICAgU1FMaXRlU3Rh
dGVtZW50IHN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSBhdXRvX3ZhY3V1bSIpOworICAgIGludCBh
dXRvVmFjdXVtTW9kZSA9IHN0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCk7CisgICAgaW50IGVycm9y
ID0gbGFzdEVycm9yKCk7CisKKyAgICAvLyBDaGVjayBpZiB3ZSBnb3QgYW4gZXJyb3Igd2hpbGUg
dHJ5aW5nIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIGF1dG9fdmFjdXVtIGZsYWcuCisgICAgLy8g
SWYgd2UgZ290IGEgU1FMSVRFX0JVU1kgZXJyb3IsIHRoZW4gdGhlcmUncyBwcm9iYWJseSBhbm90
aGVyIHRyYW5zYWN0aW9uIGluCisgICAgLy8gcHJvZ3Jlc3Mgb24gdGhpcyBkYXRhYmFzZS4gSW4g
dGhpcyBjYXNlLCBrZWVwIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZQorICAgIC8vIGF1dG9fdmFj
dXVtIGZsYWcgYW5kIHRyeSB0byBzZXQgaXQgdG8gSU5DUkVNRU5UQUwgdGhlIG5leHQgdGltZSB3
ZSBvcGVuIHRoaXMKKyAgICAvLyBkYXRhYmFzZS4gSWYgdGhlIGVycm9yIGlzIG5vdCBTUUxJVEVf
QlVTWSwgdGhlbiB3ZSBwcm9iYWJseSByYW4gaW50byBhIG1vcmUKKyAgICAvLyBzZXJpb3VzIHBy
b2JsZW0gYW5kIHNob3VsZCByZXR1cm4gZmFsc2UgKHRvIGxvZyBhbiBlcnJvciBtZXNzYWdlKS4K
KyAgICBpZiAoZXJyb3IgIT0gU1FMSVRFX1JPVykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgc3dpdGNoIChhdXRvVmFjdXVtTW9kZSkgeworICAgIGNhc2UgQXV0b1ZhY3V1bUluY3JlbWVu
dGFsOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIEF1dG9WYWN1dW1GdWxsOgorICAg
ICAgICByZXR1cm4gZXhlY3V0ZUNvbW1hbmQoIlBSQUdNQSBhdXRvX3ZhY3V1bSA9IDIiKTsKKyAg
ICBjYXNlIEF1dG9WYWN1dW1Ob25lOgorICAgIGRlZmF1bHQ6CisgICAgICAgIGlmICghZXhlY3V0
ZUNvbW1hbmQoIlBSQUdNQSBhdXRvX3ZhY3V1bSA9IDIiKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcnVuVmFjdXVtQ29tbWFuZCgpOworICAgICAgICBlcnJvciA9IGxhc3RF
cnJvcigpOworICAgICAgICByZXR1cm4gKGVycm9yID09IFNRTElURV9PSyk7CisgICAgfQorfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxp
dGVEYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmgJKHJldmlzaW9uIDU4MzM1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCB0YWJsZUV4aXN0cyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNsZWFyQWxsVGFibGVz
KCk7CiAgICAgdm9pZCBydW5WYWN1dW1Db21tYW5kKCk7CisgICAgdm9pZCBydW5JbmNyZW1lbnRh
bFZhY3V1bUNvbW1hbmQoKTsKICAgICAKICAgICBib29sIHRyYW5zYWN0aW9uSW5Qcm9ncmVzcygp
IGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzOyB9CiAgICAgCkBAIC04NSw2
ICs4Niw3IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgdW51c2Vk
IGJ5dGVzIGluIHRoZSBkYXRhYmFzZSBmaWxlLgogICAgIGludDY0X3QgZnJlZVNwYWNlU2l6ZSgp
OworICAgIGludDY0X3QgdG90YWxTaXplKCk7CiAKICAgICAvLyBUaGUgU1FMaXRlIFNZTkNIUk9O
T1VTIHByYWdtYSBjYW4gYmUgZWl0aGVyIEZVTEwsIE5PUk1BTCwgb3IgT0ZGCiAgICAgLy8gRlVM
TCAtIEFueSB3cml0aW5nIGNhbGxzIHRvIHRoZSBEQiBibG9jayB1bnRpbCB0aGUgZGF0YSBpcyBh
Y3R1YWxseSBvbiB0aGUgZGlzayBzdXJmYWNlCkBAIC0xMDgsNiArMTEwLDE4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVubG9jaygpOwogICAgIGJvb2wgaXNBdXRvQ29tbWl0T24oKSBjb25zdDsKIAor
ICAgIC8vIFRoZSBTUUxpdGUgQVVUT19WQUNVVU0gcHJhZ21hIGNhbiBiZSBlaXRoZXIgTk9ORSwg
RlVMTCwgb3IgSU5DUkVNRU5UQUwuCisgICAgLy8gTk9ORSAtIFNRTGl0ZSBkb2VzIG5vdCBkbyBh
bnkgdmFjdXVtaW5nCisgICAgLy8gRlVMTCAtIFNRTGl0ZSBtb3ZlcyBhbGwgZW1wdHkgcGFnZXMg
dG8gdGhlIGVuZCBvZiB0aGUgREIgZmlsZSBhbmQgdHJ1bmNhdGVzCisgICAgLy8gICAgICAgIHRo
ZSBmaWxlIHRvIHJlbW92ZSB0aG9zZSBwYWdlcyBhZnRlciBldmVyeSB0cmFuc2FjdGlvbi4gVGhp
cyBvcHRpb24KKyAgICAvLyAgICAgICAgcmVxdWlyZXMgU1FMaXRlIHRvIHN0b3JlIGFkZGl0aW9u
YWwgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBwYWdlIGluCisgICAgLy8gICAgICAgIHRoZSBkYXRh
YmFzZSBmaWxlLgorICAgIC8vIElOQ1JFTUVOVEFMIC0gU1FMaXRlIHN0b3JlcyBleHRyYSBpbmZv
cm1hdGlvbiBmb3IgZWFjaCBwYWdlIGluIHRoZSBkYXRhYmFzZQorICAgIC8vICAgICAgICAgICAg
ICAgZmlsZSwgYnV0IHJlbW92ZXMgdGhlIGVtcHR5IHBhZ2VzIG9ubHkgd2hlbiBQUkFHTUEgSU5D
UkVNQU5UQUxfVkFDVVVNCisgICAgLy8gICAgICAgICAgICAgICBpcyBjYWxsZWQuCisgICAgZW51
bSBBdXRvVmFjdXVtUHJhZ21hIHsgQXV0b1ZhY3V1bU5vbmUgPSAwLCBBdXRvVmFjdXVtRnVsbCA9
IDEsIEF1dG9WYWN1dW1JbmNyZW1lbnRhbCA9IDIgfTsKKyAgICBib29sIHR1cm5PbkluY3JlbWVu
dGFsQXV0b1ZhY3V1bSgpOworCiAgICAgLy8gU2V0IHRoaXMgZmxhZyB0byBhbGxvdyBhY2Nlc3Mg
ZnJvbSBtdWx0aXBsZSB0aHJlYWRzLiAgTm90IGFsbCBtdWx0aS10aHJlYWRlZCBhY2Nlc3NlcyBh
cmUgc2FmZSEKICAgICAvLyBTZWUgaHR0cDovL3d3dy5zcWxpdGUub3JnL2N2c3RyYWMvd2lraT9w
PU11bHRpVGhyZWFkaW5nIGZvciBtb3JlIGluZm8uCiAjaWZuZGVmIE5ERUJVRwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlU3RhdGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiA1ODMzNSkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVN0YXRlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY1LDYgKzY1LDE1IEBAIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnByZXBhcmUoKQogICAgIExP
RyhTUUxEYXRhYmFzZSwgIlNRTCAtIHByZXBhcmUgLSAlcyIsIG1fcXVlcnkuYXNjaWkoKS5kYXRh
KCkpOwogICAgIFN0cmluZyBzdHJpcHBlZFF1ZXJ5ID0gbV9xdWVyeS5zdHJpcFdoaXRlU3BhY2Uo
KTsKICAgICBpbnQgZXJyb3IgPSBzcWxpdGUzX3ByZXBhcmUxNl92MihtX2RhdGFiYXNlLnNxbGl0
ZTNIYW5kbGUoKSwgc3RyaXBwZWRRdWVyeS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigp
LCAtMSwgJm1fc3RhdGVtZW50LCAmdGFpbCk7CisKKyAgICAvLyBTdGFydGluZyB3aXRoIHZlcnNp
b24gMy42LjE2LCBzcWxpdGUgaGFzIGEgcGF0Y2ggKGh0dHA6Ly93d3cuc3FsaXRlLm9yZy9zcmMv
Y2kvMjU2ZWMzYzZhZikKKyAgICAvLyB0aGF0IHNob3VsZCBtYWtlIHN1cmUgc3FsaXRlM19wcmVw
YXJlMTZfdjIgZG9lc24ndCByZXR1cm4gYSBTUUxJVEVfU0NIRU1BIGVycm9yLgorICAgIC8vIElm
IHdlJ3JlIHVzaW5nIGFuIG9sZGVyIHNxbGl0ZSB2ZXJzaW9uLCB0cnkgdG8gZW11bGF0ZSB0aGUg
cGF0Y2guCisgICAgaWYgKGVycm9yID09IFNRTElURV9TQ0hFTUEpIHsKKyAgICAgIHNxbGl0ZTNf
ZmluYWxpemUobV9zdGF0ZW1lbnQpOworICAgICAgZXJyb3IgPSBzcWxpdGUzX3ByZXBhcmUxNl92
MihtX2RhdGFiYXNlLnNxbGl0ZTNIYW5kbGUoKSwgbV9xdWVyeS5jaGFyYWN0ZXJzV2l0aE51bGxU
ZXJtaW5hdGlvbigpLCAtMSwgJm1fc3RhdGVtZW50LCAmdGFpbCk7CisgICAgfQorCiAgICAgaWYg
KGVycm9yICE9IFNRTElURV9PSykKICAgICAgICAgTE9HKFNRTERhdGFiYXNlLCAic3FsaXRlM19w
cmVwYXJlMTYgZmFpbGVkICglaSlcbiVzXG4lcyIsIGVycm9yLCBtX3F1ZXJ5LmFzY2lpKCkuZGF0
YSgpLCBzcWxpdGUzX2Vycm1zZyhtX2RhdGFiYXNlLnNxbGl0ZTNIYW5kbGUoKSkpOwogICAgIGNv
bnN0IFVDaGFyKiBjaCA9IHN0YXRpY19jYXN0PGNvbnN0IFVDaGFyKj4odGFpbCk7CkBAIC04Nyw2
ICs5Niw3IEBAIGludCBTUUxpdGVTdGF0ZW1lbnQ6OnN0ZXAoKQogICAgICAgICBMT0coU1FMRGF0
YWJhc2UsICJzcWxpdGUzX3N0ZXAgZmFpbGVkICglaSlcblF1ZXJ5IC0gJXNcbkVycm9yIC0gJXMi
LCAKICAgICAgICAgICAgIGVycm9yLCBtX3F1ZXJ5LmFzY2lpKCkuZGF0YSgpLCBzcWxpdGUzX2Vy
cm1zZyhtX2RhdGFiYXNlLnNxbGl0ZTNIYW5kbGUoKSkpOwogICAgIH0KKwogICAgIHJldHVybiBl
cnJvcjsKIH0KICAgICAKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmNwcAkocmV2aXNpb24gNTgzMzUpCisr
KyBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDMsNiAr
NTQzLDggQEAgYm9vbCBEYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkoRXhjZQogICAgICAg
ICBlID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Cisg
ICAgaWYgKCFtX3NxbGl0ZURhdGFiYXNlLnR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSgpKQor
ICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byB0dXJuIG9uIGluY3JlbWVudGFsIGF1dG8tdmFj
dXVtIGZvciBkYXRhYmFzZSAlcyIsIG1fZmlsZW5hbWUuYXNjaWkoKS5kYXRhKCkpOwogCiAgICAg
QVNTRVJUKG1fZGF0YWJhc2VBdXRob3JpemVyKTsKICAgICBtX3NxbGl0ZURhdGFiYXNlLnNldEF1
dGhvcml6ZXIobV9kYXRhYmFzZUF1dGhvcml6ZXIpOwpAQCAtODA4LDYgKzgxMCwxNCBAQCBTdHJp
bmcgRGF0YWJhc2U6OmZpbGVOYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9maWxlbmFtZS50aHJl
YWRzYWZlQ29weSgpOwogfQogCit2b2lkIERhdGFiYXNlOjppbmNyZW1lbnRhbFZhY3V1bUlmTmVl
ZGVkKCkKK3sKKyAgICBpbnQ2NF90IGZyZWVTcGFjZVNpemUgPSBtX3NxbGl0ZURhdGFiYXNlLmZy
ZWVTcGFjZVNpemUoKTsKKyAgICBpbnQ2NF90IHRvdGFsU2l6ZSA9IG1fc3FsaXRlRGF0YWJhc2Uu
dG90YWxTaXplKCk7CisgICAgaWYgKHRvdGFsU2l6ZSA8PSAxMCAqIGZyZWVTcGFjZVNpemUpCisg
ICAgICAgIG1fc3FsaXRlRGF0YWJhc2UucnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCk7Cit9
CisKICNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0UpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3RvcmFnZS9EYXRhYmFzZS5oCShyZXZpc2lvbiA1ODMzNSkKKysrIFdlYkNvcmUvc3RvcmFnZS9E
YXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsNiArMTMzLDggQEAgcHVibGljOgogICAg
IFNRTFRyYW5zYWN0aW9uQ2xpZW50KiB0cmFuc2FjdGlvbkNsaWVudCgpIGNvbnN0OwogICAgIFNR
TFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IqIHRyYW5zYWN0aW9uQ29vcmRpbmF0b3IoKSBjb25zdDsK
IAorICAgIHZvaWQgaW5jcmVtZW50YWxWYWN1dW1JZk5lZWRlZCgpOworCiBwcml2YXRlOgogICAg
IERhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
bmFtZSwKICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwgY29uc3Qg
U3RyaW5nJiBkaXNwbGF5TmFtZSwKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAko
cmV2aXNpb24gNTgzMzUpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NjYsNiArNDY2LDkgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6cG9z
dGZsaWdodEFuZENvbW1pdAogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgLy8gVGhlIGNv
bW1pdCB3YXMgc3VjY2Vzc2Z1bCwgdmFjdXVtIHRoZSBkYXRhYmFzZSBpZiBuZWVkZWQKKyAgICBt
X2RhdGFiYXNlLT5pbmNyZW1lbnRhbFZhY3V1bUlmTmVlZGVkKCk7CisKICAgICAvLyBUaGUgY29t
bWl0IHdhcyBzdWNjZXNzZnVsLCBub3RpZnkgdGhlIGRlbGVnYXRlcyBpZiB0aGUgdHJhbnNhY3Rp
b24gbW9kaWZpZWQgdGhpcyBkYXRhYmFzZQogICAgIGlmIChtX21vZGlmaWVkRGF0YWJhc2UpCiAg
ICAgICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uQ2xpZW50KCktPmRpZENvbW1pdFRyYW5zYWN0
aW9uKHRoaXMpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTgzNDIpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNC0yNyAgRHVtaXRy
dSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVzdGluZyB0aGUgZXhwZWN0ZWQgYW1vdW50IG9m
IHNwYWNlIHVzZWQgYnkgcXVvdGEtdHJhY2tpbmcuaHRtbC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MTkxCisKKyAgICAgICAgVGhlIGV4cGVjdGF0
aW9ucyBjaGFuZ2VkIGJlY2F1c2Ugb2YgQVVUT19WQUNVVU0ncyBvdmVyaGVhZC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL3F1b3RhLXRyYWNraW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL3F1
b3RhLXRyYWNraW5nLmh0bWw6CisKIDIwMTAtMDQtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI1ODMxOC4KSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQJKHJldmlzaW9uIDU4MzM1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yODc3LDYgKzI4NzcsMyBA
QCBCVUdXSzM4MTA2IE1BQyA6IHN2Zy9jdXN0b20vZG9taW5hbnQtYmFzCiAKIC8vIFN0YXJ0ZWQg
ZmFpbGluZyBhdCA1ODIxMgogQlVHV0szODEwOCBNQUMgOiBmYXN0L2JhY2tncm91bmRzL3NpemUv
Y29udGFpbi1hbmQtY292ZXIuaHRtbCA9IElNQUdFCi0KLS8vIFN0YXJ0ZWQgZmFpbGluZyBhZnRl
ciByZXZlcnQuCi1CVUdXSzM4MTkxIDogc3RvcmFnZS9xdW90YS10cmFja2luZy5odG1sID0gVElN
RU9VVCBURVhUCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3F1b3RhLXRyYWNraW5nLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3F1b3RhLXRyYWNraW5n
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTgzMzUpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3F1
b3RhLXRyYWNraW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAK
IFVJIERFTEVHQVRFIERBVEFCQVNFIENBTExCQUNLOiBleGNlZWRlZERhdGFiYXNlUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbjp7ZmlsZSwgLCAwfSBkYXRhYmFzZTpRdW90YU1hbmFnZW1lbnREYXRhYmFz
ZTIKIFRoaXMgdGVzdCBjaGVja3MgdG8gbWFrZSBzdXJlIHRoYXQgcXVvdGFzIGFyZSBlbmZvcmNl
ZCBwZXItb3JpZ2luIGluc3RlYWQgb2YgcGVyLWRhdGFiYXNlLCBhcyB0aGV5IHdlcmUgcHJpb3Ig
dG8gaHR0cDovL3RyYWMud2Via2l0Lm9yZy9wcm9qZWN0cy93ZWJraXQvY2hhbmdlc2V0LzI5OTgz
LgotVGhlIHRlc3QgY2xlYXJzIGFsbCBkYXRhYmFzZXMsIHNldHMgdGhlIHF1b3RhIGZvciB0aGUg
b3JpZ2luIHRvIDMyaywgdGhlbiB0cmllcyB0byBpbnNlcnQgMTdrIG9mIGRhdGEgaW50byB0d28g
ZGF0YWJhc2VzLiBJZiB0aGluZ3MgZ28gYXMgcGxhbm5lZCwgdGhlIFVJIERlbGVnYXRlIHdpbGwg
YmUgaW5mb3JtZWQgb2YgdGhlIGV4Y2VlZGVkIHF1b3RhIGFuZCBzaG91bGQgaW5jcmVhc2UgdGhl
IHF1b3RhIGZvciB0aGlzIG9yaWdpbi4gSW5zZXJ0aW5nIDE3ayBvZiBkYXRhIHRoZSB0aGlyZCB0
aW1lIHNob3VsZCBzdWNjZWVkIGFnYWluLgorVGhlIHRlc3QgY2xlYXJzIGFsbCBkYXRhYmFzZXMs
IHNldHMgdGhlIHF1b3RhIGZvciB0aGUgb3JpZ2luIHRvIDQwaywgdGhlbiB0cmllcyB0byBpbnNl
cnQgMTdrIG9mIGRhdGEgaW50byB0d28gZGF0YWJhc2VzLiBJZiB0aGluZ3MgZ28gYXMgcGxhbm5l
ZCwgdGhlIHNlY29uZCBpbnNlcnQgc2hvdWxkIGZhaWwsIHRoZSBVSSBEZWxlZ2F0ZSBzaG91bGQg
YmUgaW5mb3JtZWQgb2YgdGhlIGV4Y2VlZGVkIHF1b3RhIGFuZCBzaG91bGQgaW5jcmVhc2UgdGhl
IHF1b3RhIGZvciB0aGlzIG9yaWdpbi4gSW5zZXJ0aW5nIDE3ayBvZiBkYXRhIHRoZSB0aGlyZCB0
aW1lIHNob3VsZCBzdWNjZWVkIGFnYWluLgogQWRkaW5nIGEgdGFibGUKIEluc2VydGluZyBzb21l
IGRhdGEKIERvbmUgYWRkaW5nIGRhdGEKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvcXVvdGEt
dHJhY2tpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3F1b3RhLXRy
YWNraW5nLmh0bWwJKHJldmlzaW9uIDU4MzM1KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9xdW90
YS10cmFja2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKQogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcERhdGFiYXNlQ2FsbGJhY2tzKCk7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldERhdGFiYXNlUXVvdGEoMzI3NjgpOworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXREYXRhYmFzZVF1b3RhKDQwOTYwKTsKICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CiAgICAgfQpAQCAtMTA1LDcgKzEwNSw3IEBAIGZ1bmN0aW9uIHJ1blRl
c3QoKQogCiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CiBUaGlzIHRlc3QgY2hlY2tzIHRvIG1h
a2Ugc3VyZSB0aGF0IHF1b3RhcyBhcmUgZW5mb3JjZWQgcGVyLW9yaWdpbiBpbnN0ZWFkIG9mIHBl
ci1kYXRhYmFzZSwgYXMgdGhleSB3ZXJlIHByaW9yIHRvIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
cHJvamVjdHMvd2Via2l0L2NoYW5nZXNldC8yOTk4My48YnI+Ci1UaGUgdGVzdCBjbGVhcnMgYWxs
IGRhdGFiYXNlcywgc2V0cyB0aGUgcXVvdGEgZm9yIHRoZSBvcmlnaW4gdG8gMzJrLCB0aGVuIHRy
aWVzIHRvIGluc2VydCAxN2sgb2YgZGF0YSBpbnRvIHR3byBkYXRhYmFzZXMuIElmIHRoaW5ncyBn
byBhcyBwbGFubmVkLCB0aGUgVUkgRGVsZWdhdGUgd2lsbCBiZSBpbmZvcm1lZCBvZiB0aGUgZXhj
ZWVkZWQgcXVvdGEgYW5kIHNob3VsZCBpbmNyZWFzZSB0aGUgcXVvdGEgZm9yIHRoaXMgb3JpZ2lu
LiBJbnNlcnRpbmcgMTdrIG9mIGRhdGEgdGhlIHRoaXJkIHRpbWUgc2hvdWxkIHN1Y2NlZWQgYWdh
aW4uCitUaGUgdGVzdCBjbGVhcnMgYWxsIGRhdGFiYXNlcywgc2V0cyB0aGUgcXVvdGEgZm9yIHRo
ZSBvcmlnaW4gdG8gNDBrLCB0aGVuIHRyaWVzIHRvIGluc2VydCAxN2sgb2YgZGF0YSBpbnRvIHR3
byBkYXRhYmFzZXMuIElmIHRoaW5ncyBnbyBhcyBwbGFubmVkLCB0aGUgc2Vjb25kIGluc2VydCBz
aG91bGQgZmFpbCwgdGhlIFVJIERlbGVnYXRlIHNob3VsZCBiZSBpbmZvcm1lZCBvZiB0aGUgZXhj
ZWVkZWQgcXVvdGEgYW5kIHNob3VsZCBpbmNyZWFzZSB0aGUgcXVvdGEgZm9yIHRoaXMgb3JpZ2lu
LiBJbnNlcnRpbmcgMTdrIG9mIGRhdGEgdGhlIHRoaXJkIHRpbWUgc2hvdWxkIHN1Y2NlZWQgYWdh
aW4uCiA8cHJlIGlkPSJjb25zb2xlIj4KIDwvcHJlPgogPC9ib2R5Pgo=
</data>
<flag name="review"
          id="38470"
          type_id="1"
          status="-"
          setter="levin"
    />
    <flag name="commit-queue"
          id="38471"
          type_id="3"
          status="-"
          setter="dumi"
    />
          </attachment>
      

    </bug>

</bugzilla>