<?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>58139</bug_id>
          
          <creation_ts>2011-04-08 05:53:00 -0700</creation_ts>
          <short_desc>Web Inspector: No headers information in network panel for downloads.</short_desc>
          <delta_ts>2011-04-14 19:40:41 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>382184</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-04-08 05:53:00 -0700</bug_when>
    <thetext>No headers information in network panel for downloads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382191</commentid>
    <comment_count>1</comment_count>
      <attachid>88811</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-04-08 06:15:30 -0700</bug_when>
    <thetext>Created attachment 88811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382199</commentid>
    <comment_count>2</comment_count>
      <attachid>88811</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-08 06:45:43 -0700</bug_when>
    <thetext>Comment on attachment 88811
Patch

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

&gt; Source/WebCore/loader/MainResourceLoader.cpp:260
&gt; +        frameLoader()-&gt;notifier()-&gt;dispatchDidReceiveResponse(documentLoader(), identifier(), r);

InspectorInstrumentation::...

&gt; Source/WebCore/loader/MainResourceLoader.cpp:273
&gt; +        frameLoader()-&gt;notifier()-&gt;dispatchDidReceiveResponse(documentLoader(), identifier(), r);

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382245</commentid>
    <comment_count>3</comment_count>
      <attachid>88827</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-04-08 08:24:14 -0700</bug_when>
    <thetext>Created attachment 88827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383812</commentid>
    <comment_count>4</comment_count>
      <attachid>88827</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-11 22:03:13 -0700</bug_when>
    <thetext>Comment on attachment 88827
Patch

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

A couple of nits, otherwise looks good.

&gt; LayoutTests/http/tests/inspector/network/download-expected.txt:1
&gt; +http://127.0.0.1:8000/inspector/network/resources/download.zzz - willSendRequest &lt;NSURLRequest URL http://127.0.0.1:8000/inspector/network/resources/download.zzz, main document URL http://127.0.0.1:8000/inspector/network/download.html, http method GET&gt; redirectResponse (null)

This looks platform specific.

&gt; Source/WebCore/loader/MainResourceLoader.cpp:261
&gt; +        InspectorInstrumentation::didReceiveResourceResponseButCanceled(m_frame.get(), documentLoader(), identifier(), r);

You should provide as much context into the signal as possible, in this case I would call it &quot;continueWithPolicyDownload&quot; or similar.

&gt; Source/WebCore/loader/MainResourceLoader.cpp:274
&gt; +        InspectorInstrumentation::didReceiveResourceResponseButCanceled(m_frame.get(), documentLoader(), identifier(), r);

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384405</commentid>
    <comment_count>5</comment_count>
      <attachid>89277</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-04-12 14:54:05 -0700</bug_when>
    <thetext>Created attachment 89277
Patch with review fixes

Fixed nits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384704</commentid>
    <comment_count>6</comment_count>
      <attachid>89277</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-12 23:43:07 -0700</bug_when>
    <thetext>Comment on attachment 89277
Patch with review fixes

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

&gt; Source/WebCore/loader/MainResourceLoader.cpp:261
&gt; +        InspectorInstrumentation::continueWithPolicyDownload(m_frame.get(), documentLoader(), identifier(), r);

Shouldn&apos;t we move this call a few lines down, closer to frameLoader()-&gt;client()-&gt;download call? Otherwise we call continueWithPolicyDownload while the loader reports an error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385056</commentid>
    <comment_count>7</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-04-13 11:36:36 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 89277 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=89277&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/MainResourceLoader.cpp:261
&gt; &gt; +        InspectorInstrumentation::continueWithPolicyDownload(m_frame.get(), documentLoader(), identifier(), r);
&gt; 
&gt; Shouldn&apos;t we move this call a few lines down, closer to frameLoader()-&gt;client()-&gt;download call? Otherwise we call continueWithPolicyDownload while the loader reports an error.

That&apos;s right, I have checked that it&apos;s enough to call it 3 lines later to correctly show downloads in inspector.

FYI: PolicyDownload is used for downloads in Safari.
In Chromium we use PolicyIgnore.
That&apos;s the reason to make two calls to InspectorInstrumentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385058</commentid>
    <comment_count>8</comment_count>
      <attachid>89414</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-04-13 11:37:47 -0700</bug_when>
    <thetext>Created attachment 89414
Patch with fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385628</commentid>
    <comment_count>9</comment_count>
      <attachid>89414</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-14 03:55:52 -0700</bug_when>
    <thetext>Comment on attachment 89414
Patch with fix

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

&gt; Source/WebCore/inspector/InspectorInstrumentation.h:680
&gt; +    InspectorInstrumentation::didReceiveResourceResponseButCanceled(frame, loader, identifier, r);

Instrumentation header should have no logic and bring all signals to the implementation as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385694</commentid>
    <comment_count>10</comment_count>
      <attachid>89568</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-04-14 06:00:19 -0700</bug_when>
    <thetext>Created attachment 89568
Patch

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386309</commentid>
    <comment_count>11</comment_count>
      <attachid>89568</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-14 19:40:36 -0700</bug_when>
    <thetext>Comment on attachment 89568
Patch

Clearing flags on attachment: 89568

Committed r83933: &lt;http://trac.webkit.org/changeset/83933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386310</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-14 19:40:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88811</attachid>
            <date>2011-04-08 06:15:30 -0700</date>
            <delta_ts>2011-04-08 08:24:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>downl</filename>
            <type>text/plain</type>
            <size>4232</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZDRkNTE4Li5hZGIyNmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQt
MDggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTm8gaGVh
ZGVycyBpbmZvcm1hdGlvbiBpbiBuZXR3b3JrIHBhbmVsIGZvciBkb3dubG9hZHMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODEzOQorCisgICAgICAg
IFBhc3NlZCByZXNvdXJjZSByZXNwb25zZSB0byBpbnNwZWN0b3IgZm9yIFBvbGljeURvd25sb2Fk
IGFuZCBQb2xpY3lJZ25vcmUgcmVxdWVzdHMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL2Rvd25sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56eno6IEFk
ZGVkLgorCiAyMDExLTA0LTA3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCB1bnNraXAgYSBmYXN0L3htbGh0dHByZXF1ZXN0IHRl
c3QgcGFzc2luZyBvbiBHVEsuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL2Rvd25sb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvZG93bmxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViZDNmMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rvd25sb2FkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDkgQEAKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZXMvZG93bmxvYWQuenp6IC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3Qg
VVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvZG93
bmxvYWQuenp6LCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL25ldHdvcmsvZG93bmxvYWQuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3Bv
bnNlIChudWxsKQorPHVua25vd24+IC0gZGlkRmluaXNoTG9hZGluZworaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56enogLSBkaWRSZWNl
aXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56enosIGh0dHAgc3RhdHVzIGNvZGUgMjAwPgor
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+Jwor
LS0tLS0tLS0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9kb3dubG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9kb3dubG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFjZDQ0MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL2Rvd25sb2FkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGls
ZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8aWZyYW1lIHNyYz0icmVzb3Vy
Y2VzL2Rvd25sb2FkLnp6eiI+PC9pZnJhbWU+CisgICAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
cy9kb3dubG9hZC56enogYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlcy9kb3dubG9hZC56enoKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZTY5ZGUyOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM4MjRjMDMuLjYzNGI5MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0wNC0wOCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBObyBoZWFkZXJzIGluZm9ybWF0aW9uIGluIG5ldHdvcmsgcGFuZWwg
Zm9yIGRvd25sb2Fkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU4MTM5CisKKyAgICAgICAgUGFzc2VkIHJlc291cmNlIHJlc3BvbnNlIHRvIGluc3Bl
Y3RvciBmb3IgUG9saWN5RG93bmxvYWQgYW5kIFBvbGljeUlnbm9yZSByZXF1ZXN0cy4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rvd25sb2FkLmh0bWwKKwor
ICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyQ29udGVudFBvbGljeSk6CisKIDIw
MTEtMDQtMDYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDBjZGJjMjEuLjFmYTEyOWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNTcsNiArMjU3
LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5
KFBvbGljeUFjdGlvbiBjb250ZW50UG9saWN5LAogICAgIH0KIAogICAgIGNhc2UgUG9saWN5RG93
bmxvYWQ6CisgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpc3BhdGNoRGlkUmVj
ZWl2ZVJlc3BvbnNlKGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgcik7CiAgICAgICAg
IC8vIG1faGFuZGxlIGNhbiBiZSBudWxsLCBlLmcuIHdoZW4gbG9hZGluZyBhIHN1YnN0aXR1dGUg
cmVzb3VyY2UgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4KICAgICAgICAgaWYgKCFtX2hhbmRsZSkg
ewogICAgICAgICAgICAgcmVjZWl2ZWRFcnJvcihjYW5ub3RTaG93VVJMRXJyb3IoKSk7CkBAIC0y
NjksNiArMjcwLDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250
ZW50UG9saWN5KFBvbGljeUFjdGlvbiBjb250ZW50UG9saWN5LAogICAgICAgICByZXR1cm47CiAK
ICAgICBjYXNlIFBvbGljeUlnbm9yZToKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIo
KS0+ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmll
cigpLCByKTsKICAgICAgICAgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIAo=
</data>
<flag name="review"
          id="81385"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88827</attachid>
            <date>2011-04-08 08:24:14 -0700</date>
            <delta_ts>2011-04-12 14:54:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>downl</filename>
            <type>text/plain</type>
            <size>6458</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZDRkNTE4Li5hZGIyNmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQt
MDggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTm8gaGVh
ZGVycyBpbmZvcm1hdGlvbiBpbiBuZXR3b3JrIHBhbmVsIGZvciBkb3dubG9hZHMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODEzOQorCisgICAgICAg
IFBhc3NlZCByZXNvdXJjZSByZXNwb25zZSB0byBpbnNwZWN0b3IgZm9yIFBvbGljeURvd25sb2Fk
IGFuZCBQb2xpY3lJZ25vcmUgcmVxdWVzdHMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL2Rvd25sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56eno6IEFk
ZGVkLgorCiAyMDExLTA0LTA3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCB1bnNraXAgYSBmYXN0L3htbGh0dHByZXF1ZXN0IHRl
c3QgcGFzc2luZyBvbiBHVEsuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL2Rvd25sb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvZG93bmxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViZDNmMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rvd25sb2FkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDkgQEAKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZXMvZG93bmxvYWQuenp6IC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3Qg
VVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvZG93
bmxvYWQuenp6LCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL25ldHdvcmsvZG93bmxvYWQuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3Bv
bnNlIChudWxsKQorPHVua25vd24+IC0gZGlkRmluaXNoTG9hZGluZworaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56enogLSBkaWRSZWNl
aXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56enosIGh0dHAgc3RhdHVzIGNvZGUgMjAwPgor
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+Jwor
LS0tLS0tLS0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9kb3dubG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9kb3dubG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFjZDQ0MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL2Rvd25sb2FkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGls
ZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8aWZyYW1lIHNyYz0icmVzb3Vy
Y2VzL2Rvd25sb2FkLnp6eiI+PC9pZnJhbWU+CisgICAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
cy9kb3dubG9hZC56enogYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlcy9kb3dubG9hZC56enoKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZTY5ZGUyOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM4MjRjMDMuLjI1ZDc3NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorCisyMDExLTA0LTA4ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IE5vIGhlYWRlcnMgaW5mb3JtYXRpb24gaW4gbmV0d29yayBwYW5l
bCBmb3IgZG93bmxvYWRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTgxMzkKKworICAgICAgICBQYXNzZWQgcmVzb3VyY2UgcmVzcG9uc2UgdG8gaW5z
cGVjdG9yIGZvciBQb2xpY3lEb3dubG9hZCBhbmQgUG9saWN5SWdub3JlIHJlcXVlc3RzLgorCisg
ICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvZG93bmxvYWQuaHRtbAor
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VS
ZXNwb25zZUJ1dENhbmNlbGVkKToKKyAgICAgICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRl
ckNvbnRlbnRQb2xpY3kpOgorCiAyMDExLTA0LTA2ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xv
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oCmluZGV4IDc3YzQ2NGUuLmZiNGNhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTExOCw2ICsxMTgsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlRGF0YShjb25zdCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llIHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShGcmFtZSosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHN0YXRp
YyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJl
c291cmNlUmVzcG9uc2VCdXRDYW5jZWxlZChGcmFtZSosIERvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGlj
IHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwogICAgIHN0YXRpYyB2
b2lkIGRpZEZpbmlzaExvYWRpbmcoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRv
dWJsZSBmaW5pc2hUaW1lKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZGluZyhGcmFtZSos
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwpAQCAtNjY0
LDYgKzY2NSwxNCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJl
Y2VpdmVSZXNvdXJjZVJlc3BvbnNlKGNvbnN0IEluc3BlY3RvcgogICAgIGRpZFJlY2VpdmVSZXNv
dXJjZVJlc3BvbnNlSW1wbChjb29raWUsIGlkZW50aWZpZXIsIGxvYWRlciwgcmVzcG9uc2UpOwog
I2VuZGlmCiB9CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2Vp
dmVSZXNvdXJjZVJlc3BvbnNlQnV0Q2FuY2VsZWQoRnJhbWUqIGZyYW1lLCBEb2N1bWVudExvYWRl
ciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHIpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVjZWl2
ZVJlc291cmNlUmVzcG9uc2UoZnJhbWUsIGlkZW50aWZpZXIsIHIpOworICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29va2llLCBpZGVudGlm
aWVyLCBsb2FkZXIsIHIpOworI2VuZGlmCit9CisKIAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
MGNkYmMyMS4uNmNiYWE2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3Vy
Y2VMb2FkZXIuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgpAQCAt
MjU3LDYgKzI1OCw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyQ29u
dGVudFBvbGljeShQb2xpY3lBY3Rpb24gY29udGVudFBvbGljeSwKICAgICB9CiAKICAgICBjYXNl
IFBvbGljeURvd25sb2FkOgorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJl
Y2VpdmVSZXNvdXJjZVJlc3BvbnNlQnV0Q2FuY2VsZWQobV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRM
b2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsKICAgICAgICAgLy8gbV9oYW5kbGUgY2FuIGJlIG51
bGwsIGUuZy4gd2hlbiBsb2FkaW5nIGEgc3Vic3RpdHV0ZSByZXNvdXJjZSBmcm9tIGFwcGxpY2F0
aW9uIGNhY2hlLgogICAgICAgICBpZiAoIW1faGFuZGxlKSB7CiAgICAgICAgICAgICByZWNlaXZl
ZEVycm9yKGNhbm5vdFNob3dVUkxFcnJvcigpKTsKQEAgLTI2OSw2ICsyNzEsNyBAQCB2b2lkIE1h
aW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9u
IGNvbnRlbnRQb2xpY3ksCiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgUG9saWN5SWdub3Jl
OgorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJl
c3BvbnNlQnV0Q2FuY2VsZWQobV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRp
ZmllcigpLCByKTsKICAgICAgICAgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIAo=
</data>
<flag name="review"
          id="81406"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89277</attachid>
            <date>2011-04-12 14:54:05 -0700</date>
            <delta_ts>2011-04-13 11:37:47 -0700</delta_ts>
            <desc>Patch with review fixes</desc>
            <filename>downl</filename>
            <type>text/plain</type>
            <size>8208</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZTUwNTU2Li4wMDQxYzNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQt
MTIgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTm8gaGVh
ZGVycyBpbmZvcm1hdGlvbiBpbiBuZXR3b3JrIHBhbmVsIGZvciBkb3dubG9hZHMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODEzOQorCisgICAgICAg
IFBhc3NlZCByZXNvdXJjZSByZXNwb25zZSB0byBpbnNwZWN0b3IgZm9yIFBvbGljeURvd25sb2Fk
IGFuZCBQb2xpY3lJZ25vcmUgcmVxdWVzdHMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL2Rvd25sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56eno6IEFk
ZGVkLgorCiAyMDExLTA0LTExICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvZG93bmxvYWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUxNmIyMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvZG93
bmxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdHMgdGhhdCByZXNwb25zZVJl
Y2VpdmVkIGlzIGNhbGxlZCBvbiBOZXR3b3JrRGlzcGF0Y2hlciBmb3IgZG93bmxvYWRzLgorCisK
K1JlY2VpdmVkIHJlc3BvbnNlIGZvciBkb3dubG9hZC56enoKK1NVQ0NFU1MKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0NWM2MDYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rvd25sb2Fk
Lmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZElGcmFt
ZVdpdGhEb3dubG9hZCgpCit7CisgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIpOworICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoInNyYyIsICJyZXNvdXJjZXMv
ZG93bmxvYWQuenp6Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwor
fQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2Vi
SW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSwgInJlc3BvbnNlUmVjZWl2ZWQi
LCByZXNwb25zZVJlY2VpdmVkKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5z
cGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSwgImxvYWRpbmdGYWlsZWQiLCBsb2Fk
aW5nRmFpbGVkKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLk5l
dHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSwgImxvYWRpbmdGaW5pc2hlZCIsIGxvYWRpbmdGaW5p
c2hlZCk7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZElGcmFtZVdpdGhE
b3dubG9hZCgpIik7CisKKyAgICBmdW5jdGlvbiByZXNwb25zZVJlY2VpdmVkKGlkZW50aWZpZXIs
IHRpbWUsIHJlc291cmNlVHlwZSwgcmVzcG9uc2UpCisgICAgeworICAgICAgICB2YXIgcmVzb3Vy
Y2UgPSBXZWJJbnNwZWN0b3IubmV0d29ya1Jlc291cmNlQnlJZChpZGVudGlmaWVyKTsKKyAgICAg
ICAgaWYgKC9kb3dubG9hZFwuenp6Ly5leGVjKHJlc291cmNlLnVybCkpIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZWNlaXZlZCByZXNwb25zZSBmb3IgZG93bmxvYWQu
enp6Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU1VDQ0VTUyIpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGZ1bmN0aW9uIGxvYWRpbmdGaW5pc2hlZChpZGVudGlmaWVyLCBmaW5pc2hUaW1l
KQorICAgIHsKKyAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtSZXNv
dXJjZUJ5SWQoaWRlbnRpZmllcik7CisgICAgICAgIGlmICgvZG93bmxvYWRcLnp6ei8uZXhlYyhy
ZXNvdXJjZS51cmwpKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2FkaW5nRmFpbGVkKGlkZW50aWZpZXIsIHRpbWUsIGxv
Y2FsaXplZERlc2NyaXB0aW9uLCBjYW5jZWxlZCkKKyAgICB7CisgICAgICAgIHZhciByZXNvdXJj
ZSA9IFdlYkluc3BlY3Rvci5uZXR3b3JrUmVzb3VyY2VCeUlkKGlkZW50aWZpZXIpOworICAgICAg
ICBpZiAoL2Rvd25sb2FkXC56enovLmV4ZWMocmVzb3VyY2UudXJsKSkKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyB0aGF0IHJlc3BvbnNlUmVjZWl2
ZWQgaXMgY2FsbGVkIG9uIE5ldHdvcmtEaXNwYXRjaGVyIGZvciBkb3dubG9hZHMuPC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZXMvZG93bmxvYWQuenp6IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvZG93bmxvYWQuenp6Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNDE4ZTcyLi5kY2Vk
YTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDQtMTIgIFZzZXZvbG9kIFZs
YXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTm8gaGVhZGVycyBpbmZvcm1hdGlv
biBpbiBuZXR3b3JrIHBhbmVsIGZvciBkb3dubG9hZHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODEzOQorCisgICAgICAgIFBhc3NlZCByZXNvdXJj
ZSByZXNwb25zZSB0byBpbnNwZWN0b3IgZm9yIFBvbGljeURvd25sb2FkIGFuZCBQb2xpY3lJZ25v
cmUgcmVxdWVzdHMuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9kb3dubG9hZC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlQnV0Q2FuY2VsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lEb3dubG9hZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVlV2l0aFBv
bGljeUlnbm9yZSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50
UG9saWN5KToKKwogMjAxMS0wNC0xMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA3N2M0NjRlLi4z
ZGY5MTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oCkBAIC0xMTgsNiArMTE4LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVSZXNvdXJjZURhdGEoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llJik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxs
UmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVz
b3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOworICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlQnV0Q2Fu
Y2VsZWQoRnJhbWUqLCBEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHN0YXRpYyB2b2lkIGNvbnRpbnVlV2l0aFBv
bGljeURvd25sb2FkKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBzdGF0aWMgdm9pZCBjb250aW51
ZVdpdGhQb2xpY3lJZ25vcmUoRnJhbWUqLCBEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHN0YXRpYyB2b2lkIGRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBp
bnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKICAgICBzdGF0aWMgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKEZyYW1lKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmlu
aXNoVGltZSk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRpbmcoRnJhbWUqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKQEAgLTY2NCw2ICs2Njcs
MjYgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVz
b3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3IKICAgICBkaWRSZWNlaXZlUmVzb3VyY2VSZXNw
b25zZUltcGwoY29va2llLCBpZGVudGlmaWVyLCBsb2FkZXIsIHJlc3BvbnNlKTsKICNlbmRpZgog
fQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3Vy
Y2VSZXNwb25zZUJ1dENhbmNlbGVkKEZyYW1lKiBmcmFtZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRl
ciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQor
eworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJj
ZVJlc3BvbnNlKGZyYW1lLCBpZGVudGlmaWVyLCByKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGNvb2tpZSwgaWRlbnRpZmllciwgbG9h
ZGVyLCByKTsKKyNlbmRpZgorfQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojpjb250aW51ZVdpdGhQb2xpY3lEb3dubG9hZChGcmFtZSogZnJhbWUsIERvY3VtZW50TG9hZGVy
KiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcikKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VCdXRDYW5jZWxlZChmcmFtZSwgbG9hZGVy
LCBpZGVudGlmaWVyLCByKTsKKyNlbmRpZgorfQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUoRnJhbWUqIGZyYW1lLCBEb2N1bWVu
dExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHIpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlQnV0Q2FuY2VsZWQoZnJhbWUs
IGxvYWRlciwgaWRlbnRpZmllciwgcik7CisjZW5kaWYKK30KKwogCiBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiBmcmFt
ZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJl
Y2VpdmVkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cAppbmRleCAwY2RiYzIxLi43MzhiZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJIVE1MRm9y
bUVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSAiUGx1Z2luRGF0YWJhc2Uu
aCIKQEAgLTI1Nyw2ICsyNTgsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVB
ZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uIGNvbnRlbnRQb2xpY3ksCiAgICAgfQogCiAg
ICAgY2FzZSBQb2xpY3lEb3dubG9hZDoKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojpjb250aW51ZVdpdGhQb2xpY3lEb3dubG9hZChtX2ZyYW1lLmdldCgpLCBkb2N1bWVudExvYWRl
cigpLCBpZGVudGlmaWVyKCksIHIpOwogICAgICAgICAvLyBtX2hhbmRsZSBjYW4gYmUgbnVsbCwg
ZS5nLiB3aGVuIGxvYWRpbmcgYSBzdWJzdGl0dXRlIHJlc291cmNlIGZyb20gYXBwbGljYXRpb24g
Y2FjaGUuCiAgICAgICAgIGlmICghbV9oYW5kbGUpIHsKICAgICAgICAgICAgIHJlY2VpdmVkRXJy
b3IoY2Fubm90U2hvd1VSTEVycm9yKCkpOwpAQCAtMjY5LDYgKzI3MSw3IEBAIHZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb24gY29u
dGVudFBvbGljeSwKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBQb2xpY3lJZ25vcmU6Cisg
ICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVXaXRoUG9saWN5SWdub3Jl
KG1fZnJhbWUuZ2V0KCksIGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgcik7CiAgICAg
ICAgIHN0b3BMb2FkaW5nRm9yUG9saWN5Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89414</attachid>
            <date>2011-04-13 11:37:47 -0700</date>
            <delta_ts>2011-04-14 06:00:19 -0700</delta_ts>
            <desc>Patch with fix</desc>
            <filename>downl</filename>
            <type>text/plain</type>
            <size>8452</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NmM4YjNkLi5kYjE3MzYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQt
MTMgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTm8gaGVh
ZGVycyBpbmZvcm1hdGlvbiBpbiBuZXR3b3JrIHBhbmVsIGZvciBkb3dubG9hZHMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODEzOQorCisgICAgICAg
IFBhc3NlZCByZXNvdXJjZSByZXNwb25zZSB0byBpbnNwZWN0b3IgZm9yIFBvbGljeURvd25sb2Fk
IGFuZCBQb2xpY3lJZ25vcmUgcmVxdWVzdHMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL2Rvd25sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56eno6IEFk
ZGVkLgorCiAyMDExLTA0LTEzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsgcGxhdGZvcm0gcmVzdWx0cyBmb3IgZnVsbC1z
Y3JlZW4tekluZGV4Lmh0bWwgdGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvZG93bmxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUxNmIyMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvZG93bmxvYWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdHMgdGhhdCByZXNwb25zZVJlY2VpdmVkIGlzIGNh
bGxlZCBvbiBOZXR3b3JrRGlzcGF0Y2hlciBmb3IgZG93bmxvYWRzLgorCisKK1JlY2VpdmVkIHJl
c3BvbnNlIGZvciBkb3dubG9hZC56enoKK1NVQ0NFU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0NWM2MDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rvd25sb2FkLmh0bWwKQEAgLTAs
MCArMSw0OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZElGcmFtZVdpdGhEb3dubG9h
ZCgpCit7CisgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIp
OworICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoInNyYyIsICJyZXNvdXJjZXMvZG93bmxvYWQuenp6
Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworfQorCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLk5l
dHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSwgInJlc3BvbnNlUmVjZWl2ZWQiLCByZXNwb25zZVJl
Y2VpdmVkKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLk5ldHdv
cmtEaXNwYXRjaGVyLnByb3RvdHlwZSwgImxvYWRpbmdGYWlsZWQiLCBsb2FkaW5nRmFpbGVkKTsK
KyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRj
aGVyLnByb3RvdHlwZSwgImxvYWRpbmdGaW5pc2hlZCIsIGxvYWRpbmdGaW5pc2hlZCk7CisgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZElGcmFtZVdpdGhEb3dubG9hZCgpIik7
CisKKyAgICBmdW5jdGlvbiByZXNwb25zZVJlY2VpdmVkKGlkZW50aWZpZXIsIHRpbWUsIHJlc291
cmNlVHlwZSwgcmVzcG9uc2UpCisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNw
ZWN0b3IubmV0d29ya1Jlc291cmNlQnlJZChpZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKC9kb3du
bG9hZFwuenp6Ly5leGVjKHJlc291cmNlLnVybCkpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJSZWNlaXZlZCByZXNwb25zZSBmb3IgZG93bmxvYWQuenp6Iik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU1VDQ0VTUyIpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1
bmN0aW9uIGxvYWRpbmdGaW5pc2hlZChpZGVudGlmaWVyLCBmaW5pc2hUaW1lKQorICAgIHsKKyAg
ICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtSZXNvdXJjZUJ5SWQoaWRl
bnRpZmllcik7CisgICAgICAgIGlmICgvZG93bmxvYWRcLnp6ei8uZXhlYyhyZXNvdXJjZS51cmwp
KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBsb2FkaW5nRmFpbGVkKGlkZW50aWZpZXIsIHRpbWUsIGxvY2FsaXplZERlc2Ny
aXB0aW9uLCBjYW5jZWxlZCkKKyAgICB7CisgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3Bl
Y3Rvci5uZXR3b3JrUmVzb3VyY2VCeUlkKGlkZW50aWZpZXIpOworICAgICAgICBpZiAoL2Rvd25s
b2FkXC56enovLmV4ZWMocmVzb3VyY2UudXJsKSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyB0aGF0IHJlc3BvbnNlUmVjZWl2ZWQgaXMgY2FsbGVk
IG9uIE5ldHdvcmtEaXNwYXRjaGVyIGZvciBkb3dubG9hZHMuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZXMvZG93bmxvYWQuenp6IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZXMvZG93bmxvYWQuenp6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjI1ZjcyMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56enoKQEAgLTAsMCArMSBA
QAorVGVzdCByZXNvdXJjZSBmb3IgdHJpZ2dlcmluZyBkb3dubG9hZHMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmI2NGMwMC4uZGI0Y2NlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTA0LTEz
ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vIGhlYWRl
cnMgaW5mb3JtYXRpb24gaW4gbmV0d29yayBwYW5lbCBmb3IgZG93bmxvYWRzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgxMzkKKworICAgICAgICBQ
YXNzZWQgcmVzb3VyY2UgcmVzcG9uc2UgdG8gaW5zcGVjdG9yIGZvciBQb2xpY3lEb3dubG9hZCBh
bmQgUG9saWN5SWdub3JlIHJlcXVlc3RzLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvZG93bmxvYWQuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUJ1dENhbmNlbGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVXaXRoUG9saWN5
RG93bmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpj
b250aW51ZVdpdGhQb2xpY3lJZ25vcmUpOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpjb250aW51
ZUFmdGVyQ29udGVudFBvbGljeSk6CisKIDIwMTEtMDQtMTMgIE1hcmlvIFNhbmNoZXogUHJhZGEg
IDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2Jp
bnNvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaAppbmRleCA3N2M0NjRlLi4zZGY5MTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0xMTgsNiArMTE4
LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZURhdGEoY29u
c3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoRnJhbWUq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAg
ICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50
TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHN0YXRpYyB2b2lkIGRpZFJl
Y2VpdmVSZXNvdXJjZVJlc3BvbnNlQnV0Q2FuY2VsZWQoRnJhbWUqLCBEb2N1bWVudExvYWRlcios
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAg
IHN0YXRpYyB2b2lkIGNvbnRpbnVlV2l0aFBvbGljeURvd25sb2FkKEZyYW1lKiwgRG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KTsKKyAgICBzdGF0aWMgdm9pZCBjb250aW51ZVdpdGhQb2xpY3lJZ25vcmUoRnJhbWUqLCBEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2Vp
dmVkKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKEZyYW1lKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgc3RhdGljIHZvaWQgZGlk
RmFpbExvYWRpbmcoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlRXJyb3ImKTsKQEAgLTY2NCw2ICs2NjcsMjYgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3IK
ICAgICBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoY29va2llLCBpZGVudGlmaWVyLCBs
b2FkZXIsIHJlc3BvbnNlKTsKICNlbmRpZgogfQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUJ1dENhbmNlbGVkKEZyYW1lKiBm
cmFtZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGZyYW1lLCBpZGVudGlmaWVyLCBy
KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3Bv
bnNlKGNvb2tpZSwgaWRlbnRpZmllciwgbG9hZGVyLCByKTsKKyNlbmRpZgorfQoraW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lEb3dubG9hZChG
cmFtZSogZnJhbWUsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQorICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9u
c2VCdXRDYW5jZWxlZChmcmFtZSwgbG9hZGVyLCBpZGVudGlmaWVyLCByKTsKKyNlbmRpZgorfQor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJ
Z25vcmUoRnJhbWUqIGZyYW1lLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCit7CisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJj
ZVJlc3BvbnNlQnV0Q2FuY2VsZWQoZnJhbWUsIGxvYWRlciwgaWRlbnRpZmllciwgcik7CisjZW5k
aWYKK30KKwogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2Vp
dmVDb250ZW50TGVuZ3RoKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBp
bnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCAwY2RiYzIxLi4zNTk1NGEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcApAQCAtMzksNiAr
MzksNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaWYgUExBVEZPUk0oUVQp
CiAjaW5jbHVkZSAiUGx1Z2luRGF0YWJhc2UuaCIKQEAgLTI2Miw2ICsyNjMsNyBAQCB2b2lkIE1h
aW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9u
IGNvbnRlbnRQb2xpY3ksCiAgICAgICAgICAgICByZWNlaXZlZEVycm9yKGNhbm5vdFNob3dVUkxF
cnJvcigpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVlV2l0aFBvbGljeURvd25sb2FkKG1fZnJhbWUuZ2V0
KCksIGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgcik7CiAgICAgICAgIGZyYW1lTG9h
ZGVyKCktPmNsaWVudCgpLT5kb3dubG9hZChtX2hhbmRsZS5nZXQoKSwgcmVxdWVzdCgpLCBtX2hh
bmRsZS5nZXQoKS0+Zmlyc3RSZXF1ZXN0KCksIHIpOwogICAgICAgICAvLyBJdCBtaWdodCBoYXZl
IGdvbmUgbWlzc2luZwogICAgICAgICBpZiAoZnJhbWVMb2FkZXIoKSkKQEAgLTI2OSw2ICsyNzEs
NyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3ko
UG9saWN5QWN0aW9uIGNvbnRlbnRQb2xpY3ksCiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2Ug
UG9saWN5SWdub3JlOgorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVl
V2l0aFBvbGljeUlnbm9yZShtX2ZyYW1lLmdldCgpLCBkb2N1bWVudExvYWRlcigpLCBpZGVudGlm
aWVyKCksIHIpOwogICAgICAgICBzdG9wTG9hZGluZ0ZvclBvbGljeUNoYW5nZSgpOwogICAgICAg
ICByZXR1cm47CiAgICAgCg==
</data>
<flag name="review"
          id="82084"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89568</attachid>
            <date>2011-04-14 06:00:19 -0700</date>
            <delta_ts>2011-04-14 19:40:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>downl</filename>
            <type>text/plain</type>
            <size>10778</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NmM4YjNkLi4zZjg2ZGQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQt
MTQgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTm8gaGVh
ZGVycyBpbmZvcm1hdGlvbiBpbiBuZXR3b3JrIHBhbmVsIGZvciBkb3dubG9hZHMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODEzOQorCisgICAgICAg
IFBhc3NlZCByZXNvdXJjZSByZXNwb25zZSB0byBpbnNwZWN0b3IgZm9yIFBvbGljeURvd25sb2Fk
IGFuZCBQb2xpY3lJZ25vcmUgcmVxdWVzdHMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL2Rvd25sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56eno6IEFk
ZGVkLgorCiAyMDExLTA0LTEzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsgcGxhdGZvcm0gcmVzdWx0cyBmb3IgZnVsbC1z
Y3JlZW4tekluZGV4Lmh0bWwgdGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvZG93bmxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUxNmIyMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvZG93bmxvYWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdHMgdGhhdCByZXNwb25zZVJlY2VpdmVkIGlzIGNh
bGxlZCBvbiBOZXR3b3JrRGlzcGF0Y2hlciBmb3IgZG93bmxvYWRzLgorCisKK1JlY2VpdmVkIHJl
c3BvbnNlIGZvciBkb3dubG9hZC56enoKK1NVQ0NFU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9kb3dubG9hZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0NWM2MDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL2Rvd25sb2FkLmh0bWwKQEAgLTAs
MCArMSw0OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZElGcmFtZVdpdGhEb3dubG9h
ZCgpCit7CisgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIp
OworICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoInNyYyIsICJyZXNvdXJjZXMvZG93bmxvYWQuenp6
Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworfQorCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLk5l
dHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSwgInJlc3BvbnNlUmVjZWl2ZWQiLCByZXNwb25zZVJl
Y2VpdmVkKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLk5ldHdv
cmtEaXNwYXRjaGVyLnByb3RvdHlwZSwgImxvYWRpbmdGYWlsZWQiLCBsb2FkaW5nRmFpbGVkKTsK
KyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRj
aGVyLnByb3RvdHlwZSwgImxvYWRpbmdGaW5pc2hlZCIsIGxvYWRpbmdGaW5pc2hlZCk7CisgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZElGcmFtZVdpdGhEb3dubG9hZCgpIik7
CisKKyAgICBmdW5jdGlvbiByZXNwb25zZVJlY2VpdmVkKGlkZW50aWZpZXIsIHRpbWUsIHJlc291
cmNlVHlwZSwgcmVzcG9uc2UpCisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNw
ZWN0b3IubmV0d29ya1Jlc291cmNlQnlJZChpZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKC9kb3du
bG9hZFwuenp6Ly5leGVjKHJlc291cmNlLnVybCkpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJSZWNlaXZlZCByZXNwb25zZSBmb3IgZG93bmxvYWQuenp6Iik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU1VDQ0VTUyIpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1
bmN0aW9uIGxvYWRpbmdGaW5pc2hlZChpZGVudGlmaWVyLCBmaW5pc2hUaW1lKQorICAgIHsKKyAg
ICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtSZXNvdXJjZUJ5SWQoaWRl
bnRpZmllcik7CisgICAgICAgIGlmICgvZG93bmxvYWRcLnp6ei8uZXhlYyhyZXNvdXJjZS51cmwp
KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBsb2FkaW5nRmFpbGVkKGlkZW50aWZpZXIsIHRpbWUsIGxvY2FsaXplZERlc2Ny
aXB0aW9uLCBjYW5jZWxlZCkKKyAgICB7CisgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3Bl
Y3Rvci5uZXR3b3JrUmVzb3VyY2VCeUlkKGlkZW50aWZpZXIpOworICAgICAgICBpZiAoL2Rvd25s
b2FkXC56enovLmV4ZWMocmVzb3VyY2UudXJsKSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyB0aGF0IHJlc3BvbnNlUmVjZWl2ZWQgaXMgY2FsbGVk
IG9uIE5ldHdvcmtEaXNwYXRjaGVyIGZvciBkb3dubG9hZHMuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZXMvZG93bmxvYWQuenp6IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZXMvZG93bmxvYWQuenp6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjI1ZjcyMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlcy9kb3dubG9hZC56enoKQEAgLTAsMCArMSBA
QAorVGVzdCByZXNvdXJjZSBmb3IgdHJpZ2dlcmluZyBkb3dubG9hZHMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmI2NGMwMC4uMzJlNmQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTA0LTE0
ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vIGhlYWRl
cnMgaW5mb3JtYXRpb24gaW4gbmV0d29yayBwYW5lbCBmb3IgZG93bmxvYWRzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgxMzkKKworICAgICAgICBQ
YXNzZWQgcmVzb3VyY2UgcmVzcG9uc2UgdG8gaW5zcGVjdG9yIGZvciBQb2xpY3lEb3dubG9hZCBh
bmQgUG9saWN5SWdub3JlIHJlcXVlc3RzLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvZG93bmxvYWQuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlQnV0Q2FuY2VsZWRJbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVXaXRo
UG9saWN5RG93bmxvYWRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6Y29udGludWVXaXRoUG9saWN5SWdub3JlSW1wbCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lEb3dubG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnRpbnVlV2l0aFBvbGljeUln
bm9yZSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5
KToKKwogMjAxMS0wNC0xMyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRl
eCBkMmI3M2Y0Li42NjY4NWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNDU3LDYgKzQ1NywyMiBAQCB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBs
KGNvbnN0IEluc3BlY3RvcklucwogICAgIH0KIH0KIAordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlQnV0Q2FuY2VsZWRJbXBsKEZyYW1lKiBm
cmFtZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQoreworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVz
b3VyY2VSZXNwb25zZShmcmFtZSwgaWRlbnRpZmllciwgcik7CisgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShjb29raWUsIGlkZW50aWZpZXIs
IGxvYWRlciwgcik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51
ZVdpdGhQb2xpY3lEb3dubG9hZEltcGwoRnJhbWUqIGZyYW1lLCBEb2N1bWVudExvYWRlciogbG9h
ZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIp
Cit7CisgICAgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VCdXRDYW5jZWxlZEltcGwoZnJhbWUs
IGxvYWRlciwgaWRlbnRpZmllciwgcik7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmVJbXBsKEZyYW1lKiBmcmFtZSwgRG9jdW1lbnRM
b2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByKQoreworICAgIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlQnV0Q2FuY2VsZWRJ
bXBsKGZyYW1lLCBsb2FkZXIsIGlkZW50aWZpZXIsIHIpOworfQorCiB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKEluc3BlY3RvckFnZW50
KiBpbnNwZWN0b3JBZ2VudCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0
aCwgaW50IGxlbmd0aFJlY2VpdmVkKQogewogICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50
KiByZXNvdXJjZUFnZW50ID0gcmV0cmlldmVSZXNvdXJjZUFnZW50KGluc3BlY3RvckFnZW50KSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaAppbmRleCA3N2M0NjRlLi5jMjRhMDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0xMTgsNiArMTE4LDggQEAg
cHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZURhdGEoY29uc3QgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoRnJhbWUqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBzdGF0
aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVy
KiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHN0YXRpYyB2b2lkIGNvbnRpbnVlV2l0
aFBvbGljeURvd25sb2FkKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBzdGF0aWMgdm9pZCBjb250
aW51ZVdpdGhQb2xpY3lJZ25vcmUoRnJhbWUqLCBEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHN0YXRpYyB2b2lk
IGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKICAgICBzdGF0aWMgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKEZyYW1lKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUg
ZmluaXNoVGltZSk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRpbmcoRnJhbWUqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKQEAgLTIzNCw2ICsy
MzYsOSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZURhdGFJ
bXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNl
SW1wbChJbnNwZWN0b3JBZ2VudCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3Bv
bnNlSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OworICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlQnV0Q2FuY2VsZWRJ
bXBsKEZyYW1lKiwgRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBzdGF0aWMgdm9pZCBjb250aW51ZVdpdGhQb2xp
Y3lEb3dubG9hZEltcGwoRnJhbWUqLCBEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHN0YXRpYyB2b2lkIGNvbnRp
bnVlV2l0aFBvbGljeUlnbm9yZUltcGwoRnJhbWUqLCBEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChJbnNwZWN0b3JBZ2VudCosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAg
ICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zcGVjdG9yQWdlbnQqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICBzdGF0aWMgdm9p
ZCBkaWRGYWlsTG9hZGluZ0ltcGwoSW5zcGVjdG9yQWdlbnQqLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKQEAgLTY2NSw2ICs2NzAsMjIgQEAgaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25z
ZShjb25zdCBJbnNwZWN0b3IKICNlbmRpZgogfQogCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmNvbnRpbnVlV2l0aFBvbGljeURvd25sb2FkKEZyYW1lKiBmcmFtZSwgRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKGluc3Bl
Y3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmNvbnRpbnVlV2l0aFBvbGljeURvd25sb2FkSW1wbChmcmFtZSwgbG9h
ZGVyLCBpZGVudGlmaWVyLCByKTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmNvbnRpbnVlV2l0aFBvbGljeUlnbm9yZShGcmFtZSogZnJhbWUsIERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcikKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChpbnNw
ZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25vcmVJbXBsKGZyYW1lLCBsb2Fk
ZXIsIGlkZW50aWZpZXIsIHIpOworI2VuZGlmCit9CisKIGlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQp
CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5S
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMGNkYmMyMS4uMzU5NTRhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUg
IlBsdWdpbkRhdGFiYXNlLmgiCkBAIC0yNjIsNiArMjYzLDcgQEAgdm9pZCBNYWluUmVzb3VyY2VM
b2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlvbiBjb250ZW50UG9s
aWN5LAogICAgICAgICAgICAgcmVjZWl2ZWRFcnJvcihjYW5ub3RTaG93VVJMRXJyb3IoKSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lEb3dubG9hZChtX2ZyYW1lLmdldCgpLCBkb2N1bWVu
dExvYWRlcigpLCBpZGVudGlmaWVyKCksIHIpOwogICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGll
bnQoKS0+ZG93bmxvYWQobV9oYW5kbGUuZ2V0KCksIHJlcXVlc3QoKSwgbV9oYW5kbGUuZ2V0KCkt
PmZpcnN0UmVxdWVzdCgpLCByKTsKICAgICAgICAgLy8gSXQgbWlnaHQgaGF2ZSBnb25lIG1pc3Np
bmcKICAgICAgICAgaWYgKGZyYW1lTG9hZGVyKCkpCkBAIC0yNjksNiArMjcxLDcgQEAgdm9pZCBN
YWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlv
biBjb250ZW50UG9saWN5LAogICAgICAgICByZXR1cm47CiAKICAgICBjYXNlIFBvbGljeUlnbm9y
ZToKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJ
Z25vcmUobV9mcmFtZS5nZXQoKSwgZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpLCByKTsK
ICAgICAgICAgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>