<?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>55159</bug_id>
          
          <creation_ts>2011-02-24 10:58:32 -0800</creation_ts>
          <short_desc>Variable-sized allocation (but still capped at 64 bytes)</short_desc>
          <delta_ts>2011-03-01 16:33:25 -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>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>
          <dependson>55274</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>357162</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-24 10:58:32 -0800</bug_when>
    <thetext>Variable-sized allocation (but still capped at 64 bytes)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357182</commentid>
    <comment_count>1</comment_count>
      <attachid>83683</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-24 11:11:02 -0800</bug_when>
    <thetext>Created attachment 83683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357230</commentid>
    <comment_count>2</comment_count>
      <attachid>83683</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-24 11:51:18 -0800</bug_when>
    <thetext>Comment on attachment 83683
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=83683&amp;action=review

&gt; Source/JavaScriptCore/runtime/JSCell.h:438
&gt; +        if (!result)
&gt; +            result = allocateSlowCase(bytes);
&gt; +        ASSERT(result);
&gt; +        return result;

I like early return better than this construction.

&gt; Source/JavaScriptCore/runtime/MarkedSpace.h:108
&gt; -        SizeClass m_sizeClass;
&gt; +        SizeClass m_precise[preciseCount];

I don’t think that an adjective like precise makes a good name for a data member.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357248</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-24 12:02:43 -0800</bug_when>
    <thetext>Attachment 83683 did not build on win:
Build output: http://queues.webkit.org/results/7981485</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357328</commentid>
    <comment_count>4</comment_count>
      <attachid>83708</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-24 13:21:31 -0800</bug_when>
    <thetext>Created attachment 83708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357424</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-24 14:58:54 -0800</bug_when>
    <thetext>Committed r79627: &lt;http://trac.webkit.org/changeset/79627&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357739</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-25 00:06:08 -0800</bug_when>
    <thetext>Worker tests are crashing since around this time:

Thread 8 Crashed:  WebCore: Worker
0   com.apple.JavaScriptCore      	0x00000001002b3907 JSC::MarkedBlock::destroy(JSC::MarkedBlock*) + 39 (MarkedBlock.cpp:44)
1   com.apple.JavaScriptCore      	0x000000010022ce48 JSC::MarkedSpace::freeBlocks(WTF::DoublyLinkedList&lt;JSC::MarkedBlock&gt;&amp;) + 392 (MarkedSpace.cpp:66)
2   com.apple.JavaScriptCore      	0x000000010022d593 JSC::MarkedSpace::shrink() + 163 (MarkedSpace.cpp:103)
3   com.apple.JavaScriptCore      	0x0000000100167ced JSC::Heap::destroy() + 109 (Heap.cpp:84)
4   com.apple.WebCore             	0x00000001013c43fc WebCore::WorkerScriptController::~WorkerScriptController() + 76 (WorkerScriptController.cpp:65)
5   com.apple.WebCore             	0x00000001013c7802 WebCore::WorkerThreadShutdownFinishTask::performTask(WebCore::ScriptExecutionContext*) + 50 (WorkerScriptController.h:48)
6   com.apple.WebCore             	0x00000001013c3841 WebCore::WorkerRunLoop::runInMode(WebCore::WorkerContext*, WebCore::ModePredicate const&amp;) + 385 (WorkerRunLoop.cpp:163)
7   com.apple.WebCore             	0x00000001013c3a1e WebCore::WorkerRunLoop::run(WebCore::WorkerContext*) + 238 (WorkerRunLoop.cpp:133)
8   com.apple.WebCore             	0x00000001013c71c0 WebCore::WorkerThread::workerThread() + 992 (WorkerThread.cpp:143)
9   libSystem.B.dylib             	0x00007fff859e3456 _pthread_start + 331
10  libSystem.B.dylib             	0x00007fff859e3309 thread_start + 13

Either this, or bug 55100 is to blame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360292</commentid>
    <comment_count>7</comment_count>
      <attachid>84306</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-01 15:19:18 -0800</bug_when>
    <thetext>Created attachment 84306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360294</commentid>
    <comment_count>8</comment_count>
      <attachid>84306</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-01 15:19:43 -0800</bug_when>
    <thetext>Comment on attachment 84306
Patch

Sam reviewed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360314</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-01 15:36:57 -0800</bug_when>
    <thetext>Committed r80052: &lt;http://trac.webkit.org/changeset/80052&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360372</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-01 16:33:25 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80052 might have broken Qt Linux Release
The following tests are not passing:
fast/canvas/canvas-strokePath-gradient-shadow.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83683</attachid>
            <date>2011-02-24 11:11:02 -0800</date>
            <delta_ts>2011-02-24 13:21:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55159-20110224111102.patch</filename>
            <type>text/plain</type>
            <size>13009</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzk1OTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAK
KzIwMTEtMDItMjQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBWYXJpYWJsZS1zaXplZCBh
bGxvY2F0aW9uIChidXQgc3RpbGwgY2FwcGVkIGF0IDY0IGJ5dGVzKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUxNTkKKyAgICAgICAgCisgICAgICAg
IFN1blNwaWRlciByZXBvcnRzIG5vIGNoYW5nZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LmV4cDogU29tZSBkYXksIEkgaG9wZSBub3QgdG8gaGF2ZSB0byBlZGl0IHRoaXMgZmlsZS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmFsbG9jYXRl
U2xvd0Nhc2UpOiBTcGxpdCBhbGxvY2F0aW9uIGludG8gYSBmYXN0IGFuZCBzbG93CisgICAgICAg
IGNhc2UsIHNvIHRoZSBmYXN0IGNhc2UgY2FuIGlubGluZSBzaXplIGNsYXNzIHNlbGVjdGlvbiBh
bmQgdHVybiBpdCBpbnRvCisgICAgICAgIGEgY29tcGlsZS10aW1lIGNvbnN0YW50LgorICAgICAg
ICAKKyAgICAgICAgQ2hhbmdlZCB0aGUgY29sbGVjdC1vbi1ldmVyeSBhbGxvY2F0aW9uIGRlYnVn
Z2luZyBzd2l0Y2ggdG8gY29sbGVjdCBvbmx5CisgICAgICAgIG9uIGV2ZXJ5IHNsb3cgYWxsb2Nh
dGlvbiwgc28geW91IGNhbiBzdGlsbCBmbGlwIHRoZSBzd2l0Y2ggd2l0aG91dAorICAgICAgICBy
ZWNvbXBpbGluZyB0aGUgd29ybGQuIFRoaXMgbWF5IGFsc28gYmUgcHJlZmVyYWJsZSBmb3IgZGVi
dWdnaW5nIHB1cnBvc2VzLAorICAgICAgICBzaW5jZSBjb2xsZWN0aW5nIGFmdGVyIGV2ZXJ5IHNp
bmdsZSBhbGxvY2F0aW9uIGNhbiBiZSB1bnVzYWJseSBzbG93LAorICAgICAgICBhbmQgY2FuIG1h
c2sgcHJvYmxlbXMgYnkgcnVubmluZyBkZXN0cnVjdG9ycyBlYXJseS4KKworICAgICAgICAqIHJ1
bnRpbWUvSGVhcC5oOiBEaXR0by4KKworICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAg
ICAgIChKU0M6OkpTQ2VsbDo6TWFya2VkU3BhY2U6OnNpemVDbGFzc0Zvcik6CisgICAgICAgIChK
U0M6OkpTQ2VsbDo6SGVhcDo6YWxsb2NhdGUpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OkpTQ2Vs
bDo6b3BlcmF0b3IgbmV3KTogVGhlIGlubGluaW5nIG1lbnRpb25lIGFib3ZlLgorCisgICAgICAg
ICogcnVudGltZS9NYXJrZWRCbG9jay5oOiBEcm9wcGVkIHRoZSBibG9jayBzaXplIGZyb20gMjU2
S0IgdG8gMTZLQi4gV2l0aAorICAgICAgICBtdWx0aXBsZSBzaXplIGNsYXNzZXMsIGFsbG9jYXRp
bmcgYSBmdWxsIDI1NktCIGZvciB0aGUgZmlyc3QgYWxsb2NhdGlvbgorICAgICAgICBpbiBhIGdp
dmVuIGNsYXNzIGNhbiBiZSBwYXRob2xvZ2ljYWxseSB3YXN0ZWZ1bC4gKDhLQiwgb3IgNEtCIE1h
YyBhbmQKKyAgICAgICAgOEtCIFdpbmRvd3MsIHdvdWxkIGJlIGV2ZW4gYmV0dGVyLCBidXQgdGhh
dCBzZWVtcyB0byBiZSBhIHBlZm9ybWFuY2UKKyAgICAgICAgcmVncmVzc2lvbiBmb3Igbm93LikK
KyAgICAgICAgCisgICAgICAgICogcnVudGltZS9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAgIChK
U0M6Ok1hcmtlZFNwYWNlOjpNYXJrZWRTcGFjZSk6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNl
OjphbGxvY2F0ZUJsb2NrKToKKyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OnJlc2V0KTogVGhl
cmUncyBtb3JlIHRoYW4gb25lIHNpemUgY2xhc3Mgbm93LCBhbmQgaXRzCisgICAgICAgIGNlbGwg
c2l6ZSBpcyBub3QgY29uc3RhbnQuCisKKyAgICAgICAgKiBydW50aW1lL01hcmtlZFNwYWNlLmg6
CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpTaXplQ2xhc3M6OlNpemVDbGFzcyk6IERpdHRv
LgorCiAyMDExLTAyLTI0ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9uIDc5NTEyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSw3
IEBAIF9fWk4zSlNDMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRVBOU18KIF9fWk4zSlNDMTFK
U0J5dGVBcnJheTEzc19kZWZhdWx0SW5mb0UKIF9fWk4zSlNDMTFKU0J5dGVBcnJheTE1Y3JlYXRl
U3RydWN0dXJlRU5TXzdKU1ZhbHVlRVBLTlNfOUNsYXNzSW5mb0UKIF9fWk4zSlNDMTFKU0J5dGVB
cnJheUMxRVBOU185RXhlY1N0YXRlRU4zV1RGMTdOb25OdWxsUGFzc1JlZlB0cklOU185U3RydWN0
dXJlRUVFUE5TM185Qnl0ZUFycmF5RQorX19aTjNKU0MxMU1hcmtlZFNwYWNlMjFhbGxvY2F0ZUZy
b21TaXplQ2xhc3NFUk5TMF85U2l6ZUNsYXNzRQogX19aTjNKU0MxMVBhcnNlckFyZW5hNXJlc2V0
RXYKIF9fWk4zSlNDMTFjaGVja1N5bnRheEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwU291cmNlQ29k
ZUUKIF9fWk4zSlNDMTFjcmVhdGVFcnJvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQpA
QCAtMjA4LDYgKzIwOSw3IEBAIF9fWk4zSlNDMjRjcmVhdGVTdGFja092ZXJmbG93RXJyb3JFUE5T
XzkKIF9fWk4zSlNDMjVldmFsdWF0ZUluR2xvYmFsQ2FsbEZyYW1lRVJLTlNfN1VTdHJpbmdFUk5T
XzdKU1ZhbHVlRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0MzNWNyZWF0ZUludGVycnVw
dGVkRXhlY3V0aW9uRXhjZXB0aW9uRVBOU18xMkpTR2xvYmFsRGF0YUUKIF9fWk4zSlNDM05hTkUK
K19fWk4zSlNDNEhlYXAxNmFsbG9jYXRlU2xvd0Nhc2VFbQogX19aTjNKU0M0SGVhcDE2b2JqZWN0
VHlwZUNvdW50c0V2CiBfX1pOM0pTQzRIZWFwMTdjb2xsZWN0QWxsR2FyYmFnZUV2CiBfX1pOM0pT
QzRIZWFwMTdnbG9iYWxPYmplY3RDb3VudEV2CkBAIC0yMTksNyArMjIxLDYgQEAgX19aTjNKU0M0
SGVhcDI5cmVwb3J0RXh0cmFNZW1vcnlDb3N0U2xvdwogX19aTjNKU0M0SGVhcDZpc0J1c3lFdgog
X19aTjNKU0M0SGVhcDdkZXN0cm95RXYKIF9fWk4zSlNDNEhlYXA3cHJvdGVjdEVOU183SlNWYWx1
ZUUKLV9fWk4zSlNDNEhlYXA4YWxsb2NhdGVFbQogX19aTjNKU0M0SGVhcDl1bnByb3RlY3RFTlNf
N0pTVmFsdWVFCiBfX1pOM0pTQzRZYXJyMTFZYXJyUGF0dGVybkMxRVJLTlNfN1VTdHJpbmdFYmJQ
UEtjCiBfX1pOM0pTQzRZYXJyMTFieXRlQ29tcGlsZUVSTlMwXzExWWFyclBhdHRlcm5FUE4zV1RG
MjBCdW1wUG9pbnRlckFsbG9jYXRvckUKQEAgLTIzOSw2ICsyNDAsNyBAQCBfX1pOM0pTQzZKU0Nl
bGw5Z2V0T2JqZWN0RXYKIF9fWk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFTlNfMTRKU0xv
Y2tCZWhhdmlvckUKIF9fWk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFUE5TXzlFeGVjU3Rh
dGVFCiBfX1pOM0pTQzZKU0xvY2sxMkRyb3BBbGxMb2Nrc0QxRXYKK19fWk4zSlNDNkpTTG9jazI2
Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2tFdgogX19aTjNKU0M2SlNMb2NrNGxvY2tFTlNfMTRK
U0xvY2tCZWhhdmlvckUKIF9fWk4zSlNDNkpTTG9jazZ1bmxvY2tFTlNfMTRKU0xvY2tCZWhhdmlv
ckUKIF9fWk4zSlNDNkpTTG9jazlsb2NrQ291bnRFdgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSGVhcC5jcHAJKHJldmlzaW9uIDc5NTEyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICNp
bmNsdWRlICJUcmFjaW5nLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCi0jZGVmaW5lIENPTExF
Q1RfT05fRVZFUllfQUxMT0NBVElPTiAwCisjZGVmaW5lIENPTExFQ1RfT05fRVZFUllfU0xPV19B
TExPQ0FUSU9OIDAKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtMTAyLDI3ICsxMDIsMjcg
QEAgdm9pZCBIZWFwOjpyZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZQogICAgIG1fZXh0cmFD
b3N0ICs9IGNvc3Q7CiB9CiAKLXZvaWQqIEhlYXA6OmFsbG9jYXRlKHNpemVfdCBzKQordm9pZCog
SGVhcDo6YWxsb2NhdGVTbG93Q2FzZShzaXplX3QgYnl0ZXMpCiB7CiAgICAgQVNTRVJUKGdsb2Jh
bERhdGEoKS0+aWRlbnRpZmllclRhYmxlID09IHd0ZlRocmVhZERhdGEoKS5jdXJyZW50SWRlbnRp
ZmllclRhYmxlKCkpOwogICAgIEFTU0VSVChKU0xvY2s6OmxvY2tDb3VudCgpID4gMCk7CiAgICAg
QVNTRVJUKEpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSk7Ci0gICAgQVNTRVJU
X1VOVVNFRChzLCBzIDw9IE1hcmtlZFNwYWNlOjpjZWxsU2l6ZSk7CisgICAgQVNTRVJUKGJ5dGVz
IDw9IE1hcmtlZFNwYWNlOjptYXhDZWxsU2l6ZSk7CiAgICAgQVNTRVJUKG1fb3BlcmF0aW9uSW5Q
cm9ncmVzcyA9PSBOb09wZXJhdGlvbik7CiAKLSNpZiBDT0xMRUNUX09OX0VWRVJZX0FMTE9DQVRJ
T04KKyNpZiBDT0xMRUNUX09OX0VWRVJZX1NMT1dfQUxMT0NBVElPTgogICAgIGNvbGxlY3RBbGxH
YXJiYWdlKCk7CiAgICAgQVNTRVJUKG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9PSBOb09wZXJhdGlv
bik7CiAjZW5kaWYKIAogICAgIG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9IEFsbG9jYXRpb247Ci0g
ICAgdm9pZCogcmVzdWx0ID0gbV9tYXJrZWRTcGFjZS5hbGxvY2F0ZShzKTsKKyAgICB2b2lkKiBy
ZXN1bHQgPSBtX21hcmtlZFNwYWNlLmFsbG9jYXRlKGJ5dGVzKTsKICAgICBtX29wZXJhdGlvbklu
UHJvZ3Jlc3MgPSBOb09wZXJhdGlvbjsKICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICByZXNl
dChEb05vdFN3ZWVwKTsKIAogICAgICAgICBtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPSBBbGxvY2F0
aW9uOwotICAgICAgICByZXN1bHQgPSBtX21hcmtlZFNwYWNlLmFsbG9jYXRlKHMpOworICAgICAg
ICByZXN1bHQgPSBtX21hcmtlZFNwYWNlLmFsbG9jYXRlKGJ5dGVzKTsKICAgICAgICAgbV9vcGVy
YXRpb25JblByb2dyZXNzID0gTm9PcGVyYXRpb247CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSGVhcC5oCShyZXZpc2lvbiA3OTUxMikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4dHJhQ29z
dCA9IDI1NjsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhFeHRyYUNvc3QgPSAxMDI0
ICogMTAyNDsKIAorICAgICAgICB2b2lkKiBhbGxvY2F0ZVNsb3dDYXNlKHNpemVfdCk7CiAgICAg
ICAgIHZvaWQgcmVwb3J0RXh0cmFNZW1vcnlDb3N0U2xvd0Nhc2Uoc2l6ZV90KTsKIAogICAgICAg
ICB2b2lkIG1hcmtSb290cygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmgJKHJldmlzaW9uIDc5NTEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDb25z
dHJ1Y3REYXRhLmgiCiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkpTSW1tZWRpYXRlLmgi
CisjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIk1h
cmtTdGFjay5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgpAQCAtMTc0LDE2ICsxNzUsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgfQogCi0gICAgaW5saW5lIHZvaWQqIEpTQ2VsbDo6
b3BlcmF0b3IgbmV3KHNpemVfdCBzaXplLCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCi0gICAg
ewotICAgICAgICByZXR1cm4gZ2xvYmFsRGF0YS0+aGVhcC5hbGxvY2F0ZShzaXplKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgdm9pZCogSlNDZWxsOjpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUsIEV4
ZWNTdGF0ZSogZXhlYykKLSAgICB7Ci0gICAgICAgIHJldHVybiBleGVjLT5oZWFwKCktPmFsbG9j
YXRlKHNpemUpOwotICAgIH0KLQogICAgIC8vIC0tLSBKU1ZhbHVlIGlubGluZXMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNTdHJpbmco
KSBjb25zdApAQCAtNDE3LDkgKzQwOCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQogICAgIAotICAgIGlubGluZSBNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzJiBN
YXJrZWRTcGFjZTo6c2l6ZUNsYXNzRm9yKHNpemVfdCkKKyAgICBpbmxpbmUgTWFya2VkU3BhY2U6
OlNpemVDbGFzcyYgTWFya2VkU3BhY2U6OnNpemVDbGFzc0ZvcihzaXplX3QgYnl0ZXMpCiAgICAg
ewotICAgICAgICByZXR1cm4gbV9zaXplQ2xhc3M7CisgICAgICAgIEFTU0VSVChieXRlcyAmJiBi
eXRlcyA8PSBwcmVjaXNlQ3V0b2ZmKTsKKyAgICAgICAgcmV0dXJuIG1fcHJlY2lzZVsoYnl0ZXMg
LSAxKSAvIHByZWNpc2VTdGVwXTsKICAgICB9CiAKICAgICBpbmxpbmUgdm9pZCogTWFya2VkU3Bh
Y2U6OmFsbG9jYXRlKHNpemVfdCBieXRlcykKQEAgLTQyNyw2ICs0MTksMzQgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIFNpemVDbGFzcyYgc2l6ZUNsYXNzID0gc2l6ZUNsYXNzRm9yKGJ5dGVz
KTsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlRnJvbVNpemVDbGFzcyhzaXplQ2xhc3MpOwogICAg
IH0KKyAgICAKKyAgICBpbmxpbmUgdm9pZCogSGVhcDo6YWxsb2NhdGUoc2l6ZV90IGJ5dGVzKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKGdsb2JhbERhdGEoKS0+aWRlbnRpZmllclRhYmxlID09IHd0
ZlRocmVhZERhdGEoKS5jdXJyZW50SWRlbnRpZmllclRhYmxlKCkpOworICAgICAgICBBU1NFUlQo
SlNMb2NrOjpsb2NrQ291bnQoKSA+IDApOworICAgICAgICBBU1NFUlQoSlNMb2NrOjpjdXJyZW50
VGhyZWFkSXNIb2xkaW5nTG9jaygpKTsKKyAgICAgICAgQVNTRVJUKGJ5dGVzIDw9IE1hcmtlZFNw
YWNlOjptYXhDZWxsU2l6ZSk7CisgICAgICAgIEFTU0VSVChtX29wZXJhdGlvbkluUHJvZ3Jlc3Mg
PT0gTm9PcGVyYXRpb24pOworCisgICAgICAgIG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9IEFsbG9j
YXRpb247CisgICAgICAgIHZvaWQqIHJlc3VsdCA9IG1fbWFya2VkU3BhY2UuYWxsb2NhdGUoYnl0
ZXMpOworICAgICAgICBtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPSBOb09wZXJhdGlvbjsKKworICAg
ICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJlc3VsdCA9IGFsbG9jYXRlU2xvd0Nhc2Uo
Ynl0ZXMpOworICAgICAgICBBU1NFUlQocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCogSlNDZWxsOjpvcGVyYXRvciBuZXcoc2l6ZV90IHNp
emUsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKKyAgICB7CisgICAgICAgIHJldHVybiBnbG9i
YWxEYXRhLT5oZWFwLmFsbG9jYXRlKHNpemUpOworICAgIH0KKworICAgIGlubGluZSB2b2lkKiBK
U0NlbGw6Om9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwgRXhlY1N0YXRlKiBleGVjKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGV4ZWMtPmhlYXAoKS0+YWxsb2NhdGUoc2l6ZSk7CisgICAgfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFya2VkQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXJrZWRCbG9jay5oCShyZXZpc2lvbiA3OTUxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcmtlZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBNYXJrZWRCbG9jayB7CiAgICAgcHVibGljOgor
ICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21TaXplID0gc2l6ZW9mKGRvdWJsZSk7IC8v
IEVuc3VyZXMgbmF0dXJhbCBhbGlnbm1lbnQgZm9yIGFsbCBidWlsdC1pbiB0eXBlcy4KKwogICAg
ICAgICBzdGF0aWMgTWFya2VkQmxvY2sqIGNyZWF0ZShKU0dsb2JhbERhdGEqLCBzaXplX3QgY2Vs
bFNpemUpOwogICAgICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KE1hcmtlZEJsb2NrKik7CiAKQEAg
LTgzLDE0ICs4NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgRnVuY3Rvcj4gdm9pZCBmb3JFYWNoKEZ1bmN0b3ImKTsKIAogICAgIHByaXZhdGU6Ci0jaWYg
T1MoV0lOQ0UpIHx8IE9TKFNZTUJJQU4pIHx8IFBMQVRGT1JNKEJSRVdNUCkKLSAgICAgICAgc3Rh
dGljIGNvbnN0IHNpemVfdCBibG9ja1NpemUgPSA2NCAqIEtCOwotI2Vsc2UKLSAgICAgICAgc3Rh
dGljIGNvbnN0IHNpemVfdCBibG9ja1NpemUgPSAyNTYgKiBLQjsKLSNlbmRpZgorICAgICAgICBz
dGF0aWMgY29uc3Qgc2l6ZV90IGJsb2NrU2l6ZSA9IDE2ICogS0I7CiAgICAgICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgYmxvY2tNYXNrID0gfihibG9ja1NpemUgLSAxKTsgLy8gYmxvY2tTaXplIG11
c3QgYmUgYSBwb3dlciBvZiB0d28uCiAKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBhdG9t
U2l6ZSA9IHNpemVvZihkb3VibGUpOyAvLyBFbnN1cmVzIG5hdHVyYWwgYWxpZ25tZW50IGZvciBh
bGwgYnVpbHQtaW4gdHlwZXMuCiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYXRvbU1hc2sg
PSB+KGF0b21TaXplIC0gMSk7IC8vIGF0b21TaXplIG11c3QgYmUgYSBwb3dlciBvZiB0d28uCiAg
ICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21zUGVyQmxvY2sgPSBibG9j
a1NpemUgLyBhdG9tU2l6ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
cmtlZFNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXJrZWRTcGFjZS5jcHAJKHJldmlzaW9uIDc5NTEyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw4
IEBAIE1hcmtlZFNwYWNlOjpNYXJrZWRTcGFjZShKU0dsb2JhbERhdGEqIGcKICAgICAsIG1faGln
aFdhdGVyTWFyaygwKQogICAgICwgbV9nbG9iYWxEYXRhKGdsb2JhbERhdGEpCiB7CisgICAgZm9y
IChzaXplX3QgY2VsbFNpemUgPSBwcmVjaXNlU3RlcDsgY2VsbFNpemUgPD0gcHJlY2lzZUN1dG9m
ZjsgY2VsbFNpemUgKz0gcHJlY2lzZVN0ZXApCisgICAgICAgIHNpemVDbGFzc0ZvcihjZWxsU2l6
ZSkuY2VsbFNpemUgPSBjZWxsU2l6ZTsKIH0KIAogdm9pZCBNYXJrZWRTcGFjZTo6ZGVzdHJveSgp
CkBAIC00NSw3ICs0Nyw3IEBAIHZvaWQgTWFya2VkU3BhY2U6OmRlc3Ryb3koKQogCiBNYXJrZWRC
bG9jayogTWFya2VkU3BhY2U6OmFsbG9jYXRlQmxvY2soU2l6ZUNsYXNzJiBzaXplQ2xhc3MpCiB7
Ci0gICAgTWFya2VkQmxvY2sqIGJsb2NrID0gTWFya2VkQmxvY2s6OmNyZWF0ZShnbG9iYWxEYXRh
KCksIGNlbGxTaXplKTsKKyAgICBNYXJrZWRCbG9jayogYmxvY2sgPSBNYXJrZWRCbG9jazo6Y3Jl
YXRlKGdsb2JhbERhdGEoKSwgc2l6ZUNsYXNzLmNlbGxTaXplKTsKICAgICBzaXplQ2xhc3MuYmxv
Y2tMaXN0LmFwcGVuZChibG9jayk7CiAgICAgc2l6ZUNsYXNzLm5leHRCbG9jayA9IGJsb2NrOwog
ICAgIG1fYmxvY2tzLmFkZChibG9jayk7CkBAIC0xNDMsOSArMTQ1LDExIEBAIHNpemVfdCBNYXJr
ZWRTcGFjZTo6Y2FwYWNpdHkoKSBjb25zdAogCiB2b2lkIE1hcmtlZFNwYWNlOjpyZXNldCgpCiB7
Ci0gICAgbV9zaXplQ2xhc3MucmVzZXQoKTsKICAgICBtX3dhdGVyTWFyayA9IDA7CiAKKyAgICBm
b3IgKHNpemVfdCBjZWxsU2l6ZSA9IHByZWNpc2VTdGVwOyBjZWxsU2l6ZSA8PSBwcmVjaXNlQ3V0
b2ZmOyBjZWxsU2l6ZSArPSBwcmVjaXNlU3RlcCkKKyAgICAgICAgc2l6ZUNsYXNzRm9yKGNlbGxT
aXplKS5yZXNldCgpOworCiAgICAgQmxvY2tJdGVyYXRvciBlbmQgPSBtX2Jsb2Nrcy5lbmQoKTsK
ICAgICBmb3IgKEJsb2NrSXRlcmF0b3IgaXQgPSBtX2Jsb2Nrcy5iZWdpbigpOyBpdCAhPSBlbmQ7
ICsraXQpCiAgICAgICAgICgqaXQpLT5yZXNldCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5oCShyZXZpc2lvbiA3OTUxMikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDggKzMyLDggQEAKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKLSNkZWZpbmUgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChjbGFzcykgQ09N
UElMRV9BU1NFUlQoc2l6ZW9mKGNsYXNzKSA8PSBNYXJrZWRTcGFjZTo6Y2VsbFNpemUsIGNsYXNz
X2ZpdHNfaW5fY2VsbCkKLSNkZWZpbmUgQVNTRVJUX0NMQVNTX0ZJTExTX0NFTEwoY2xhc3MpIENP
TVBJTEVfQVNTRVJUKHNpemVvZihjbGFzcykgPT0gTWFya2VkU3BhY2U6OmNlbGxTaXplLCBjbGFz
c19maWxsc19jZWxsKQorI2RlZmluZSBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKGNsYXNzKSBD
T01QSUxFX0FTU0VSVChzaXplb2YoY2xhc3MpIDw9IE1hcmtlZFNwYWNlOjptYXhDZWxsU2l6ZSwg
Y2xhc3NfZml0c19pbl9jZWxsKQorI2RlZmluZSBBU1NFUlRfQ0xBU1NfRklMTFNfQ0VMTChjbGFz
cykgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKGNsYXNzKSA9PSBNYXJrZWRTcGFjZTo6bWF4Q2VsbFNp
emUsIGNsYXNzX2ZpbGxzX2NlbGwpCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC00OCw3ICs0OCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNYXJrZWRT
cGFjZSk7CiAgICAgcHVibGljOgogICAgICAgICAvLyBDdXJyZW50bHkgcHVibGljIGZvciB1c2Ug
aW4gYXNzZXJ0aW9ucy4KLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBjZWxsU2l6ZSA9IDY0
OworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heENlbGxTaXplID0gNjQ7CiAKICAgICAg
ICAgc3RhdGljIEhlYXAqIGhlYXAoSlNDZWxsKik7CiAKQEAgLTgxLDYgKzgxLDExIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGZvckVh
Y2goRnVuY3RvciYpOwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gWyA4LCAxNi4uLiA2NCBd
CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcHJlY2lzZVN0ZXAgPSBNYXJrZWRCbG9jazo6
YXRvbVNpemU7CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcHJlY2lzZUN1dG9mZiA9IG1h
eENlbGxTaXplOworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHByZWNpc2VDb3VudCA9IHBy
ZWNpc2VDdXRvZmYgLyBwcmVjaXNlU3RlcDsKKwogICAgICAgICB0eXBlZGVmIEhhc2hTZXQ8TWFy
a2VkQmxvY2sqPjo6aXRlcmF0b3IgQmxvY2tJdGVyYXRvcjsKIAogICAgICAgICBzdHJ1Y3QgU2l6
ZUNsYXNzIHsKQEAgLTg5LDYgKzk0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgICAg
IE1hcmtlZEJsb2NrKiBuZXh0QmxvY2s7CiAgICAgICAgICAgICBEb3VibHlMaW5rZWRMaXN0PE1h
cmtlZEJsb2NrPiBibG9ja0xpc3Q7CisgICAgICAgICAgICBzaXplX3QgY2VsbFNpemU7CiAgICAg
ICAgIH07CiAKICAgICAgICAgTWFya2VkQmxvY2sqIGFsbG9jYXRlQmxvY2soU2l6ZUNsYXNzJik7
CkBAIC05OSw3ICsxMDUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIGNsZWFy
TWFya3MoTWFya2VkQmxvY2sqKTsKIAotICAgICAgICBTaXplQ2xhc3MgbV9zaXplQ2xhc3M7Cisg
ICAgICAgIFNpemVDbGFzcyBtX3ByZWNpc2VbcHJlY2lzZUNvdW50XTsKICAgICAgICAgSGFzaFNl
dDxNYXJrZWRCbG9jayo+IG1fYmxvY2tzOwogICAgICAgICBzaXplX3QgbV93YXRlck1hcms7CiAg
ICAgICAgIHNpemVfdCBtX2hpZ2hXYXRlck1hcms7CkBAIC0xNDcsNiArMTUzLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgCiAgICAgaW5saW5lIE1hcmtlZFNwYWNlOjpTaXplQ2xhc3M6OlNpemVD
bGFzcygpCiAgICAgICAgIDogbmV4dEJsb2NrKDApCisgICAgICAgICwgY2VsbFNpemUoMCkKICAg
ICB7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83708</attachid>
            <date>2011-02-24 13:21:31 -0800</date>
            <delta_ts>2011-03-01 15:19:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55159-20110224132130.patch</filename>
            <type>text/plain</type>
            <size>14657</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzk2MDUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAK
KzIwMTEtMDItMjQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBWYXJpYWJsZS1zaXplZCBh
bGxvY2F0aW9uIChidXQgc3RpbGwgY2FwcGVkIGF0IDY0IGJ5dGVzKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUxNTkKKyAgICAgICAgCisgICAgICAg
IFN1blNwaWRlciByZXBvcnRzIG5vIGNoYW5nZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LmV4cDogU29tZSBkYXksIEkgaG9wZSBub3QgdG8gaGF2ZSB0byBlZGl0IHRoaXMgZmlsZS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmFsbG9jYXRl
U2xvd0Nhc2UpOiBTcGxpdCBhbGxvY2F0aW9uIGludG8gYSBmYXN0IGFuZCBzbG93CisgICAgICAg
IGNhc2UsIHNvIHRoZSBmYXN0IGNhc2UgY2FuIGlubGluZSBzaXplIGNsYXNzIHNlbGVjdGlvbiBh
bmQgdHVybiBpdCBpbnRvCisgICAgICAgIGEgY29tcGlsZS10aW1lIGNvbnN0YW50LgorICAgICAg
ICAKKyAgICAgICAgQ2hhbmdlZCB0aGUgY29sbGVjdC1vbi1ldmVyeSBhbGxvY2F0aW9uIGRlYnVn
Z2luZyBzd2l0Y2ggdG8gY29sbGVjdCBvbmx5CisgICAgICAgIG9uIGV2ZXJ5IHNsb3cgYWxsb2Nh
dGlvbiwgc28geW91IGNhbiBzdGlsbCBmbGlwIHRoZSBzd2l0Y2ggd2l0aG91dAorICAgICAgICBy
ZWNvbXBpbGluZyB0aGUgd29ybGQuIFRoaXMgbWF5IGFsc28gYmUgcHJlZmVyYWJsZSBmb3IgZGVi
dWdnaW5nIHB1cnBvc2VzLAorICAgICAgICBzaW5jZSBjb2xsZWN0aW5nIGFmdGVyIGV2ZXJ5IHNp
bmdsZSBhbGxvY2F0aW9uIGNhbiBiZSB1bnVzYWJseSBzbG93LAorICAgICAgICBhbmQgY2FuIG1h
c2sgcHJvYmxlbXMgYnkgcnVubmluZyBkZXN0cnVjdG9ycyBlYXJseS4KKworICAgICAgICAqIHJ1
bnRpbWUvSGVhcC5oOiBEaXR0by4KKworICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAg
ICAgIChKU0M6OkpTQ2VsbDo6TWFya2VkU3BhY2U6OnNpemVDbGFzc0Zvcik6CisgICAgICAgIChK
U0M6OkpTQ2VsbDo6SGVhcDo6YWxsb2NhdGUpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OkpTQ2Vs
bDo6b3BlcmF0b3IgbmV3KTogVGhlIGlubGluaW5nIG1lbnRpb25lZCBhYm92ZS4KKworICAgICAg
ICAqIHJ1bnRpbWUvTWFya2VkQmxvY2suaDogRHJvcHBlZCB0aGUgYmxvY2sgc2l6ZSBmcm9tIDI1
NktCIHRvIDE2S0IuIFdpdGgKKyAgICAgICAgbXVsdGlwbGUgc2l6ZSBjbGFzc2VzLCBhbGxvY2F0
aW5nIGEgZnVsbCAyNTZLQiBmb3IgdGhlIGZpcnN0IGFsbG9jYXRpb24KKyAgICAgICAgaW4gYSBn
aXZlbiBjbGFzcyBjYW4gYmUgcGF0aG9sb2dpY2FsbHkgd2FzdGVmdWwuICg4S0IsIG9yIDRLQiBN
YWMgYW5kCisgICAgICAgIDhLQiBXaW5kb3dzLCB3b3VsZCBiZSBldmVuIGJldHRlciwgYnV0IHRo
YXQgc2VlbXMgdG8gYmUgYSBwZWZvcm1hbmNlCisgICAgICAgIHJlZ3Jlc3Npb24gZm9yIG5vdy4p
CisgICAgICAgIAorICAgICAgICAqIHJ1bnRpbWUvTWFya2VkU3BhY2UuY3BwOgorICAgICAgICAo
SlNDOjpNYXJrZWRTcGFjZTo6TWFya2VkU3BhY2UpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFj
ZTo6YWxsb2NhdGVCbG9jayk6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpyZXNldCk6IFRo
ZXJlJ3MgbW9yZSB0aGFuIG9uZSBzaXplIGNsYXNzIG5vdywgYW5kIGl0cworICAgICAgICBjZWxs
IHNpemUgaXMgbm90IGNvbnN0YW50LgorCisgICAgICAgICogcnVudGltZS9NYXJrZWRTcGFjZS5o
OgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzOjpTaXplQ2xhc3MpOiBEaXR0
by4KKwogMjAxMS0wMi0yNCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCShyZXZpc2lvbiA3OTYwNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsx
MTUsNyBAQCBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVQTlNfCiBfX1pOM0pT
QzExSlNCeXRlQXJyYXkxM3NfZGVmYXVsdEluZm9FCiBfX1pOM0pTQzExSlNCeXRlQXJyYXkxNWNy
ZWF0ZVN0cnVjdHVyZUVOU183SlNWYWx1ZUVQS05TXzlDbGFzc0luZm9FCiBfX1pOM0pTQzExSlNC
eXRlQXJyYXlDMUVQTlNfOUV4ZWNTdGF0ZUVOM1dURjE3Tm9uTnVsbFBhc3NSZWZQdHJJTlNfOVN0
cnVjdHVyZUVFRVBOUzNfOUJ5dGVBcnJheUUKK19fWk4zSlNDMTFNYXJrZWRTcGFjZTIxYWxsb2Nh
dGVGcm9tU2l6ZUNsYXNzRVJOUzBfOVNpemVDbGFzc0UKIF9fWk4zSlNDMTFQYXJzZXJBcmVuYTVy
ZXNldEV2CiBfX1pOM0pTQzExY2hlY2tTeW50YXhFUE5TXzlFeGVjU3RhdGVFUktOU18xMFNvdXJj
ZUNvZGVFCiBfX1pOM0pTQzExY3JlYXRlRXJyb3JFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmlu
Z0UKQEAgLTIwOCw2ICsyMDksNyBAQCBfX1pOM0pTQzI0Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9y
RVBOU185CiBfX1pOM0pTQzI1ZXZhbHVhdGVJbkdsb2JhbENhbGxGcmFtZUVSS05TXzdVU3RyaW5n
RVJOU183SlNWYWx1ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDMzVjcmVhdGVJbnRl
cnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbkVQTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzNO
YU5FCitfX1pOM0pTQzRIZWFwMTZhbGxvY2F0ZVNsb3dDYXNlRW0KIF9fWk4zSlNDNEhlYXAxNm9i
amVjdFR5cGVDb3VudHNFdgogX19aTjNKU0M0SGVhcDE3Y29sbGVjdEFsbEdhcmJhZ2VFdgogX19a
TjNKU0M0SGVhcDE3Z2xvYmFsT2JqZWN0Q291bnRFdgpAQCAtMjE5LDcgKzIyMSw2IEBAIF9fWk4z
SlNDNEhlYXAyOXJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3cKIF9fWk4zSlNDNEhlYXA2aXNCdXN5
RXYKIF9fWk4zSlNDNEhlYXA3ZGVzdHJveUV2CiBfX1pOM0pTQzRIZWFwN3Byb3RlY3RFTlNfN0pT
VmFsdWVFCi1fX1pOM0pTQzRIZWFwOGFsbG9jYXRlRW0KIF9fWk4zSlNDNEhlYXA5dW5wcm90ZWN0
RU5TXzdKU1ZhbHVlRQogX19aTjNKU0M0WWFycjExWWFyclBhdHRlcm5DMUVSS05TXzdVU3RyaW5n
RWJiUFBLYwogX19aTjNKU0M0WWFycjExYnl0ZUNvbXBpbGVFUk5TMF8xMVlhcnJQYXR0ZXJuRVBO
M1dURjIwQnVtcFBvaW50ZXJBbGxvY2F0b3JFCkBAIC0yMzksNiArMjQwLDcgQEAgX19aTjNKU0M2
SlNDZWxsOWdldE9iamVjdEV2CiBfX1pOM0pTQzZKU0xvY2sxMkRyb3BBbGxMb2Nrc0MxRU5TXzE0
SlNMb2NrQmVoYXZpb3JFCiBfX1pOM0pTQzZKU0xvY2sxMkRyb3BBbGxMb2Nrc0MxRVBOU185RXhl
Y1N0YXRlRQogX19aTjNKU0M2SlNMb2NrMTJEcm9wQWxsTG9ja3NEMUV2CitfX1pOM0pTQzZKU0xv
Y2syNmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrRXYKIF9fWk4zSlNDNkpTTG9jazRsb2NrRU5T
XzE0SlNMb2NrQmVoYXZpb3JFCiBfX1pOM0pTQzZKU0xvY2s2dW5sb2NrRU5TXzE0SlNMb2NrQmVo
YXZpb3JFCiBfX1pOM0pTQzZKU0xvY2s5bG9ja0NvdW50RXYKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZGVmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCShyZXZpc2lvbiA3OTYw
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw5
IEBAIEVYUE9SVFMKICAgICA/YWRkUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbkBTdHJ1Y3R1cmVA
SlNDQEBRQUVJQUJWSWRlbnRpZmllckAyQElQQVZKU0NlbGxAMkBAWgogICAgID9hZGRTbG93Q2Fz
ZUBJZGVudGlmaWVyQEpTQ0BAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAV1RG
QEBQQVZFeGVjU3RhdGVAMkBQQVZTdHJpbmdJbXBsQDRAQFoKICAgICA/YWxsb2NhdGVASGVhcEBK
U0NAQFFBRVBBWElAWgorICAgID9hbGxvY2F0ZUZyb21TaXplQ2xhc3NATWFya2VkU3BhY2VASlND
QEBBQUVQQVhBQVVTaXplQ2xhc3NAMTJAQFoKICAgICA/YWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2VA
SlNPYmplY3RASlNDQEBRQUVYSUlAWgorICAgID9hbGxvY2F0ZVNsb3dDYXNlQEhlYXBASlNDQEBB
QUVQQVhJQFoKICAgICA/YWxsb2NhdGVTdGFja0BNYXJrU3RhY2tASlNDQEBDQVBBWElAWgogICAg
ID9hcHBlbmRAU3RyaW5nQnVpbGRlckBXVEZAQFFBRVhQQkRJQFoKICAgICA/YXBwZW5kQFN0cmlu
Z0J1aWxkZXJAV1RGQEBRQUVYUEJfV0lAWgpAQCAtMTExLDYgKzExMyw3IEBAIEVYUE9SVFMKICAg
ICA/Y3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXJAV1RGQEBZQUlYWgogICAgID9jcnlwdG9n
cmFwaGljYWxseVJhbmRvbVZhbHVlc0BXVEZAQFlBWFBBWElAWgogICAgID9jdXJyZW50VGhyZWFk
QFdURkBAWUFJWFoKKyAgICA/Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2tASlNMb2NrQEpTQ0BA
U0FfTlhaCiAgICAgP2N1cnJlbnRUaW1lQFdURkBAWUFOWFoKICAgICA/ZGF0YUBDU3RyaW5nQFdU
RkBAUUJFUEJEWFoKICAgICA/ZGF0ZVRvRGF5c0Zyb20xOTcwQFdURkBAWUFOSEhIQFoKQEAgLTIy
NSw2ICsyMjgsNyBAQCBFWFBPUlRTCiAgICAgP2xvY2tASlNMb2NrQEpTQ0BAU0FYVzRKU0xvY2tC
ZWhhdmlvckAyQEBaCiAgICAgP2xvY2tATXV0ZXhAV1RGQEBRQUVYWFoKICAgICA/bG9ja0F0b21p
Y2FsbHlJbml0aWFsaXplZFN0YXRpY011dGV4QFdURkBAWUFYWFoKKyAgICA/bG9ja0NvdW50QEpT
TG9ja0BKU0NAQFNBSFhaCiAgICAgP2xvb2t1cEdldHRlckBKU09iamVjdEBKU0NAQFVBRT9BVkpT
VmFsdWVAMkBQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQFoKICAgICA/bG9va3VwU2V0
dGVyQEpTT2JqZWN0QEpTQ0BAVUFFP0FWSlNWYWx1ZUAyQFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50
aWZpZXJAMkBAWgogICAgID9tYXJrQ2hpbGRyZW5ASlNHbG9iYWxPYmplY3RASlNDQEBVQUVYQUFW
TWFya1N0YWNrQDJAQFoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuY3Bw
CShyZXZpc2lvbiA3OTYwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiVHJhY2luZy5o
IgogI2luY2x1ZGUgPGFsZ29yaXRobT4KIAotI2RlZmluZSBDT0xMRUNUX09OX0VWRVJZX0FMTE9D
QVRJT04gMAorI2RlZmluZSBDT0xMRUNUX09OX0VWRVJZX1NMT1dfQUxMT0NBVElPTiAwCiAKIHVz
aW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTEwMiwyOSArMTAyLDI0IEBAIHZvaWQgSGVhcDo6cmVw
b3J0RXh0cmFNZW1vcnlDb3N0U2xvd0Nhc2UKICAgICBtX2V4dHJhQ29zdCArPSBjb3N0OwogfQog
Ci12b2lkKiBIZWFwOjphbGxvY2F0ZShzaXplX3QgcykKK3ZvaWQqIEhlYXA6OmFsbG9jYXRlU2xv
d0Nhc2Uoc2l6ZV90IGJ5dGVzKQogewogICAgIEFTU0VSVChnbG9iYWxEYXRhKCktPmlkZW50aWZp
ZXJUYWJsZSA9PSB3dGZUaHJlYWREYXRhKCkuY3VycmVudElkZW50aWZpZXJUYWJsZSgpKTsKICAg
ICBBU1NFUlQoSlNMb2NrOjpsb2NrQ291bnQoKSA+IDApOwogICAgIEFTU0VSVChKU0xvY2s6OmN1
cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkpOwotICAgIEFTU0VSVF9VTlVTRUQocywgcyA8PSBN
YXJrZWRTcGFjZTo6Y2VsbFNpemUpOworICAgIEFTU0VSVChieXRlcyA8PSBNYXJrZWRTcGFjZTo6
bWF4Q2VsbFNpemUpOwogICAgIEFTU0VSVChtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPT0gTm9PcGVy
YXRpb24pOwogCi0jaWYgQ09MTEVDVF9PTl9FVkVSWV9BTExPQ0FUSU9OCisjaWYgQ09MTEVDVF9P
Tl9FVkVSWV9TTE9XX0FMTE9DQVRJT04KICAgICBjb2xsZWN0QWxsR2FyYmFnZSgpOwogICAgIEFT
U0VSVChtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPT0gTm9PcGVyYXRpb24pOwogI2VuZGlmCiAKKyAg
ICByZXNldChEb05vdFN3ZWVwKTsKKwogICAgIG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9IEFsbG9j
YXRpb247Ci0gICAgdm9pZCogcmVzdWx0ID0gbV9tYXJrZWRTcGFjZS5hbGxvY2F0ZShzKTsKKyAg
ICB2b2lkKiByZXN1bHQgPSBtX21hcmtlZFNwYWNlLmFsbG9jYXRlKGJ5dGVzKTsKICAgICBtX29w
ZXJhdGlvbkluUHJvZ3Jlc3MgPSBOb09wZXJhdGlvbjsKLSAgICBpZiAoIXJlc3VsdCkgewotICAg
ICAgICByZXNldChEb05vdFN3ZWVwKTsKLQotICAgICAgICBtX29wZXJhdGlvbkluUHJvZ3Jlc3Mg
PSBBbGxvY2F0aW9uOwotICAgICAgICByZXN1bHQgPSBtX21hcmtlZFNwYWNlLmFsbG9jYXRlKHMp
OwotICAgICAgICBtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPSBOb09wZXJhdGlvbjsKLSAgICB9CiAK
ICAgICBBU1NFUlQocmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0hlYXAuaAkocmV2aXNpb24gNzk2MDUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtaW5FeHRyYUNv
c3QgPSAyNTY7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4RXh0cmFDb3N0ID0gMTAy
NCAqIDEwMjQ7CiAKKyAgICAgICAgdm9pZCogYWxsb2NhdGVTbG93Q2FzZShzaXplX3QpOwogICAg
ICAgICB2b2lkIHJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNlKHNpemVfdCk7CiAKICAgICAg
ICAgdm9pZCBtYXJrUm9vdHMoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5oCShyZXZpc2lvbiA3OTYwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ29u
c3RydWN0RGF0YS5oIgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0ltbWVkaWF0ZS5o
IgorI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJN
YXJrU3RhY2suaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKQEAgLTE3NCwxNiArMTc1LDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAotICAgIGlubGluZSB2b2lkKiBKU0NlbGw6
Om9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGdsb2JhbERhdGEtPmhlYXAuYWxsb2NhdGUoc2l6ZSk7Ci0gICAg
fQotCi0gICAgaW5saW5lIHZvaWQqIEpTQ2VsbDo6b3BlcmF0b3IgbmV3KHNpemVfdCBzaXplLCBF
eGVjU3RhdGUqIGV4ZWMpCi0gICAgewotICAgICAgICByZXR1cm4gZXhlYy0+aGVhcCgpLT5hbGxv
Y2F0ZShzaXplKTsKLSAgICB9Ci0KICAgICAvLyAtLS0gSlNWYWx1ZSBpbmxpbmVzIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzU3RyaW5n
KCkgY29uc3QKQEAgLTQxNyw5ICs0MDgsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KICAgICAKLSAgICBpbmxpbmUgTWFya2VkU3BhY2U6OlNpemVDbGFzcyYg
TWFya2VkU3BhY2U6OnNpemVDbGFzc0ZvcihzaXplX3QpCisgICAgaW5saW5lIE1hcmtlZFNwYWNl
OjpTaXplQ2xhc3MmIE1hcmtlZFNwYWNlOjpzaXplQ2xhc3NGb3Ioc2l6ZV90IGJ5dGVzKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIG1fc2l6ZUNsYXNzOworICAgICAgICBBU1NFUlQoYnl0ZXMgJiYg
Ynl0ZXMgPD0gcHJlY2lzZUN1dG9mZik7CisgICAgICAgIHJldHVybiBtX3ByZWNpc2VTaXplQ2xh
c3Nlc1soYnl0ZXMgLSAxKSAvIHByZWNpc2VTdGVwXTsKICAgICB9CiAKICAgICBpbmxpbmUgdm9p
ZCogTWFya2VkU3BhY2U6OmFsbG9jYXRlKHNpemVfdCBieXRlcykKQEAgLTQyNyw2ICs0MTksMzMg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNpemVDbGFzcyYgc2l6ZUNsYXNzID0gc2l6ZUNs
YXNzRm9yKGJ5dGVzKTsKICAgICAgICAgcmV0dXJuIGFsbG9jYXRlRnJvbVNpemVDbGFzcyhzaXpl
Q2xhc3MpOwogICAgIH0KKyAgICAKKyAgICBpbmxpbmUgdm9pZCogSGVhcDo6YWxsb2NhdGUoc2l6
ZV90IGJ5dGVzKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGdsb2JhbERhdGEoKS0+aWRlbnRpZmll
clRhYmxlID09IHd0ZlRocmVhZERhdGEoKS5jdXJyZW50SWRlbnRpZmllclRhYmxlKCkpOworICAg
ICAgICBBU1NFUlQoSlNMb2NrOjpsb2NrQ291bnQoKSA+IDApOworICAgICAgICBBU1NFUlQoSlNM
b2NrOjpjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKTsKKyAgICAgICAgQVNTRVJUKGJ5dGVz
IDw9IE1hcmtlZFNwYWNlOjptYXhDZWxsU2l6ZSk7CisgICAgICAgIEFTU0VSVChtX29wZXJhdGlv
bkluUHJvZ3Jlc3MgPT0gTm9PcGVyYXRpb24pOworCisgICAgICAgIG1fb3BlcmF0aW9uSW5Qcm9n
cmVzcyA9IEFsbG9jYXRpb247CisgICAgICAgIHZvaWQqIHJlc3VsdCA9IG1fbWFya2VkU3BhY2Uu
YWxsb2NhdGUoYnl0ZXMpOworICAgICAgICBtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPSBOb09wZXJh
dGlvbjsKKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisK
KyAgICAgICAgcmV0dXJuIGFsbG9jYXRlU2xvd0Nhc2UoYnl0ZXMpOworICAgIH0KKworICAgIGlu
bGluZSB2b2lkKiBKU0NlbGw6Om9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwgSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdsb2JhbERhdGEtPmhlYXAuYWxs
b2NhdGUoc2l6ZSk7CisgICAgfQorCisgICAgaW5saW5lIHZvaWQqIEpTQ2VsbDo6b3BlcmF0b3Ig
bmV3KHNpemVfdCBzaXplLCBFeGVjU3RhdGUqIGV4ZWMpCisgICAgeworICAgICAgICByZXR1cm4g
ZXhlYy0+aGVhcCgpLT5hbGxvY2F0ZShzaXplKTsKKyAgICB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRCbG9jay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZEJsb2NrLmgJ
KHJldmlzaW9uIDc5NjA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2Vk
QmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgIGNsYXNzIE1hcmtlZEJsb2NrIHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgYXRvbVNpemUgPSBzaXplb2YoZG91YmxlKTsgLy8gRW5zdXJlcyBuYXR1cmFs
IGFsaWdubWVudCBmb3IgYWxsIGJ1aWx0LWluIHR5cGVzLgorCiAgICAgICAgIHN0YXRpYyBNYXJr
ZWRCbG9jayogY3JlYXRlKEpTR2xvYmFsRGF0YSosIHNpemVfdCBjZWxsU2l6ZSk7CiAgICAgICAg
IHN0YXRpYyB2b2lkIGRlc3Ryb3koTWFya2VkQmxvY2sqKTsKIApAQCAtODMsMTQgKzg1LDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lk
IGZvckVhY2goRnVuY3RvciYpOwogCiAgICAgcHJpdmF0ZToKLSNpZiBPUyhXSU5DRSkgfHwgT1Mo
U1lNQklBTikgfHwgUExBVEZPUk0oQlJFV01QKQotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90
IGJsb2NrU2l6ZSA9IDY0ICogS0I7Ci0jZWxzZQotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90
IGJsb2NrU2l6ZSA9IDI1NiAqIEtCOwotI2VuZGlmCisgICAgICAgIHN0YXRpYyBjb25zdCBzaXpl
X3QgYmxvY2tTaXplID0gMTYgKiBLQjsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBibG9j
a01hc2sgPSB+KGJsb2NrU2l6ZSAtIDEpOyAvLyBibG9ja1NpemUgbXVzdCBiZSBhIHBvd2VyIG9m
IHR3by4KIAotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21TaXplID0gc2l6ZW9mKGRv
dWJsZSk7IC8vIEVuc3VyZXMgbmF0dXJhbCBhbGlnbm1lbnQgZm9yIGFsbCBidWlsdC1pbiB0eXBl
cy4KICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBhdG9tTWFzayA9IH4oYXRvbVNpemUgLSAx
KTsgLy8gYXRvbVNpemUgbXVzdCBiZSBhIHBvd2VyIG9mIHR3by4KICAgICAgICAgCiAgICAgICAg
IHN0YXRpYyBjb25zdCBzaXplX3QgYXRvbXNQZXJCbG9jayA9IGJsb2NrU2l6ZSAvIGF0b21TaXpl
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmNw
cAkocmV2aXNpb24gNzk2MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJr
ZWRTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDggQEAgTWFya2VkU3BhY2U6
Ok1hcmtlZFNwYWNlKEpTR2xvYmFsRGF0YSogZwogICAgICwgbV9oaWdoV2F0ZXJNYXJrKDApCiAg
ICAgLCBtX2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKIHsKKyAgICBmb3IgKHNpemVfdCBjZWxsU2l6
ZSA9IHByZWNpc2VTdGVwOyBjZWxsU2l6ZSA8PSBwcmVjaXNlQ3V0b2ZmOyBjZWxsU2l6ZSArPSBw
cmVjaXNlU3RlcCkKKyAgICAgICAgc2l6ZUNsYXNzRm9yKGNlbGxTaXplKS5jZWxsU2l6ZSA9IGNl
bGxTaXplOwogfQogCiB2b2lkIE1hcmtlZFNwYWNlOjpkZXN0cm95KCkKQEAgLTQ1LDcgKzQ3LDcg
QEAgdm9pZCBNYXJrZWRTcGFjZTo6ZGVzdHJveSgpCiAKIE1hcmtlZEJsb2NrKiBNYXJrZWRTcGFj
ZTo6YWxsb2NhdGVCbG9jayhTaXplQ2xhc3MmIHNpemVDbGFzcykKIHsKLSAgICBNYXJrZWRCbG9j
ayogYmxvY2sgPSBNYXJrZWRCbG9jazo6Y3JlYXRlKGdsb2JhbERhdGEoKSwgY2VsbFNpemUpOwor
ICAgIE1hcmtlZEJsb2NrKiBibG9jayA9IE1hcmtlZEJsb2NrOjpjcmVhdGUoZ2xvYmFsRGF0YSgp
LCBzaXplQ2xhc3MuY2VsbFNpemUpOwogICAgIHNpemVDbGFzcy5ibG9ja0xpc3QuYXBwZW5kKGJs
b2NrKTsKICAgICBzaXplQ2xhc3MubmV4dEJsb2NrID0gYmxvY2s7CiAgICAgbV9ibG9ja3MuYWRk
KGJsb2NrKTsKQEAgLTE0Myw5ICsxNDUsMTEgQEAgc2l6ZV90IE1hcmtlZFNwYWNlOjpjYXBhY2l0
eSgpIGNvbnN0CiAKIHZvaWQgTWFya2VkU3BhY2U6OnJlc2V0KCkKIHsKLSAgICBtX3NpemVDbGFz
cy5yZXNldCgpOwogICAgIG1fd2F0ZXJNYXJrID0gMDsKIAorICAgIGZvciAoc2l6ZV90IGNlbGxT
aXplID0gcHJlY2lzZVN0ZXA7IGNlbGxTaXplIDw9IHByZWNpc2VDdXRvZmY7IGNlbGxTaXplICs9
IHByZWNpc2VTdGVwKQorICAgICAgICBzaXplQ2xhc3NGb3IoY2VsbFNpemUpLnJlc2V0KCk7CisK
ICAgICBCbG9ja0l0ZXJhdG9yIGVuZCA9IG1fYmxvY2tzLmVuZCgpOwogICAgIGZvciAoQmxvY2tJ
dGVyYXRvciBpdCA9IG1fYmxvY2tzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAg
KCppdCktPnJlc2V0KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJr
ZWRTcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
cmtlZFNwYWNlLmgJKHJldmlzaW9uIDc5NjA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWFya2VkU3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsOCBAQAogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotI2Rl
ZmluZSBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKGNsYXNzKSBDT01QSUxFX0FTU0VSVChzaXpl
b2YoY2xhc3MpIDw9IE1hcmtlZFNwYWNlOjpjZWxsU2l6ZSwgY2xhc3NfZml0c19pbl9jZWxsKQot
I2RlZmluZSBBU1NFUlRfQ0xBU1NfRklMTFNfQ0VMTChjbGFzcykgQ09NUElMRV9BU1NFUlQoc2l6
ZW9mKGNsYXNzKSA9PSBNYXJrZWRTcGFjZTo6Y2VsbFNpemUsIGNsYXNzX2ZpbGxzX2NlbGwpCisj
ZGVmaW5lIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoY2xhc3MpIENPTVBJTEVfQVNTRVJUKHNp
emVvZihjbGFzcykgPD0gTWFya2VkU3BhY2U6Om1heENlbGxTaXplLCBjbGFzc19maXRzX2luX2Nl
bGwpCisjZGVmaW5lIEFTU0VSVF9DTEFTU19GSUxMU19DRUxMKGNsYXNzKSBDT01QSUxFX0FTU0VS
VChzaXplb2YoY2xhc3MpID09IE1hcmtlZFNwYWNlOjptYXhDZWxsU2l6ZSwgY2xhc3NfZmlsbHNf
Y2VsbCkKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQ4LDcgKzQ4LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1hcmtlZFNwYWNlKTsKICAgICBwdWJs
aWM6CiAgICAgICAgIC8vIEN1cnJlbnRseSBwdWJsaWMgZm9yIHVzZSBpbiBhc3NlcnRpb25zLgot
ICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGNlbGxTaXplID0gNjQ7CisgICAgICAgIHN0YXRp
YyBjb25zdCBzaXplX3QgbWF4Q2VsbFNpemUgPSA2NDsKIAogICAgICAgICBzdGF0aWMgSGVhcCog
aGVhcChKU0NlbGwqKTsKIApAQCAtODEsNiArODEsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQgZm9yRWFjaChGdW5jdG9yJik7CiAK
ICAgICBwcml2YXRlOgorICAgICAgICAvLyBbIDgsIDE2Li4uIDY0IF0KKyAgICAgICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBwcmVjaXNlU3RlcCA9IE1hcmtlZEJsb2NrOjphdG9tU2l6ZTsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBwcmVjaXNlQ3V0b2ZmID0gbWF4Q2VsbFNpemU7CisgICAg
ICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcHJlY2lzZUNvdW50ID0gcHJlY2lzZUN1dG9mZiAvIHBy
ZWNpc2VTdGVwOworCiAgICAgICAgIHR5cGVkZWYgSGFzaFNldDxNYXJrZWRCbG9jayo+OjppdGVy
YXRvciBCbG9ja0l0ZXJhdG9yOwogCiAgICAgICAgIHN0cnVjdCBTaXplQ2xhc3MgewpAQCAtODks
NiArOTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICAgICAgTWFya2VkQmxvY2sqIG5l
eHRCbG9jazsKICAgICAgICAgICAgIERvdWJseUxpbmtlZExpc3Q8TWFya2VkQmxvY2s+IGJsb2Nr
TGlzdDsKKyAgICAgICAgICAgIHNpemVfdCBjZWxsU2l6ZTsKICAgICAgICAgfTsKIAogICAgICAg
ICBNYXJrZWRCbG9jayogYWxsb2NhdGVCbG9jayhTaXplQ2xhc3MmKTsKQEAgLTk5LDcgKzEwNSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQgY2xlYXJNYXJrcyhNYXJrZWRCbG9j
ayopOwogCi0gICAgICAgIFNpemVDbGFzcyBtX3NpemVDbGFzczsKKyAgICAgICAgU2l6ZUNsYXNz
IG1fcHJlY2lzZVNpemVDbGFzc2VzW3ByZWNpc2VDb3VudF07CiAgICAgICAgIEhhc2hTZXQ8TWFy
a2VkQmxvY2sqPiBtX2Jsb2NrczsKICAgICAgICAgc2l6ZV90IG1fd2F0ZXJNYXJrOwogICAgICAg
ICBzaXplX3QgbV9oaWdoV2F0ZXJNYXJrOwpAQCAtMTQ3LDYgKzE1Myw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIAogICAgIGlubGluZSBNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzOjpTaXplQ2xhc3Mo
KQogICAgICAgICA6IG5leHRCbG9jaygwKQorICAgICAgICAsIGNlbGxTaXplKDApCiAgICAgewog
ICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84306</attachid>
            <date>2011-03-01 15:19:18 -0800</date>
            <delta_ts>2011-03-01 15:19:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55159-20110301151917.patch</filename>
            <type>text/plain</type>
            <size>14289</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODAwNDcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTEtMDMtMDEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIFJvbGxlZCBiYWNrIGluIHI3OTYy
NyBub3cgdGhhdCB0aGUgdW5kZXJseWluZyBjYXVzZSBmb3IgaXQgY3Jhc2hpbmcgaXMgZml4ZWQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTE1OQor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1l
L0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjphbGxvY2F0ZVNsb3dDYXNlKToKKyAgICAg
ICAgKiBydW50aW1lL0hlYXAuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAg
ICAoSlNDOjpKU0NlbGw6Ok1hcmtlZFNwYWNlOjpzaXplQ2xhc3NGb3IpOgorICAgICAgICAoSlND
OjpKU0NlbGw6OkhlYXA6OmFsbG9jYXRlKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0NlbGw6
Om9wZXJhdG9yIG5ldyk6CisgICAgICAgICogcnVudGltZS9NYXJrZWRCbG9jay5oOgorICAgICAg
ICAqIHJ1bnRpbWUvTWFya2VkU3BhY2UuY3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6
TWFya2VkU3BhY2UpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6YWxsb2NhdGVCbG9jayk6
CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpyZXNldCk6CisgICAgICAgICogcnVudGltZS9N
YXJrZWRTcGFjZS5oOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzOjpTaXpl
Q2xhc3MpOgorCiAyMDExLTAzLTAxICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmV4cAkocmV2aXNpb24gODAwMTMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDcg
QEAgX19aTjNKU0MxMHRocm93RXJyb3JFUE5TXzlFeGVjU3RhdGVFUE5TXwogX19aTjNKU0MxMUpT
Qnl0ZUFycmF5MTNzX2RlZmF1bHRJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFycmF5MTVjcmVhdGVT
dHJ1Y3R1cmVFTlNfN0pTVmFsdWVFUEtOU185Q2xhc3NJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFy
cmF5QzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYxN05vbk51bGxQYXNzUmVmUHRySU5TXzlTdHJ1Y3R1
cmVFRUVQTlMzXzlCeXRlQXJyYXlFCitfX1pOM0pTQzExTWFya2VkU3BhY2UyMWFsbG9jYXRlRnJv
bVNpemVDbGFzc0VSTlMwXzlTaXplQ2xhc3NFCiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRF
dgogX19aTjNKU0MxMWNoZWNrU3ludGF4RVBOU185RXhlY1N0YXRlRVJLTlNfMTBTb3VyY2VDb2Rl
RQogX19aTjNKU0MxMWNyZWF0ZUVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBA
IC0yMDgsNiArMjA5LDcgQEAgX19aTjNKU0MyNGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvckVQTlNf
OQogX19aTjNKU0MyNWV2YWx1YXRlSW5HbG9iYWxDYWxsRnJhbWVFUktOU183VVN0cmluZ0VSTlNf
N0pTVmFsdWVFUE5TXzE0SlNHbG9iYWxPYmplY3RFCiBfX1pOM0pTQzM1Y3JlYXRlSW50ZXJydXB0
ZWRFeGVjdXRpb25FeGNlcHRpb25FUE5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0MzTmFORQor
X19aTjNKU0M0SGVhcDE2YWxsb2NhdGVTbG93Q2FzZUVtCiBfX1pOM0pTQzRIZWFwMTZvYmplY3RU
eXBlQ291bnRzRXYKIF9fWk4zSlNDNEhlYXAxN2NvbGxlY3RBbGxHYXJiYWdlRXYKIF9fWk4zSlND
NEhlYXAxN2dsb2JhbE9iamVjdENvdW50RXYKQEAgLTIxOSw3ICsyMjEsNiBAQCBfX1pOM0pTQzRI
ZWFwMjlyZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93CiBfX1pOM0pTQzRIZWFwNmlzQnVzeUV2CiBf
X1pOM0pTQzRIZWFwN2Rlc3Ryb3lFdgogX19aTjNKU0M0SGVhcDdwcm90ZWN0RU5TXzdKU1ZhbHVl
RQotX19aTjNKU0M0SGVhcDhhbGxvY2F0ZUVtCiBfX1pOM0pTQzRIZWFwOXVucHJvdGVjdEVOU183
SlNWYWx1ZUUKIF9fWk4zSlNDNFlhcnIxMVlhcnJQYXR0ZXJuQzFFUktOU183VVN0cmluZ0ViYlBQ
S2MKIF9fWk4zSlNDNFlhcnIxMWJ5dGVDb21waWxlRVJOUzBfMTFZYXJyUGF0dGVybkVQTjNXVEYy
MEJ1bXBQb2ludGVyQWxsb2NhdG9yRQpAQCAtMjM5LDYgKzI0MCw3IEBAIF9fWk4zSlNDNkpTQ2Vs
bDlnZXRPYmplY3RFdgogX19aTjNKU0M2SlNMb2NrMTJEcm9wQWxsTG9ja3NDMUVOU18xNEpTTG9j
a0JlaGF2aW9yRQogX19aTjNKU0M2SlNMb2NrMTJEcm9wQWxsTG9ja3NDMUVQTlNfOUV4ZWNTdGF0
ZUUKIF9fWk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzRDFFdgorX19aTjNKU0M2SlNMb2NrMjZj
dXJyZW50VGhyZWFkSXNIb2xkaW5nTG9ja0V2CiBfX1pOM0pTQzZKU0xvY2s0bG9ja0VOU18xNEpT
TG9ja0JlaGF2aW9yRQogX19aTjNKU0M2SlNMb2NrNnVubG9ja0VOU18xNEpTTG9ja0JlaGF2aW9y
RQogX19aTjNKU0M2SlNMb2NrOWxvY2tDb3VudEV2CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
Zgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkocmV2aXNpb24gODAwMTMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmRlZgkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsOSBAQCBF
WFBPUlRTCiAgICAgP2FkZFByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25AU3RydWN0dXJlQEpTQ0BA
UUFFSUFCVklkZW50aWZpZXJAMkBJUEFWSlNDZWxsQDJAQFoKICAgICA/YWRkU2xvd0Nhc2VASWRl
bnRpZmllckBKU0NAQENBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQFdURkBAUEFW
RXhlY1N0YXRlQDJAUEFWU3RyaW5nSW1wbEA0QEBaCiAgICAgP2FsbG9jYXRlQEhlYXBASlNDQEBR
QUVQQVhJQFoKKyAgICA/YWxsb2NhdGVGcm9tU2l6ZUNsYXNzQE1hcmtlZFNwYWNlQEpTQ0BAQUFF
UEFYQUFVU2l6ZUNsYXNzQDEyQEBaCiAgICAgP2FsbG9jYXRlUHJvcGVydHlTdG9yYWdlQEpTT2Jq
ZWN0QEpTQ0BAUUFFWElJQFoKKyAgICA/YWxsb2NhdGVTbG93Q2FzZUBIZWFwQEpTQ0BAQUFFUEFY
SUBaCiAgICAgP2FsbG9jYXRlU3RhY2tATWFya1N0YWNrQEpTQ0BAQ0FQQVhJQFoKICAgICA/YXBw
ZW5kQFN0cmluZ0J1aWxkZXJAV1RGQEBRQUVYUEJESUBaCiAgICAgP2FwcGVuZEBTdHJpbmdCdWls
ZGVyQFdURkBAUUFFWFBCX1dJQFoKQEAgLTExMSw2ICsxMTMsNyBAQCBFWFBPUlRTCiAgICAgP2Ny
eXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyQFdURkBAWUFJWFoKICAgICA/Y3J5cHRvZ3JhcGhp
Y2FsbHlSYW5kb21WYWx1ZXNAV1RGQEBZQVhQQVhJQFoKICAgICA/Y3VycmVudFRocmVhZEBXVEZA
QFlBSVhaCisgICAgP2N1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrQEpTTG9ja0BKU0NAQFNBX05Y
WgogICAgID9jdXJyZW50VGltZUBXVEZAQFlBTlhaCiAgICAgP2RhdGFAQ1N0cmluZ0BXVEZAQFFC
RVBCRFhaCiAgICAgP2RhdGVUb0RheXNGcm9tMTk3MEBXVEZAQFlBTkhISEBaCkBAIC0yMjUsNiAr
MjI4LDcgQEAgRVhQT1JUUwogICAgID9sb2NrQEpTTG9ja0BKU0NAQFNBWFc0SlNMb2NrQmVoYXZp
b3JAMkBAWgogICAgID9sb2NrQE11dGV4QFdURkBAUUFFWFhaCiAgICAgP2xvY2tBdG9taWNhbGx5
SW5pdGlhbGl6ZWRTdGF0aWNNdXRleEBXVEZAQFlBWFhaCisgICAgP2xvY2tDb3VudEBKU0xvY2tA
SlNDQEBTQUhYWgogICAgID9sb29rdXBHZXR0ZXJASlNPYmplY3RASlNDQEBVQUU/QVZKU1ZhbHVl
QDJAUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEBaCiAgICAgP2xvb2t1cFNldHRlckBK
U09iamVjdEBKU0NAQFVBRT9BVkpTVmFsdWVAMkBQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVy
QDJAQFoKICAgICA/bWFya0NoaWxkcmVuQEpTR2xvYmFsT2JqZWN0QEpTQ0BAVUFFWEFBVk1hcmtT
dGFja0AyQEBaCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gODAw
MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjUwOSw3ICsyNTA5LDYgQEAKIAkJCWlz
YSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI3NzEwODkw
MkFGRTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAi
SmF2YVNjcmlwdENvcmUiICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMi40
IjsKLQkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNv
ZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gsCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmNwcAkocmV2aXNpb24gODAwMTMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NyArMzIsNyBAQAogI2luY2x1ZGUgIlRyYWNpbmcuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAK
LSNkZWZpbmUgQ09MTEVDVF9PTl9FVkVSWV9BTExPQ0FUSU9OIDAKKyNkZWZpbmUgQ09MTEVDVF9P
Tl9FVkVSWV9TTE9XX0FMTE9DQVRJT04gMAogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0x
MDIsMjkgKzEwMiwyNCBAQCB2b2lkIEhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNl
CiAgICAgbV9leHRyYUNvc3QgKz0gY29zdDsKIH0KIAotdm9pZCogSGVhcDo6YWxsb2NhdGUoc2l6
ZV90IHMpCit2b2lkKiBIZWFwOjphbGxvY2F0ZVNsb3dDYXNlKHNpemVfdCBieXRlcykKIHsKICAg
ICBBU1NFUlQoZ2xvYmFsRGF0YSgpLT5pZGVudGlmaWVyVGFibGUgPT0gd3RmVGhyZWFkRGF0YSgp
LmN1cnJlbnRJZGVudGlmaWVyVGFibGUoKSk7CiAgICAgQVNTRVJUKEpTTG9jazo6bG9ja0NvdW50
KCkgPiAwKTsKICAgICBBU1NFUlQoSlNMb2NrOjpjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygp
KTsKLSAgICBBU1NFUlRfVU5VU0VEKHMsIHMgPD0gTWFya2VkU3BhY2U6OmNlbGxTaXplKTsKKyAg
ICBBU1NFUlQoYnl0ZXMgPD0gTWFya2VkU3BhY2U6Om1heENlbGxTaXplKTsKICAgICBBU1NFUlQo
bV9vcGVyYXRpb25JblByb2dyZXNzID09IE5vT3BlcmF0aW9uKTsKIAotI2lmIENPTExFQ1RfT05f
RVZFUllfQUxMT0NBVElPTgorI2lmIENPTExFQ1RfT05fRVZFUllfU0xPV19BTExPQ0FUSU9OCiAg
ICAgY29sbGVjdEFsbEdhcmJhZ2UoKTsKICAgICBBU1NFUlQobV9vcGVyYXRpb25JblByb2dyZXNz
ID09IE5vT3BlcmF0aW9uKTsKICNlbmRpZgogCisgICAgcmVzZXQoRG9Ob3RTd2VlcCk7CisKICAg
ICBtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPSBBbGxvY2F0aW9uOwotICAgIHZvaWQqIHJlc3VsdCA9
IG1fbWFya2VkU3BhY2UuYWxsb2NhdGUocyk7CisgICAgdm9pZCogcmVzdWx0ID0gbV9tYXJrZWRT
cGFjZS5hbGxvY2F0ZShieXRlcyk7CiAgICAgbV9vcGVyYXRpb25JblByb2dyZXNzID0gTm9PcGVy
YXRpb247Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgcmVzZXQoRG9Ob3RTd2VlcCk7Ci0K
LSAgICAgICAgbV9vcGVyYXRpb25JblByb2dyZXNzID0gQWxsb2NhdGlvbjsKLSAgICAgICAgcmVz
dWx0ID0gbV9tYXJrZWRTcGFjZS5hbGxvY2F0ZShzKTsKLSAgICAgICAgbV9vcGVyYXRpb25JblBy
b2dyZXNzID0gTm9PcGVyYXRpb247Ci0gICAgfQogCiAgICAgQVNTRVJUKHJlc3VsdCk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmgJKHJl
dmlzaW9uIDgwMDEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHN0YXRpYyBjb25zdCBzaXplX3QgbWluRXh0cmFDb3N0ID0gMjU2OwogICAgICAgICBzdGF0aWMg
Y29uc3Qgc2l6ZV90IG1heEV4dHJhQ29zdCA9IDEwMjQgKiAxMDI0OwogCisgICAgICAgIHZvaWQq
IGFsbG9jYXRlU2xvd0Nhc2Uoc2l6ZV90KTsKICAgICAgICAgdm9pZCByZXBvcnRFeHRyYU1lbW9y
eUNvc3RTbG93Q2FzZShzaXplX3QpOwogCiAgICAgICAgIHZvaWQgbWFya1Jvb3RzKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkocmV2aXNpb24gODAwMTMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkNvbnN0cnVjdERhdGEuaCIKICNpbmNsdWRlICJI
ZWFwLmgiCiAjaW5jbHVkZSAiSlNJbW1lZGlhdGUuaCIKKyNpbmNsdWRlICJKU0xvY2suaCIKICNp
bmNsdWRlICJKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTWFya1N0YWNrLmgiCiAjaW5jbHVkZSAiU3Ry
dWN0dXJlLmgiCkBAIC0xNzUsMTYgKzE3Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAg
ICB9CiAKLSAgICBpbmxpbmUgdm9pZCogSlNDZWxsOjpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUs
IEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBnbG9iYWxE
YXRhLT5oZWFwLmFsbG9jYXRlKHNpemUpOwotICAgIH0KLQotICAgIGlubGluZSB2b2lkKiBKU0Nl
bGw6Om9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwgRXhlY1N0YXRlKiBleGVjKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGV4ZWMtPmhlYXAoKS0+YWxsb2NhdGUoc2l6ZSk7Ci0gICAgfQotCiAgICAg
Ly8gLS0tIEpTVmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAg
ICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc1N0cmluZygpIGNvbnN0CkBAIC00MTgsOSArNDA5LDEw
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCi0gICAg
aW5saW5lIE1hcmtlZFNwYWNlOjpTaXplQ2xhc3MmIE1hcmtlZFNwYWNlOjpzaXplQ2xhc3NGb3Io
c2l6ZV90KQorICAgIGlubGluZSBNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzJiBNYXJrZWRTcGFjZTo6
c2l6ZUNsYXNzRm9yKHNpemVfdCBieXRlcykKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3NpemVD
bGFzczsKKyAgICAgICAgQVNTRVJUKGJ5dGVzICYmIGJ5dGVzIDw9IHByZWNpc2VDdXRvZmYpOwor
ICAgICAgICByZXR1cm4gbV9wcmVjaXNlU2l6ZUNsYXNzZXNbKGJ5dGVzIC0gMSkgLyBwcmVjaXNl
U3RlcF07CiAgICAgfQogCiAgICAgaW5saW5lIHZvaWQqIE1hcmtlZFNwYWNlOjphbGxvY2F0ZShz
aXplX3QgYnl0ZXMpCkBAIC00MjgsNiArNDIwLDMzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBTaXplQ2xhc3MmIHNpemVDbGFzcyA9IHNpemVDbGFzc0ZvcihieXRlcyk7CiAgICAgICAgIHJl
dHVybiBhbGxvY2F0ZUZyb21TaXplQ2xhc3Moc2l6ZUNsYXNzKTsKICAgICB9CisgICAgCisgICAg
aW5saW5lIHZvaWQqIEhlYXA6OmFsbG9jYXRlKHNpemVfdCBieXRlcykKKyAgICB7CisgICAgICAg
IEFTU0VSVChnbG9iYWxEYXRhKCktPmlkZW50aWZpZXJUYWJsZSA9PSB3dGZUaHJlYWREYXRhKCku
Y3VycmVudElkZW50aWZpZXJUYWJsZSgpKTsKKyAgICAgICAgQVNTRVJUKEpTTG9jazo6bG9ja0Nv
dW50KCkgPiAwKTsKKyAgICAgICAgQVNTRVJUKEpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGlu
Z0xvY2soKSk7CisgICAgICAgIEFTU0VSVChieXRlcyA8PSBNYXJrZWRTcGFjZTo6bWF4Q2VsbFNp
emUpOworICAgICAgICBBU1NFUlQobV9vcGVyYXRpb25JblByb2dyZXNzID09IE5vT3BlcmF0aW9u
KTsKKworICAgICAgICBtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPSBBbGxvY2F0aW9uOworICAgICAg
ICB2b2lkKiByZXN1bHQgPSBtX21hcmtlZFNwYWNlLmFsbG9jYXRlKGJ5dGVzKTsKKyAgICAgICAg
bV9vcGVyYXRpb25JblByb2dyZXNzID0gTm9PcGVyYXRpb247CisgICAgICAgIGlmIChyZXN1bHQp
CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgICAgIHJldHVybiBhbGxvY2F0ZVNs
b3dDYXNlKGJ5dGVzKTsKKyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCogSlNDZWxsOjpvcGVyYXRv
ciBuZXcoc2l6ZV90IHNpemUsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBnbG9iYWxEYXRhLT5oZWFwLmFsbG9jYXRlKHNpemUpOworICAgIH0KKworICAg
IGlubGluZSB2b2lkKiBKU0NlbGw6Om9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwgRXhlY1N0YXRl
KiBleGVjKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGV4ZWMtPmhlYXAoKS0+YWxsb2NhdGUoc2l6
ZSk7CisgICAgfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWFya2VkQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXJrZWRCbG9jay5oCShyZXZpc2lvbiA4MDAxMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ2LDYgKzQ2LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBNYXJrZWRCbG9jayB7
CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21TaXplID0gc2l6
ZW9mKGRvdWJsZSk7IC8vIEVuc3VyZXMgbmF0dXJhbCBhbGlnbm1lbnQgZm9yIGFsbCBidWlsdC1p
biB0eXBlcy4KKwogICAgICAgICBzdGF0aWMgTWFya2VkQmxvY2sqIGNyZWF0ZShKU0dsb2JhbERh
dGEqLCBzaXplX3QgY2VsbFNpemUpOwogICAgICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KE1hcmtl
ZEJsb2NrKik7CiAKQEAgLTgzLDE0ICs4NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gdm9pZCBmb3JFYWNoKEZ1bmN0b3ImKTsKIAogICAg
IHByaXZhdGU6Ci0jaWYgT1MoV0lOQ0UpIHx8IE9TKFNZTUJJQU4pIHx8IFBMQVRGT1JNKEJSRVdN
UCkKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBibG9ja1NpemUgPSA2NCAqIEtCOwotI2Vs
c2UKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBibG9ja1NpemUgPSAyNTYgKiBLQjsKLSNl
bmRpZgorICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGJsb2NrU2l6ZSA9IDE2ICogS0I7CiAg
ICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYmxvY2tNYXNrID0gfihibG9ja1NpemUgLSAxKTsg
Ly8gYmxvY2tTaXplIG11c3QgYmUgYSBwb3dlciBvZiB0d28uCiAKLSAgICAgICAgc3RhdGljIGNv
bnN0IHNpemVfdCBhdG9tU2l6ZSA9IHNpemVvZihkb3VibGUpOyAvLyBFbnN1cmVzIG5hdHVyYWwg
YWxpZ25tZW50IGZvciBhbGwgYnVpbHQtaW4gdHlwZXMuCiAgICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgYXRvbU1hc2sgPSB+KGF0b21TaXplIC0gMSk7IC8vIGF0b21TaXplIG11c3QgYmUgYSBw
b3dlciBvZiB0d28uCiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21z
UGVyQmxvY2sgPSBibG9ja1NpemUgLyBhdG9tU2l6ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5jcHAJKHJldmlzaW9uIDgwMDEzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSw2ICszNSw4IEBAIE1hcmtlZFNwYWNlOjpNYXJrZWRTcGFjZShKU0dsb2JhbERhdGEq
IGcKICAgICAsIG1faGlnaFdhdGVyTWFyaygwKQogICAgICwgbV9nbG9iYWxEYXRhKGdsb2JhbERh
dGEpCiB7CisgICAgZm9yIChzaXplX3QgY2VsbFNpemUgPSBwcmVjaXNlU3RlcDsgY2VsbFNpemUg
PD0gcHJlY2lzZUN1dG9mZjsgY2VsbFNpemUgKz0gcHJlY2lzZVN0ZXApCisgICAgICAgIHNpemVD
bGFzc0ZvcihjZWxsU2l6ZSkuY2VsbFNpemUgPSBjZWxsU2l6ZTsKIH0KIAogdm9pZCBNYXJrZWRT
cGFjZTo6ZGVzdHJveSgpCkBAIC00Niw3ICs0OCw3IEBAIHZvaWQgTWFya2VkU3BhY2U6OmRlc3Ry
b3koKQogCiBNYXJrZWRCbG9jayogTWFya2VkU3BhY2U6OmFsbG9jYXRlQmxvY2soU2l6ZUNsYXNz
JiBzaXplQ2xhc3MpCiB7Ci0gICAgTWFya2VkQmxvY2sqIGJsb2NrID0gTWFya2VkQmxvY2s6OmNy
ZWF0ZShnbG9iYWxEYXRhKCksIGNlbGxTaXplKTsKKyAgICBNYXJrZWRCbG9jayogYmxvY2sgPSBN
YXJrZWRCbG9jazo6Y3JlYXRlKGdsb2JhbERhdGEoKSwgc2l6ZUNsYXNzLmNlbGxTaXplKTsKICAg
ICBzaXplQ2xhc3MuYmxvY2tMaXN0LmFwcGVuZChibG9jayk7CiAgICAgc2l6ZUNsYXNzLm5leHRC
bG9jayA9IGJsb2NrOwogICAgIG1fYmxvY2tzLmFkZChibG9jayk7CkBAIC0xNDQsOSArMTQ2LDEx
IEBAIHNpemVfdCBNYXJrZWRTcGFjZTo6Y2FwYWNpdHkoKSBjb25zdAogCiB2b2lkIE1hcmtlZFNw
YWNlOjpyZXNldCgpCiB7Ci0gICAgbV9zaXplQ2xhc3MucmVzZXQoKTsKICAgICBtX3dhdGVyTWFy
ayA9IDA7CiAKKyAgICBmb3IgKHNpemVfdCBjZWxsU2l6ZSA9IHByZWNpc2VTdGVwOyBjZWxsU2l6
ZSA8PSBwcmVjaXNlQ3V0b2ZmOyBjZWxsU2l6ZSArPSBwcmVjaXNlU3RlcCkKKyAgICAgICAgc2l6
ZUNsYXNzRm9yKGNlbGxTaXplKS5yZXNldCgpOworCiAgICAgQmxvY2tJdGVyYXRvciBlbmQgPSBt
X2Jsb2Nrcy5lbmQoKTsKICAgICBmb3IgKEJsb2NrSXRlcmF0b3IgaXQgPSBtX2Jsb2Nrcy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICgqaXQpLT5yZXNldCgpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5oCShyZXZpc2lvbiA4MDAx
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDggKzMyLDggQEAKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLSNkZWZpbmUgQVNTRVJUX0NMQVNTX0ZJVFNfSU5f
Q0VMTChjbGFzcykgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKGNsYXNzKSA8PSBNYXJrZWRTcGFjZTo6
Y2VsbFNpemUsIGNsYXNzX2ZpdHNfaW5fY2VsbCkKLSNkZWZpbmUgQVNTRVJUX0NMQVNTX0ZJTExT
X0NFTEwoY2xhc3MpIENPTVBJTEVfQVNTRVJUKHNpemVvZihjbGFzcykgPT0gTWFya2VkU3BhY2U6
OmNlbGxTaXplLCBjbGFzc19maWxsc19jZWxsKQorI2RlZmluZSBBU1NFUlRfQ0xBU1NfRklUU19J
Tl9DRUxMKGNsYXNzKSBDT01QSUxFX0FTU0VSVChzaXplb2YoY2xhc3MpIDw9IE1hcmtlZFNwYWNl
OjptYXhDZWxsU2l6ZSwgY2xhc3NfZml0c19pbl9jZWxsKQorI2RlZmluZSBBU1NFUlRfQ0xBU1Nf
RklMTFNfQ0VMTChjbGFzcykgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKGNsYXNzKSA9PSBNYXJrZWRT
cGFjZTo6bWF4Q2VsbFNpemUsIGNsYXNzX2ZpbGxzX2NlbGwpCiAKIG5hbWVzcGFjZSBKU0Mgewog
CkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShNYXJrZWRTcGFjZSk7CiAgICAgcHVibGljOgogICAgICAgICAvLyBDdXJyZW50bHkg
cHVibGljIGZvciB1c2UgaW4gYXNzZXJ0aW9ucy4KLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBjZWxsU2l6ZSA9IDY0OworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heENlbGxTaXpl
ID0gNjQ7CiAKICAgICAgICAgc3RhdGljIEhlYXAqIGhlYXAoSlNDZWxsKik7CiAKQEAgLTgxLDYg
KzgxLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
dG9yPiB2b2lkIGZvckVhY2goRnVuY3RvciYpOwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8g
WyA4LCAxNi4uLiA2NCBdCisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcHJlY2lzZVN0ZXAg
PSBNYXJrZWRCbG9jazo6YXRvbVNpemU7CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcHJl
Y2lzZUN1dG9mZiA9IG1heENlbGxTaXplOworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHBy
ZWNpc2VDb3VudCA9IHByZWNpc2VDdXRvZmYgLyBwcmVjaXNlU3RlcDsKKwogICAgICAgICB0eXBl
ZGVmIEhhc2hTZXQ8TWFya2VkQmxvY2sqPjo6aXRlcmF0b3IgQmxvY2tJdGVyYXRvcjsKIAogICAg
ICAgICBzdHJ1Y3QgU2l6ZUNsYXNzIHsKQEAgLTg5LDYgKzk0LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgICAgIE1hcmtlZEJsb2NrKiBuZXh0QmxvY2s7CiAgICAgICAgICAgICBEb3Vi
bHlMaW5rZWRMaXN0PE1hcmtlZEJsb2NrPiBibG9ja0xpc3Q7CisgICAgICAgICAgICBzaXplX3Qg
Y2VsbFNpemU7CiAgICAgICAgIH07CiAKICAgICAgICAgTWFya2VkQmxvY2sqIGFsbG9jYXRlQmxv
Y2soU2l6ZUNsYXNzJik7CkBAIC05OSw3ICsxMDUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICB2b2lkIGNsZWFyTWFya3MoTWFya2VkQmxvY2sqKTsKIAotICAgICAgICBTaXplQ2xhc3Mg
bV9zaXplQ2xhc3M7CisgICAgICAgIFNpemVDbGFzcyBtX3ByZWNpc2VTaXplQ2xhc3Nlc1twcmVj
aXNlQ291bnRdOwogICAgICAgICBIYXNoU2V0PE1hcmtlZEJsb2NrKj4gbV9ibG9ja3M7CiAgICAg
ICAgIHNpemVfdCBtX3dhdGVyTWFyazsKICAgICAgICAgc2l6ZV90IG1faGlnaFdhdGVyTWFyazsK
QEAgLTE0Nyw2ICsxNTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAKICAgICBpbmxpbmUgTWFy
a2VkU3BhY2U6OlNpemVDbGFzczo6U2l6ZUNsYXNzKCkKICAgICAgICAgOiBuZXh0QmxvY2soMCkK
KyAgICAgICAgLCBjZWxsU2l6ZSgwKQogICAgIHsKICAgICB9CiAK
</data>
<flag name="review"
          id="76276"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>