<?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>18297</bug_id>
          
          <creation_ts>2008-04-03 04:54:50 -0700</creation_ts>
          <short_desc>Acid2/Acid3 -tests don&apos;t load load with soup</short_desc>
          <delta_ts>2008-04-07 06:36:33 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
    
    <cc>christian</cc>
    
    <cc>lethalman88</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>76226</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-03 04:54:50 -0700</bug_when>
    <thetext>The Acid2- and the Acid3-test don&apos;t load with the http-backend soup on WebKit Gtk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76243</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-03 10:26:44 -0700</bug_when>
    <thetext>*** Bug 18301 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76331</commentid>
    <comment_count>2</comment_count>
      <attachid>20336</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-04 14:08:30 -0700</bug_when>
    <thetext>Created attachment 20336
fixes the issue and implement missing features

The issue was that the data url wasn&apos;t loaded, since didFinishLoading was called inside the start of the job and webkit didn&apos;t recognize the data loading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76344</commentid>
    <comment_count>3</comment_count>
      <attachid>20344</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-04 15:54:24 -0700</bug_when>
    <thetext>Created attachment 20344
fixes the issue and implement missing features

Forgot a line of code which i thought not important.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76368</commentid>
    <comment_count>4</comment_count>
      <attachid>20350</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-05 03:26:34 -0700</bug_when>
    <thetext>Created attachment 20350
fix response urls and only catch transport errors

I think client errors and server errors can be shown instead of fail, so i left only transport errors such as network errors or soup errors to fail.
Also set the effective url of the response, this fixes several problems i don&apos;t know how to explain because of my poor English ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76385</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-04-05 12:06:56 -0700</bug_when>
    <thetext>The patch works fine for me. I have no problems with loading additional files (stylesheets, images) anymore. But there is a problem left, and I m not sure to open a new bug-report or if it is related to this bug.
If you load sites like the acid2-test, http://www.msn.com , http://www.phoronix.com the site starts to load, but GtkLauncher quits with a segmentation fault.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76388</commentid>
    <comment_count>6</comment_count>
      <attachid>20355</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-05 13:36:16 -0700</bug_when>
    <thetext>Created attachment 20355
fix re-entrancy cancellation

Fixed re-entrancy on job cancellation, this time without deferring the cancellation.
Soup headers are not in UTF8, in fact it crashes while loading msn. I just removed the String::fromUTF8 and pass the plain value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76418</commentid>
    <comment_count>7</comment_count>
      <attachid>20364</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-06 04:26:28 -0700</bug_when>
    <thetext>Created attachment 20364
add WebKitResourceError

Fixes failure on unknown protocol.
I thought it was time to add some errors and created WebKitResourceError.
Anyway i can&apos;t see a crash in g_signal_emit_valist, when called from dispatchDidFailLoading. I don&apos;t know how it can crash, if please anyone who can test and help finding this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76420</commentid>
    <comment_count>8</comment_count>
      <attachid>20366</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-06 08:30:50 -0700</bug_when>
    <thetext>Created attachment 20366
add WebKitResourceError

Didn&apos;t store the return value of load-failed emission.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76421</commentid>
    <comment_count>9</comment_count>
      <attachid>20367</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-06 09:20:43 -0700</bug_when>
    <thetext>Created attachment 20367
alternative using GError

As suggested by kalikiana.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76426</commentid>
    <comment_count>10</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2008-04-06 10:25:49 -0700</bug_when>
    <thetext>We had a brief conversation in the IRC about this. I suggested that it should be a good idea to use GError and also that the default error implementation should not be a dialog.

It&apos;s nice to see you already proposed a patch for GError in no time, thanks for that.

As for the error message, we do not want a modal dialog. This is a mistake firefox/ gecko made initially as well until Mozilla switched to HTML error pages. Other browsers do this as well. For what I want, it doesn&apos;t matter much how that page looks, we can work out a design for any WebKit internal informational pages in a separate patch/ bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76428</commentid>
    <comment_count>11</comment_count>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-06 10:50:35 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; We had a brief conversation in the IRC about this. I suggested that it should
&gt; be a good idea to use GError and also that the default error implementation
&gt; should not be a dialog.
&gt; 
&gt; It&apos;s nice to see you already proposed a patch for GError in no time, thanks for
&gt; that.
&gt; 
&gt; As for the error message, we do not want a modal dialog. This is a mistake
&gt; firefox/ gecko made initially as well until Mozilla switched to HTML error
&gt; pages. Other browsers do this as well. For what I want, it doesn&apos;t matter much
&gt; how that page looks, we can work out a design for any WebKit internal
&gt; informational pages in a separate patch/ bug.
&gt; 

I totally agree, but for the HTML pages even simple would be another bug. I won&apos;t work anymore on that for this bug context. Once the patch is landed i&apos;ll open a bug for that and work on it as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76440</commentid>
    <comment_count>12</comment_count>
      <attachid>20373</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-06 12:54:13 -0700</bug_when>
    <thetext>Created attachment 20373
fill response headers on redirects

Response headers were not filled in restartedCallback.
Missing enum name for network errors.
Some styling issues fixed.
Added further comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76453</commentid>
    <comment_count>13</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-04-06 20:25:35 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=20373) [edit]
&gt; fill response headers on redirects
&gt; 
&gt; Response headers were not filled in restartedCallback.
&gt; Missing enum name for network errors.
&gt; Some styling issues fixed.
&gt; Added further comments.
&gt; 

The public API additions provide an important feature but it&apos;d be best to do that separately so we can get the main fixes in your patch without having to figure out how http errors are passed up at the same time. I think there are a few possible ways of exposing the errors and not sure this approach is the best one.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76486</commentid>
    <comment_count>14</comment_count>
      <attachid>20379</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2008-04-07 05:22:46 -0700</bug_when>
    <thetext>Created attachment 20379
remove errors

Hopefully this is the final one :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76493</commentid>
    <comment_count>15</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-04-07 06:36:33 -0700</bug_when>
    <thetext>Landed in r31682.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20336</attachid>
            <date>2008-04-04 14:08:30 -0700</date>
            <delta_ts>2008-04-04 15:54:24 -0700</delta_ts>
            <desc>fixes the issue and implement missing features</desc>
            <filename>soup.patch</filename>
            <type>text/plain</type>
            <size>8060</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTYzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMDQtMDQgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGRhdGEgdXJsIHBhcnNpbmcsIGFjaWQgdGVzdHMsIHJlZGlyZWN0cyBhbmQgcmVzcG9uc2Ug
aGVhZGVycyBoYW5kbGluZyBpbiBzb3VwIGJhY2tlbmQuCisgICAgICAgIFRoYW5rcyB0byBEYW4g
V2luc2hpcCBmb3IgbGlic291cCBoaW50cy4KKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNF
UyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOiBhZGQgbV9jYW5jZWxsZWQKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlc3RhcnRlZENhbGxiYWNrKTogYWRkZWQgZm9yIHBhc3NpbmcgcmVkaXJlY3RzIHRv
IHdlYmtpdAorICAgICAgICAoV2ViQ29yZTo6ZGF0YUNhbGxiYWNrKTogYWRkIHJlc3BvbnNlIGhl
YWRlcnMgYW5kIGFkZCBzb21lIGNoZWNrcworICAgICAgICAoV2ViQ29yZTo6cGFyc2VEYXRhVXJs
KTogYmUgYW4gaWRsZSBjYWxsYmFjayBmb3IgdGhlIG1haW4gbG9vcAorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpjYW5jZWwpOgorCiAyMDA4LTA0LTA0ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBDb3B5IGljdS8gdG8gUHJpdmF0ZUhlYWRlcnMgZm9yIFdlYktpdCdzIGJl
bmVmaXQKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVy
bmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaAkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAg
ICAgICAsIG1fbXNnKDApCisgICAgICAgICAgICAsIG1fY2FuY2VsbGVkKGZhbHNlKQogI2VuZGlm
CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCkBAIC0xNzMsOCArMTc0
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAg
IFNvdXBNZXNzYWdlKiBtX21zZzsKLSAgICAgICAgU291cFNlc3Npb24qIHNlc3Npb247CiAgICAg
ICAgIFJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKKyAgICAgICAgYm9vbCBtX2NhbmNlbGxl
ZDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogI2lmIFFUX1ZFUlNJT04gPCAweDA0MDQwMApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCShyZXZpc2lvbiAzMTYzMykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFNvdXBTZXNzaW9uKiBzZXNzaW9u
ID0gMDsKK3N0YXRpYyBjb25zdCBpbnQgbWF4Q29ubmVjdGlvbnNQZXJIb3N0ID0gNTsKIAogUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJuYWwoKQogewpAQCAtNTIs
OSArNTMsMzIgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiB7CiB9CiAKK3N0
YXRpYyB2b2lkIHJlc3RhcnRlZENhbGxiYWNrKFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRh
dGEpCit7CisgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNl
SGFuZGxlKj4oZGF0YSk7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybjsKKyAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOworICAgIGlm
IChkLT5tX2NhbmNlbGxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2hhciogdXJpID0gc291
cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICBT
dHJpbmcgbG9jYXRpb24gPSBTdHJpbmcodXJpKTsKKyAgICBnX2ZyZWUodXJpKTsKKyAgICBLVVJM
IG5ld1VSTCA9IEtVUkwoaGFuZGxlLT5yZXF1ZXN0KCkudXJsKCksIGxvY2F0aW9uKTsKKyAgICAg
ICAgICAgIAorICAgIFJlc291cmNlUmVxdWVzdCByZWRpcmVjdGVkUmVxdWVzdCA9IGhhbmRsZS0+
cmVxdWVzdCgpOworICAgIHJlZGlyZWN0ZWRSZXF1ZXN0LnNldFVSTChuZXdVUkwpOworICAgIGlm
IChkLT5jbGllbnQoKSkKKyAgICAgICAgZC0+Y2xpZW50KCktPndpbGxTZW5kUmVxdWVzdChoYW5k
bGUsIHJlZGlyZWN0ZWRSZXF1ZXN0LCBkLT5tX3Jlc3BvbnNlKTsKKyAgICAKKyAgICBkLT5tX3Jl
cXVlc3Quc2V0VVJMKG5ld1VSTCk7Cit9CisKIHN0YXRpYyB2b2lkIGRhdGFDYWxsYmFjayhTb3Vw
U2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKIHsKICAg
ICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihk
YXRhKTsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5h
bCgpOwogICAgIC8vIFRPRE86IG1heWJlIHdlIHNob3VsZCBydW4gdGhpcyBjb2RlIGV2ZW4gaWYg
dGhlcmUncyBubyBjbGllbnQ/CiAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgIHJldHVybjsKQEAg
LTYyLDIzICs4Niw0MCBAQCBzdGF0aWMgdm9pZCBkYXRhQ2FsbGJhY2soU291cFNlc3Npb24gKnNl
CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2U7Ci0KLSAgICBTdHJpbmcgY29udGVudFR5cGUgPSBTdHJpbmcoc291cF9tZXNz
YWdlX2hlYWRlcnNfZ2V0KG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpKTsK
LSAgICByZXNwb25zZS5zZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKSk7Ci0gICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hh
cnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQp
CisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAoU09VUF9TVEFUVVNfSVNfQ0xJRU5UX0VS
Uk9SKG1zZy0+c3RhdHVzX2NvZGUpIHx8IFNPVVBfU1RBVFVTX0lTX1NFUlZFUl9FUlJPUihtc2ct
PnN0YXR1c19jb2RlKSB8fAorICAgICAgICBTT1VQX1NUQVRVU19JU19UUkFOU1BPUlRfRVJST1Io
bXNnLT5zdGF0dXNfY29kZSkpIHsKKyAgICAgICAgY2hhciogdXJpID0gc291cF91cmlfdG9fc3Ry
aW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICAgICAgUmVzb3VyY2VF
cnJvciBlcnJvcih1cmksIG1zZy0+c3RhdHVzX2NvZGUsIHVyaSwgU3RyaW5nKG1zZy0+cmVhc29u
X3BocmFzZSkgKyAiICIgKyB1cmkpOworICAgICAgICBnX2ZyZWUodXJpKTsKKyAgICAgICAgY2xp
ZW50LT5kaWRGYWlsKGhhbmRsZSwgZXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0g
ICAgcmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKG1zZy0+cmVzcG9uc2VfYm9keS0+
bGVuZ3RoKTsKLSAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShtc2ctPnN0YXR1c19jb2Rl
KTsKKyAgICBTb3VwTWVzc2FnZUhlYWRlcnNJdGVyIGl0ZXI7CisgICAgY29uc3QgY2hhciogbmFt
ZSA9IE5VTEw7CisgICAgY29uc3QgY2hhciogdmFsdWUgPSBOVUxMOworICAgIHNvdXBfbWVzc2Fn
ZV9oZWFkZXJzX2l0ZXJfaW5pdCAoJml0ZXIsIG1zZy0+cmVzcG9uc2VfaGVhZGVycyk7CisgICAg
d2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaXRlciwgJm5hbWUsICZ2YWx1
ZSkpCisgICAgICAgIGQtPm1fcmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKG5hbWUsIFN0cmlu
Zzo6ZnJvbVVURjgodmFsdWUpKTsKKworICAgIFN0cmluZyBjb250ZW50VHlwZSA9IFN0cmluZzo6
ZnJvbVVURjgoc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0KG1zZy0+cmVzcG9uc2VfaGVhZGVycywg
IkNvbnRlbnQtVHlwZSIpKTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RN
SU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNl
dFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBl
KSk7CisgICAgZC0+bV9yZXNwb25zZS5zZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgobXNnLT5yZXNw
b25zZV9ib2R5LT5sZW5ndGgpOworICAgIGQtPm1fcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUo
bXNnLT5zdGF0dXNfY29kZSk7CisgICAgY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxl
LCBkLT5tX3Jlc3BvbnNlKTsKIAotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRs
ZSwgcmVzcG9uc2UpOwogICAgIGlmIChtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEpCi0gICAgICAg
IGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEs
IG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCAwKTsKKyAgICAgICAgY2xpZW50LT5kaWRSZWNl
aXZlRGF0YShoYW5kbGUsIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSwgbXNnLT5yZXNwb25zZV9i
b2R5LT5sZW5ndGgsIDApOyAgCiAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7
CiB9CiAKLXN0YXRpYyB2b2lkIHBhcnNlRGF0YVVybChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQor
c3RhdGljIGdib29sZWFuIHBhcnNlRGF0YVVybChncG9pbnRlciBjYWxsYmFja19kYXRhKQogewor
ICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+
KGNhbGxiYWNrX2RhdGEpOwogICAgIFN0cmluZyBkYXRhID0gaGFuZGxlLT5yZXF1ZXN0KCkudXJs
KCkuc3RyaW5nKCk7CiAKICAgICBBU1NFUlQoZGF0YS5zdGFydHNXaXRoKCJkYXRhOiIsIGZhbHNl
KSk7CkBAIC0xMzMsNiArMTc0LDggQEAgc3RhdGljIHZvaWQgcGFyc2VEYXRhVXJsKFJlc291cmNl
SGFuZGxlKgogICAgIGdfZnJlZShvdXREYXRhKTsKIAogICAgIGNsaWVudC0+ZGlkRmluaXNoTG9h
ZGluZyhoYW5kbGUpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQogCiBib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCkBAIC0xNDgsOCArMTkxLDggQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgIFN0cmluZyBwcm90b2NvbCA9IHVybC5w
cm90b2NvbCgpOwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHByb3RvY29sLCAiZGF0YSIp
KSB7Ci0gICAgICAgIHBhcnNlRGF0YVVybCh0aGlzKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBnX2lkbGVfYWRkKHBhcnNlRGF0YVVybCwgdGhpcyk7CisgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAogICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UocHJvdG9jb2wsICJodHRw
IikgJiYgIWVxdWFsSWdub3JpbmdDYXNlKHByb3RvY29sLCAiaHR0cHMiKSkgewpAQCAtMTY5LDIz
ICsyMTIsMTEgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAg
IH0KIAogICAgIGlmICghc2Vzc2lvbikKLSAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9h
c3luY19uZXcoKTsKKyAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXdfd2l0
aF9vcHRpb25zKFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hPU1QsIDUsIE5VTEwpOwogCiAg
ICAgU291cE1lc3NhZ2UqIG1zZzsKLSAgICBjb25zdCBjaGFyKiBtZXRob2QgPSAwOwotCi0gICAg
aWYgKHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIkdFVCIpCi0gICAgICAgIG1ldGhvZCA9IFNP
VVBfTUVUSE9EX0dFVDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQ
T1NUIikKLSAgICAgICAgbWV0aG9kID0gU09VUF9NRVRIT0RfUE9TVDsKLSAgICBlbHNlIGlmIChy
ZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJIRUFEIikKLSAgICAgICAgbWV0aG9kID0gU09VUF9N
RVRIT0RfSEVBRDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQVVQi
KQotICAgICAgICBtZXRob2QgPSBTT1VQX01FVEhPRF9QVVQ7Ci0gICAgZWxzZQotICAgICAgICBn
X2RlYnVnICgiVW5rbm93biBtZXRob2QhIik7Ci0KLSAgICBtc2cgPSBzb3VwX21lc3NhZ2VfbmV3
KG1ldGhvZD8gbWV0aG9kIDogU09VUF9NRVRIT0RfR0VULCB1cmxTdHJpbmcudXRmOCgpLmRhdGEo
KSk7CisgICAgbXNnID0gc291cF9tZXNzYWdlX25ldyhyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpLnV0
ZjgoKS5kYXRhKCksIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICBnX3NpZ25hbF9jb25u
ZWN0KG1zZywgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCB0aGlz
KTsKIAogICAgIEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9IGQtPm1fcmVxdWVzdC5odHRw
SGVhZGVyRmllbGRzKCk7CiAgICAgaWYgKCFjdXN0b21IZWFkZXJzLmlzRW1wdHkoKSkgewpAQCAt
MjA5LDggKzI0MCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVBfTUVNT1JZX0NPUFksIGJvZHku
ZGF0YSgpLCBib2R5LnNpemUoKSk7CiAgICAgfQogCi0gICAgZC0+bV9tc2cgPSAoU291cE1lc3Nh
Z2UqKWdfb2JqZWN0X3JlZihtc2cpOwotICAgIGQtPnNlc3Npb24gPSBzZXNzaW9uOworICAgIGQt
Pm1fbXNnID0gc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2UqPihnX29iamVjdF9yZWYobXNnKSk7CiAg
ICAgc291cF9zZXNzaW9uX3F1ZXVlX21lc3NhZ2Uoc2Vzc2lvbiwgZC0+bV9tc2csIGRhdGFDYWxs
YmFjaywgdGhpcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIxOCwxMCArMjQ4LDEwIEBAIGJv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKIAogdm9pZCBSZXNvdXJjZUhh
bmRsZTo6Y2FuY2VsKCkKIHsKLSAgICBpZiAoZC0+bV9tc2cpCi0gICAgICAgIHNvdXBfc2Vzc2lv
bl9jYW5jZWxfbWVzc2FnZSAoZC0+c2Vzc2lvbiwgZC0+bV9tc2csIFNPVVBfU1RBVFVTX0NBTkNF
TExFRCk7Ci0KLSAgICBjbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICBpZiAo
ZC0+bV9tc2cpIHsKKyAgICAgICAgZC0+bV9jYW5jZWxsZWQgPSB0cnVlOworICAgICAgICBzb3Vw
X3Nlc3Npb25fY2FuY2VsX21lc3NhZ2UgKHNlc3Npb24sIGQtPm1fbXNnLCBTT1VQX1NUQVRVU19D
QU5DRUxMRUQpOworICAgIH0KIH0KIAogUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291cmNl
SGFuZGxlOjpidWZmZXJlZERhdGEoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20344</attachid>
            <date>2008-04-04 15:54:24 -0700</date>
            <delta_ts>2008-04-05 03:26:34 -0700</delta_ts>
            <desc>fixes the issue and implement missing features</desc>
            <filename>soup.patch</filename>
            <type>text/plain</type>
            <size>8102</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTYzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMDQtMDQgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGRhdGEgdXJsIHBhcnNpbmcsIGFjaWQgdGVzdHMsIHJlZGlyZWN0cyBhbmQgcmVzcG9uc2Ug
aGVhZGVycyBoYW5kbGluZyBpbiBzb3VwIGJhY2tlbmQuCisgICAgICAgIFRoYW5rcyB0byBEYW4g
V2luc2hpcCBmb3IgbGlic291cCBoaW50cy4KKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNF
UyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOiBhZGQgbV9jYW5jZWxsZWQKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlc3RhcnRlZENhbGxiYWNrKTogYWRkZWQgZm9yIHBhc3NpbmcgcmVkaXJlY3RzIHRv
IHdlYmtpdAorICAgICAgICAoV2ViQ29yZTo6ZGF0YUNhbGxiYWNrKTogYWRkIHJlc3BvbnNlIGhl
YWRlcnMgYW5kIGFkZCBzb21lIGNoZWNrcworICAgICAgICAoV2ViQ29yZTo6cGFyc2VEYXRhVXJs
KTogYmUgYW4gaWRsZSBjYWxsYmFjayBmb3IgdGhlIG1haW4gbG9vcAorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpjYW5jZWwpOgorCiAyMDA4LTA0LTA0ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBDb3B5IGljdS8gdG8gUHJpdmF0ZUhlYWRlcnMgZm9yIFdlYktpdCdzIGJl
bmVmaXQKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVy
bmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaAkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAg
ICAgICAsIG1fbXNnKDApCisgICAgICAgICAgICAsIG1fY2FuY2VsbGVkKGZhbHNlKQogI2VuZGlm
CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCkBAIC0xNzMsOCArMTc0
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAg
IFNvdXBNZXNzYWdlKiBtX21zZzsKLSAgICAgICAgU291cFNlc3Npb24qIHNlc3Npb247CiAgICAg
ICAgIFJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKKyAgICAgICAgYm9vbCBtX2NhbmNlbGxl
ZDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogI2lmIFFUX1ZFUlNJT04gPCAweDA0MDQwMApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCShyZXZpc2lvbiAzMTYzMykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFNvdXBTZXNzaW9uKiBzZXNzaW9u
ID0gMDsKK3N0YXRpYyBjb25zdCBpbnQgbWF4Q29ubmVjdGlvbnNQZXJIb3N0ID0gNTsKIAogUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJuYWwoKQogewpAQCAtNTIs
OSArNTMsMzIgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiB7CiB9CiAKK3N0
YXRpYyB2b2lkIHJlc3RhcnRlZENhbGxiYWNrKFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRh
dGEpCit7CisgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNl
SGFuZGxlKj4oZGF0YSk7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybjsKKyAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOworICAgIGlm
IChkLT5tX2NhbmNlbGxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2hhciogdXJpID0gc291
cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICBT
dHJpbmcgbG9jYXRpb24gPSBTdHJpbmcodXJpKTsKKyAgICBnX2ZyZWUodXJpKTsKKyAgICBLVVJM
IG5ld1VSTCA9IEtVUkwoaGFuZGxlLT5yZXF1ZXN0KCkudXJsKCksIGxvY2F0aW9uKTsKKyAgICAg
ICAgICAgIAorICAgIFJlc291cmNlUmVxdWVzdCByZWRpcmVjdGVkUmVxdWVzdCA9IGhhbmRsZS0+
cmVxdWVzdCgpOworICAgIHJlZGlyZWN0ZWRSZXF1ZXN0LnNldFVSTChuZXdVUkwpOworICAgIGlm
IChkLT5jbGllbnQoKSkKKyAgICAgICAgZC0+Y2xpZW50KCktPndpbGxTZW5kUmVxdWVzdChoYW5k
bGUsIHJlZGlyZWN0ZWRSZXF1ZXN0LCBkLT5tX3Jlc3BvbnNlKTsKKyAgICAKKyAgICBkLT5tX3Jl
cXVlc3Quc2V0VVJMKG5ld1VSTCk7Cit9CisKIHN0YXRpYyB2b2lkIGRhdGFDYWxsYmFjayhTb3Vw
U2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKIHsKICAg
ICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihk
YXRhKTsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5h
bCgpOwogICAgIC8vIFRPRE86IG1heWJlIHdlIHNob3VsZCBydW4gdGhpcyBjb2RlIGV2ZW4gaWYg
dGhlcmUncyBubyBjbGllbnQ/CiAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgIHJldHVybjsKQEAg
LTYyLDIzICs4Niw0MCBAQCBzdGF0aWMgdm9pZCBkYXRhQ2FsbGJhY2soU291cFNlc3Npb24gKnNl
CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2U7Ci0KLSAgICBTdHJpbmcgY29udGVudFR5cGUgPSBTdHJpbmcoc291cF9tZXNz
YWdlX2hlYWRlcnNfZ2V0KG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpKTsK
LSAgICByZXNwb25zZS5zZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKSk7Ci0gICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hh
cnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQp
CisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAoU09VUF9TVEFUVVNfSVNfQ0xJRU5UX0VS
Uk9SKG1zZy0+c3RhdHVzX2NvZGUpIHx8IFNPVVBfU1RBVFVTX0lTX1NFUlZFUl9FUlJPUihtc2ct
PnN0YXR1c19jb2RlKSB8fAorICAgICAgICBTT1VQX1NUQVRVU19JU19UUkFOU1BPUlRfRVJST1Io
bXNnLT5zdGF0dXNfY29kZSkpIHsKKyAgICAgICAgY2hhciogdXJpID0gc291cF91cmlfdG9fc3Ry
aW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICAgICAgUmVzb3VyY2VF
cnJvciBlcnJvcih1cmksIG1zZy0+c3RhdHVzX2NvZGUsIHVyaSwgU3RyaW5nKG1zZy0+cmVhc29u
X3BocmFzZSkgKyAiICIgKyB1cmkpOworICAgICAgICBnX2ZyZWUodXJpKTsKKyAgICAgICAgY2xp
ZW50LT5kaWRGYWlsKGhhbmRsZSwgZXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0g
ICAgcmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKG1zZy0+cmVzcG9uc2VfYm9keS0+
bGVuZ3RoKTsKLSAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShtc2ctPnN0YXR1c19jb2Rl
KTsKKyAgICBTb3VwTWVzc2FnZUhlYWRlcnNJdGVyIGl0ZXI7CisgICAgY29uc3QgY2hhciogbmFt
ZSA9IE5VTEw7CisgICAgY29uc3QgY2hhciogdmFsdWUgPSBOVUxMOworICAgIHNvdXBfbWVzc2Fn
ZV9oZWFkZXJzX2l0ZXJfaW5pdCAoJml0ZXIsIG1zZy0+cmVzcG9uc2VfaGVhZGVycyk7CisgICAg
d2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaXRlciwgJm5hbWUsICZ2YWx1
ZSkpCisgICAgICAgIGQtPm1fcmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKG5hbWUsIFN0cmlu
Zzo6ZnJvbVVURjgodmFsdWUpKTsKKworICAgIFN0cmluZyBjb250ZW50VHlwZSA9IFN0cmluZzo6
ZnJvbVVURjgoc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0KG1zZy0+cmVzcG9uc2VfaGVhZGVycywg
IkNvbnRlbnQtVHlwZSIpKTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RN
SU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNl
dFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBl
KSk7CisgICAgZC0+bV9yZXNwb25zZS5zZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgobXNnLT5yZXNw
b25zZV9ib2R5LT5sZW5ndGgpOworICAgIGQtPm1fcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUo
bXNnLT5zdGF0dXNfY29kZSk7CisgICAgY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxl
LCBkLT5tX3Jlc3BvbnNlKTsKIAotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRs
ZSwgcmVzcG9uc2UpOwogICAgIGlmIChtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEpCi0gICAgICAg
IGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEs
IG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCAwKTsKKyAgICAgICAgY2xpZW50LT5kaWRSZWNl
aXZlRGF0YShoYW5kbGUsIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSwgbXNnLT5yZXNwb25zZV9i
b2R5LT5sZW5ndGgsIDApOyAgCiAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7
CiB9CiAKLXN0YXRpYyB2b2lkIHBhcnNlRGF0YVVybChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQor
c3RhdGljIGdib29sZWFuIHBhcnNlRGF0YVVybChncG9pbnRlciBjYWxsYmFja19kYXRhKQogewor
ICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+
KGNhbGxiYWNrX2RhdGEpOwogICAgIFN0cmluZyBkYXRhID0gaGFuZGxlLT5yZXF1ZXN0KCkudXJs
KCkuc3RyaW5nKCk7CiAKICAgICBBU1NFUlQoZGF0YS5zdGFydHNXaXRoKCJkYXRhOiIsIGZhbHNl
KSk7CkBAIC0xMzMsNiArMTc0LDggQEAgc3RhdGljIHZvaWQgcGFyc2VEYXRhVXJsKFJlc291cmNl
SGFuZGxlKgogICAgIGdfZnJlZShvdXREYXRhKTsKIAogICAgIGNsaWVudC0+ZGlkRmluaXNoTG9h
ZGluZyhoYW5kbGUpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQogCiBib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCkBAIC0xNDgsOCArMTkxLDggQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgIFN0cmluZyBwcm90b2NvbCA9IHVybC5w
cm90b2NvbCgpOwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHByb3RvY29sLCAiZGF0YSIp
KSB7Ci0gICAgICAgIHBhcnNlRGF0YVVybCh0aGlzKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBnX2lkbGVfYWRkKHBhcnNlRGF0YVVybCwgdGhpcyk7CisgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAogICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UocHJvdG9jb2wsICJodHRw
IikgJiYgIWVxdWFsSWdub3JpbmdDYXNlKHByb3RvY29sLCAiaHR0cHMiKSkgewpAQCAtMTY5LDIz
ICsyMTIsMTEgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAg
IH0KIAogICAgIGlmICghc2Vzc2lvbikKLSAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9h
c3luY19uZXcoKTsKKyAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXdfd2l0
aF9vcHRpb25zKFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hPU1QsIDUsIE5VTEwpOwogCiAg
ICAgU291cE1lc3NhZ2UqIG1zZzsKLSAgICBjb25zdCBjaGFyKiBtZXRob2QgPSAwOwotCi0gICAg
aWYgKHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIkdFVCIpCi0gICAgICAgIG1ldGhvZCA9IFNP
VVBfTUVUSE9EX0dFVDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQ
T1NUIikKLSAgICAgICAgbWV0aG9kID0gU09VUF9NRVRIT0RfUE9TVDsKLSAgICBlbHNlIGlmIChy
ZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJIRUFEIikKLSAgICAgICAgbWV0aG9kID0gU09VUF9N
RVRIT0RfSEVBRDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQVVQi
KQotICAgICAgICBtZXRob2QgPSBTT1VQX01FVEhPRF9QVVQ7Ci0gICAgZWxzZQotICAgICAgICBn
X2RlYnVnICgiVW5rbm93biBtZXRob2QhIik7Ci0KLSAgICBtc2cgPSBzb3VwX21lc3NhZ2VfbmV3
KG1ldGhvZD8gbWV0aG9kIDogU09VUF9NRVRIT0RfR0VULCB1cmxTdHJpbmcudXRmOCgpLmRhdGEo
KSk7CisgICAgbXNnID0gc291cF9tZXNzYWdlX25ldyhyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpLnV0
ZjgoKS5kYXRhKCksIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICBnX3NpZ25hbF9jb25u
ZWN0KG1zZywgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCB0aGlz
KTsKIAogICAgIEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9IGQtPm1fcmVxdWVzdC5odHRw
SGVhZGVyRmllbGRzKCk7CiAgICAgaWYgKCFjdXN0b21IZWFkZXJzLmlzRW1wdHkoKSkgewpAQCAt
MjA5LDggKzI0MCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVBfTUVNT1JZX0NPUFksIGJvZHku
ZGF0YSgpLCBib2R5LnNpemUoKSk7CiAgICAgfQogCi0gICAgZC0+bV9tc2cgPSAoU291cE1lc3Nh
Z2UqKWdfb2JqZWN0X3JlZihtc2cpOwotICAgIGQtPnNlc3Npb24gPSBzZXNzaW9uOworICAgIGQt
Pm1fbXNnID0gc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2UqPihnX29iamVjdF9yZWYobXNnKSk7CiAg
ICAgc291cF9zZXNzaW9uX3F1ZXVlX21lc3NhZ2Uoc2Vzc2lvbiwgZC0+bV9tc2csIGRhdGFDYWxs
YmFjaywgdGhpcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIxOCwxMCArMjQ4LDExIEBAIGJv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKIAogdm9pZCBSZXNvdXJjZUhh
bmRsZTo6Y2FuY2VsKCkKIHsKLSAgICBpZiAoZC0+bV9tc2cpCi0gICAgICAgIHNvdXBfc2Vzc2lv
bl9jYW5jZWxfbWVzc2FnZSAoZC0+c2Vzc2lvbiwgZC0+bV9tc2csIFNPVVBfU1RBVFVTX0NBTkNF
TExFRCk7Ci0KLSAgICBjbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICBpZiAo
ZC0+bV9tc2cpIHsKKyAgICAgICAgZC0+bV9jYW5jZWxsZWQgPSB0cnVlOworICAgICAgICBzb3Vw
X3Nlc3Npb25fY2FuY2VsX21lc3NhZ2UgKHNlc3Npb24sIGQtPm1fbXNnLCBTT1VQX1NUQVRVU19D
QU5DRUxMRUQpOworICAgIH0KKyAgICBkLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlz
KTsKIH0KIAogUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291cmNlSGFuZGxlOjpidWZmZXJl
ZERhdGEoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20350</attachid>
            <date>2008-04-05 03:26:34 -0700</date>
            <delta_ts>2008-04-05 13:36:16 -0700</delta_ts>
            <desc>fix response urls and only catch transport errors</desc>
            <filename>soup.patch</filename>
            <type>text/plain</type>
            <size>8253</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTYzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMDQtMDQgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGRhdGEgdXJsIHBhcnNpbmcsIGFjaWQgdGVzdHMsIHJlZGlyZWN0cyBhbmQgcmVzcG9uc2Ug
aGVhZGVycyBoYW5kbGluZyBpbiBzb3VwIGJhY2tlbmQuCisgICAgICAgIFRoYW5rcyB0byBEYW4g
V2luc2hpcCBmb3IgbGlic291cCBoaW50cy4KKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNF
UyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOiBhZGQgbV9jYW5jZWxsZWQKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnJlc3RhcnRlZENhbGxiYWNrKTogYWRkZWQgZm9yIHBhc3NpbmcgcmVkaXJlY3RzIHRv
IHdlYmtpdAorICAgICAgICAoV2ViQ29yZTo6ZGF0YUNhbGxiYWNrKTogYWRkIHJlc3BvbnNlIGhl
YWRlcnMgYW5kIGFkZCBzb21lIGNoZWNrcworICAgICAgICAoV2ViQ29yZTo6cGFyc2VEYXRhVXJs
KTogYmUgYW4gaWRsZSBjYWxsYmFjayBmb3IgdGhlIG1haW4gbG9vcAorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpjYW5jZWwpOgorCiAyMDA4LTA0LTA0ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBDb3B5IGljdS8gdG8gUHJpdmF0ZUhlYWRlcnMgZm9yIFdlYktpdCdzIGJl
bmVmaXQKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVy
bmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaAkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAg
ICAgICAsIG1fbXNnKDApCisgICAgICAgICAgICAsIG1fY2FuY2VsbGVkKGZhbHNlKQogI2VuZGlm
CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCkBAIC0xNzMsOCArMTc0
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAg
IFNvdXBNZXNzYWdlKiBtX21zZzsKLSAgICAgICAgU291cFNlc3Npb24qIHNlc3Npb247CiAgICAg
ICAgIFJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKKyAgICAgICAgYm9vbCBtX2NhbmNlbGxl
ZDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogI2lmIFFUX1ZFUlNJT04gPCAweDA0MDQwMApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCShyZXZpc2lvbiAzMTYzMykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFNvdXBTZXNzaW9uKiBzZXNzaW9u
ID0gMDsKK3N0YXRpYyBjb25zdCBpbnQgbWF4Q29ubmVjdGlvbnNQZXJIb3N0ID0gNTsKIAogUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJuYWwoKQogewpAQCAtNTIs
OSArNTMsMzIgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiB7CiB9CiAKK3N0
YXRpYyB2b2lkIHJlc3RhcnRlZENhbGxiYWNrKFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRh
dGEpCit7CisgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNl
SGFuZGxlKj4oZGF0YSk7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybjsKKyAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOworICAgIGlm
IChkLT5tX2NhbmNlbGxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2hhciogdXJpID0gc291
cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICBT
dHJpbmcgbG9jYXRpb24gPSBTdHJpbmcodXJpKTsKKyAgICBnX2ZyZWUodXJpKTsKKyAgICBLVVJM
IG5ld1VSTCA9IEtVUkwoaGFuZGxlLT5yZXF1ZXN0KCkudXJsKCksIGxvY2F0aW9uKTsKKyAgICAg
ICAgICAgIAorICAgIFJlc291cmNlUmVxdWVzdCByZWRpcmVjdGVkUmVxdWVzdCA9IGhhbmRsZS0+
cmVxdWVzdCgpOworICAgIHJlZGlyZWN0ZWRSZXF1ZXN0LnNldFVSTChuZXdVUkwpOworICAgIGlm
IChkLT5jbGllbnQoKSkKKyAgICAgICAgZC0+Y2xpZW50KCktPndpbGxTZW5kUmVxdWVzdChoYW5k
bGUsIHJlZGlyZWN0ZWRSZXF1ZXN0LCBkLT5tX3Jlc3BvbnNlKTsKKyAgICAKKyAgICBkLT5tX3Jl
cXVlc3Quc2V0VVJMKG5ld1VSTCk7Cit9CisKIHN0YXRpYyB2b2lkIGRhdGFDYWxsYmFjayhTb3Vw
U2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKIHsKICAg
ICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihk
YXRhKTsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5h
bCgpOwogICAgIC8vIFRPRE86IG1heWJlIHdlIHNob3VsZCBydW4gdGhpcyBjb2RlIGV2ZW4gaWYg
dGhlcmUncyBubyBjbGllbnQ/CiAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgIHJldHVybjsKQEAg
LTYyLDIzICs4Niw0MyBAQCBzdGF0aWMgdm9pZCBkYXRhQ2FsbGJhY2soU291cFNlc3Npb24gKnNl
CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2U7Ci0KLSAgICBTdHJpbmcgY29udGVudFR5cGUgPSBTdHJpbmcoc291cF9tZXNz
YWdlX2hlYWRlcnNfZ2V0KG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpKTsK
LSAgICByZXNwb25zZS5zZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKSk7Ci0gICAgcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hh
cnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQp
CisgICAgICAgIHJldHVybjsKIAotICAgIHJlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0
aChtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCk7Ci0gICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1
c0NvZGUobXNnLT5zdGF0dXNfY29kZSk7CisgICAgaWYgKFNPVVBfU1RBVFVTX0lTX1RSQU5TUE9S
VF9FUlJPUihtc2ctPnN0YXR1c19jb2RlKSkgeworICAgICAgICBjaGFyKiB1cmkgPSBzb3VwX3Vy
aV90b19zdHJpbmcoc291cF9tZXNzYWdlX2dldF91cmkobXNnKSwgRkFMU0UpOworICAgICAgICBS
ZXNvdXJjZUVycm9yIGVycm9yKHVyaSwgbXNnLT5zdGF0dXNfY29kZSwgdXJpLCBTdHJpbmcobXNn
LT5yZWFzb25fcGhyYXNlKSArICI6ICIgKyB1cmkpOworICAgICAgICBnX2ZyZWUodXJpKTsKKyAg
ICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZSwgZXJyb3IpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgCisgICAgU291cE1lc3NhZ2VIZWFkZXJzSXRlciBpdGVyOworICAgIGNvbnN0IGNo
YXIqIG5hbWUgPSBOVUxMOworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gTlVMTDsKKyAgICBzb3Vw
X21lc3NhZ2VfaGVhZGVyc19pdGVyX2luaXQgKCZpdGVyLCBtc2ctPnJlc3BvbnNlX2hlYWRlcnMp
OworICAgIHdoaWxlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJml0ZXIsICZuYW1l
LCAmdmFsdWUpKQorICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChuYW1l
LCBTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7CisKKyAgICBTdHJpbmcgY29udGVudFR5cGUgPSBT
dHJpbmc6OmZyb21VVEY4KHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldChtc2ctPnJlc3BvbnNlX2hl
YWRlcnMsICJDb250ZW50LVR5cGUiKSk7CisgICAgY2hhciogdXJpID0gc291cF91cmlfdG9fc3Ry
aW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICBkLT5tX3Jlc3BvbnNl
LnNldFVybChLVVJMKHVyaSkpOworICAgIGdfZnJlZSh1cmkpOworICAgIGQtPm1fcmVzcG9uc2Uu
c2V0TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOwor
ICAgIGQtPm1fcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21N
ZWRpYVR5cGUoY29udGVudFR5cGUpKTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29u
dGVudExlbmd0aChtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCk7CisgICAgZC0+bV9yZXNwb25z
ZS5zZXRIVFRQU3RhdHVzQ29kZShtc2ctPnN0YXR1c19jb2RlKTsKKyAgICBkLT5tX3Jlc3BvbnNl
LnNldFN1Z2dlc3RlZEZpbGVuYW1lKGZpbGVuYW1lRnJvbUhUVFBDb250ZW50RGlzcG9zaXRpb24o
ZC0+bV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlzcG9zaXRpb24iKSkpOwor
ICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7CiAK
LSAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUsIHJlc3BvbnNlKTsKICAgICBp
ZiAobXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhKQotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVE
YXRhKGhhbmRsZSwgbXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhLCBtc2ctPnJlc3BvbnNlX2JvZHkt
Pmxlbmd0aCwgMCk7CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBtc2ct
PnJlc3BvbnNlX2JvZHktPmRhdGEsIG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCAwKTsgIAog
ICAgIGNsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOwogfQogCi1zdGF0aWMgdm9pZCBw
YXJzZURhdGFVcmwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKK3N0YXRpYyBnYm9vbGVhbiBwYXJz
ZURhdGFVcmwoZ3BvaW50ZXIgY2FsbGJhY2tfZGF0YSkKIHsKKyAgICBSZXNvdXJjZUhhbmRsZSog
aGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihjYWxsYmFja19kYXRhKTsKICAg
ICBTdHJpbmcgZGF0YSA9IGhhbmRsZS0+cmVxdWVzdCgpLnVybCgpLnN0cmluZygpOwogCiAgICAg
QVNTRVJUKGRhdGEuc3RhcnRzV2l0aCgiZGF0YToiLCBmYWxzZSkpOwpAQCAtMTMzLDYgKzE3Nyw4
IEBAIHN0YXRpYyB2b2lkIHBhcnNlRGF0YVVybChSZXNvdXJjZUhhbmRsZSoKICAgICBnX2ZyZWUo
b3V0RGF0YSk7CiAKICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlKTsKKworICAg
IHJldHVybiBGQUxTRTsKIH0KIAogYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZy
YW1lKQpAQCAtMTQ4LDggKzE5NCw4IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1l
KiBmcmFtZSkKICAgICBTdHJpbmcgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2woKTsKIAogICAgIGlm
IChlcXVhbElnbm9yaW5nQ2FzZShwcm90b2NvbCwgImRhdGEiKSkgewotICAgICAgICBwYXJzZURh
dGFVcmwodGhpcyk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZ19pZGxlX2FkZChw
YXJzZURhdGFVcmwsIHRoaXMpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICBp
ZiAoIWVxdWFsSWdub3JpbmdDYXNlKHByb3RvY29sLCAiaHR0cCIpICYmICFlcXVhbElnbm9yaW5n
Q2FzZShwcm90b2NvbCwgImh0dHBzIikpIHsKQEAgLTE2OSwyMyArMjE1LDExIEBAIGJvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICB9CiAKICAgICBpZiAoIXNlc3Np
b24pCi0gICAgICAgIHNlc3Npb24gPSBzb3VwX3Nlc3Npb25fYXN5bmNfbmV3KCk7CisgICAgICAg
IHNlc3Npb24gPSBzb3VwX3Nlc3Npb25fYXN5bmNfbmV3X3dpdGhfb3B0aW9ucyhTT1VQX1NFU1NJ
T05fTUFYX0NPTk5TX1BFUl9IT1NULCA1LCBOVUxMKTsKIAogICAgIFNvdXBNZXNzYWdlKiBtc2c7
Ci0gICAgY29uc3QgY2hhciogbWV0aG9kID0gMDsKLQotICAgIGlmIChyZXF1ZXN0KCkuaHR0cE1l
dGhvZCgpID09ICJHRVQiKQotICAgICAgICBtZXRob2QgPSBTT1VQX01FVEhPRF9HRVQ7Ci0gICAg
ZWxzZSBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpCi0gICAgICAgIG1ldGhv
ZCA9IFNPVVBfTUVUSE9EX1BPU1Q7Ci0gICAgZWxzZSBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2Qo
KSA9PSAiSEVBRCIpCi0gICAgICAgIG1ldGhvZCA9IFNPVVBfTUVUSE9EX0hFQUQ7Ci0gICAgZWxz
ZSBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUFVUIikKLSAgICAgICAgbWV0aG9kID0g
U09VUF9NRVRIT0RfUFVUOwotICAgIGVsc2UKLSAgICAgICAgZ19kZWJ1ZyAoIlVua25vd24gbWV0
aG9kISIpOwotCi0gICAgbXNnID0gc291cF9tZXNzYWdlX25ldyhtZXRob2Q/IG1ldGhvZCA6IFNP
VVBfTUVUSE9EX0dFVCwgdXJsU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOworICAgIG1zZyA9IHNvdXBf
bWVzc2FnZV9uZXcocmVxdWVzdCgpLmh0dHBNZXRob2QoKS51dGY4KCkuZGF0YSgpLCB1cmxTdHJp
bmcudXRmOCgpLmRhdGEoKSk7CisgICAgZ19zaWduYWxfY29ubmVjdChtc2csICJyZXN0YXJ0ZWQi
LCBHX0NBTExCQUNLKHJlc3RhcnRlZENhbGxiYWNrKSwgdGhpcyk7CiAKICAgICBIVFRQSGVhZGVy
TWFwIGN1c3RvbUhlYWRlcnMgPSBkLT5tX3JlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpOwogICAg
IGlmICghY3VzdG9tSGVhZGVycy5pc0VtcHR5KCkpIHsKQEAgLTIwOSw4ICsyNDMsNyBAQCBib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTT1VQX01FTU9SWV9DT1BZLCBib2R5LmRhdGEoKSwgYm9keS5zaXplKCkp
OwogICAgIH0KIAotICAgIGQtPm1fbXNnID0gKFNvdXBNZXNzYWdlKilnX29iamVjdF9yZWYobXNn
KTsKLSAgICBkLT5zZXNzaW9uID0gc2Vzc2lvbjsKKyAgICBkLT5tX21zZyA9IHN0YXRpY19jYXN0
PFNvdXBNZXNzYWdlKj4oZ19vYmplY3RfcmVmKG1zZykpOwogICAgIHNvdXBfc2Vzc2lvbl9xdWV1
ZV9tZXNzYWdlKHNlc3Npb24sIGQtPm1fbXNnLCBkYXRhQ2FsbGJhY2ssIHRoaXMpOwogCiAgICAg
cmV0dXJuIHRydWU7CkBAIC0yMTgsMTAgKzI1MSwxMSBAQCBib29sIFJlc291cmNlSGFuZGxlOjpz
dGFydChGcmFtZSogZnJhbWUpCiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiB7Ci0g
ICAgaWYgKGQtPm1fbXNnKQotICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2UgKGQt
PnNlc3Npb24sIGQtPm1fbXNnLCBTT1VQX1NUQVRVU19DQU5DRUxMRUQpOwotCi0gICAgY2xpZW50
KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CisgICAgaWYgKGQtPm1fbXNnKSB7CisgICAgICAg
IGQtPm1fY2FuY2VsbGVkID0gdHJ1ZTsKKyAgICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9tZXNz
YWdlIChzZXNzaW9uLCBkLT5tX21zZywgU09VUF9TVEFUVVNfQ0FOQ0VMTEVEKTsKKyAgICB9Cisg
ICAgZC0+Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CiB9CiAKIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRsZTo6YnVmZmVyZWREYXRhKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20355</attachid>
            <date>2008-04-05 13:36:16 -0700</date>
            <delta_ts>2008-04-06 04:26:28 -0700</delta_ts>
            <desc>fix re-entrancy cancellation</desc>
            <filename>soup.patch</filename>
            <type>text/plain</type>
            <size>8696</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTYzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDgtMDQtMDQgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyOTcKKyAgICAgICAgQnVn
ICMxODI5NyAtIEFjaWQyL0FjaWQzIC10ZXN0cyBkb24ndCBsb2FkIGxvYWQgd2l0aCBzb3VwLgor
CisgICAgICAgIEZpeGVzIGluIHRoZSBsaWJzb3VwIGJhY2tlbmQ6IGRhdGEgdXJsIHBhcnNpbmcs
IGFjaWQgdGVzdHMsIHJlZGlyZWN0cywKKyAgICAgICAgcmVzcG9uc2UgaGVhZGVycyBoYW5kbGlu
ZyBhbmQgcmUtZW50cmFuY3kgaXNzdWVzIG9uIGpvYiBjYW5jZWxsYXRpb24uCisgICAgICAgIFRo
YW5rcyB0byBEYW4gV2luc2hpcCBmb3IgbGlic291cCBoaW50cy4KKworICAgICAgICBXQVJOSU5H
OiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6IGFkZCBtX2NhbmNlbGxl
ZAorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOiBhZGRlZCBmb3IgcGFzc2lu
ZyByZWRpcmVjdHMgdG8gd2Via2l0CisgICAgICAgIChXZWJDb3JlOjpkYXRhQ2FsbGJhY2spOiBh
ZGQgcmVzcG9uc2UgaGVhZGVycywgYWRkIHNvbWUgY2hlY2tzLCBmaXggcmUtZW50cmFuY3kKKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlRGF0YVVybCk6IGJlIGFuIGlkbGUgY2FsbGJhY2sgZm9yIHRo
ZSBtYWluIGxvb3AKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y2FuY2VsKTogZml4ZWQgcmUtZW50cmFu
Y3kKKwogMjAwOC0wNC0wNCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ29weSBpY3UvIHRvIFByaXZhdGVIZWFkZXJzIGZvciBXZWJLaXQncyBiZW5lZml0CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFs
LmgJKHJldmlzaW9uIDMxNjMzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFVTRShTT1VQKQogICAgICAgICAgICAgLCBtX21z
ZygwKQorICAgICAgICAgICAgLCBtX2NhbmNlbGxlZChmYWxzZSkKICNlbmRpZgogI2lmIFBMQVRG
T1JNKFFUKQogICAgICAgICAgICAgLCBtX2pvYigwKQpAQCAtMTczLDggKzE3NCw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFVTRShTT1VQKQogICAgICAgICBTb3VwTWVzc2Fn
ZSogbV9tc2c7Ci0gICAgICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uOwogICAgICAgICBSZXNvdXJj
ZVJlc3BvbnNlIG1fcmVzcG9uc2U7CisgICAgICAgIGJvb2wgbV9jYW5jZWxsZWQ7CiAjZW5kaWYK
ICNpZiBQTEFURk9STShRVCkKICNpZiBRVF9WRVJTSU9OIDwgMHgwNDA0MDAKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IDA7CitzdGF0
aWMgY29uc3QgaW50IG1heENvbm5lY3Rpb25zUGVySG9zdCA9IDU7CiAKIFJlc291cmNlSGFuZGxl
SW50ZXJuYWw6On5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkKIHsKQEAgLTUyLDMzICs1Myw4NCBA
QCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKIH0KIAorc3RhdGljIHZvaWQg
cmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKK3sKKyAg
ICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihk
YXRhKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuOworICAgIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgaWYgKGQtPm1fY2Fu
Y2VsbGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBjaGFyKiB1cmkgPSBzb3VwX3VyaV90b19z
dHJpbmcoc291cF9tZXNzYWdlX2dldF91cmkobXNnKSwgRkFMU0UpOworICAgIFN0cmluZyBsb2Nh
dGlvbiA9IFN0cmluZyh1cmkpOworICAgIGdfZnJlZSh1cmkpOworICAgIEtVUkwgbmV3VVJMID0g
S1VSTChoYW5kbGUtPnJlcXVlc3QoKS51cmwoKSwgbG9jYXRpb24pOworICAgICAgICAgICAgCisg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlZGlyZWN0ZWRSZXF1ZXN0ID0gaGFuZGxlLT5yZXF1ZXN0KCk7
CisgICAgcmVkaXJlY3RlZFJlcXVlc3Quc2V0VVJMKG5ld1VSTCk7CisgICAgaWYgKGQtPmNsaWVu
dCgpKQorICAgICAgICBkLT5jbGllbnQoKS0+d2lsbFNlbmRSZXF1ZXN0KGhhbmRsZSwgcmVkaXJl
Y3RlZFJlcXVlc3QsIGQtPm1fcmVzcG9uc2UpOworICAgIAorICAgIGQtPm1fcmVxdWVzdC5zZXRV
UkwobmV3VVJMKTsKK30KKwogc3RhdGljIHZvaWQgZGF0YUNhbGxiYWNrKFNvdXBTZXNzaW9uICpz
ZXNzaW9uLCBTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQogewogICAgIFJlc291cmNl
SGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwogICAg
IC8vIFRPRE86IG1heWJlIHdlIHNob3VsZCBydW4gdGhpcyBjb2RlIGV2ZW4gaWYgdGhlcmUncyBu
byBjbGllbnQ/CiAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgIHJldHVybjsKKworICAgIFJlc291
cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgLy8gVGhl
IG1lc3NhZ2UgaGFzIGJlZW4gaGFuZGxlZC4KKyAgICBkLT5tX21zZyA9IE5VTEw7CisKICAgICBS
ZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKICAgICBpZiAo
IWNsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25z
ZTsKKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCisgICAgICAgIHJldHVybjsKIAotICAgIFN0cmlu
ZyBjb250ZW50VHlwZSA9IFN0cmluZyhzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXQobXNnLT5yZXNw
b25zZV9oZWFkZXJzLCAiQ29udGVudC1UeXBlIikpOwotICAgIHJlc3BvbnNlLnNldE1pbWVUeXBl
KGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKLSAgICByZXNwb25z
ZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50
VHlwZSkpOworICAgIGlmIChTT1VQX1NUQVRVU19JU19UUkFOU1BPUlRfRVJST1IobXNnLT5zdGF0
dXNfY29kZSkpIHsKKyAgICAgICAgY2hhciogdXJpID0gc291cF91cmlfdG9fc3RyaW5nKHNvdXBf
bWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJv
cih1cmksIG1zZy0+c3RhdHVzX2NvZGUsIHVyaSwgU3RyaW5nKG1zZy0+cmVhc29uX3BocmFzZSkg
KyAiOiAiICsgdXJpKTsKKyAgICAgICAgZ19mcmVlKHVyaSk7CisgICAgICAgIGNsaWVudC0+ZGlk
RmFpbChoYW5kbGUsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgIAorICAgIFNv
dXBNZXNzYWdlSGVhZGVyc0l0ZXIgaXRlcjsKKyAgICBjb25zdCBjaGFyKiBuYW1lID0gTlVMTDsK
KyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IE5VTEw7CisgICAgc291cF9tZXNzYWdlX2hlYWRlcnNf
aXRlcl9pbml0ICgmaXRlciwgbXNnLT5yZXNwb25zZV9oZWFkZXJzKTsKKyAgICB3aGlsZSAoc291
cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9uZXh0KCZpdGVyLCAmbmFtZSwgJnZhbHVlKSkKKyAgICAg
ICAgZC0+bV9yZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQobmFtZSwgdmFsdWUpOworCisgICAg
U3RyaW5nIGNvbnRlbnRUeXBlID0gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0KG1zZy0+cmVzcG9u
c2VfaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOworICAgIGNoYXIqIHVyaSA9IHNvdXBfdXJpX3Rv
X3N0cmluZyhzb3VwX21lc3NhZ2VfZ2V0X3VyaShtc2cpLCBGQUxTRSk7CisgICAgZC0+bV9yZXNw
b25zZS5zZXRVcmwoS1VSTCh1cmkpKTsKKyAgICBnX2ZyZWUodXJpKTsKKyAgICBkLT5tX3Jlc3Bv
bnNlLnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUp
KTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRG
cm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7CisgICAgZC0+bV9yZXNwb25zZS5zZXRFeHBlY3Rl
ZENvbnRlbnRMZW5ndGgobXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGgpOworICAgIGQtPm1fcmVz
cG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUobXNnLT5zdGF0dXNfY29kZSk7CisgICAgZC0+bV9yZXNw
b25zZS5zZXRTdWdnZXN0ZWRGaWxlbmFtZShmaWxlbmFtZUZyb21IVFRQQ29udGVudERpc3Bvc2l0
aW9uKGQtPm1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKCJDb250ZW50LURpc3Bvc2l0aW9uIikp
KTsKKyAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUsIGQtPm1fcmVzcG9uc2Up
OwogCi0gICAgcmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKG1zZy0+cmVzcG9uc2Vf
Ym9keS0+bGVuZ3RoKTsKLSAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShtc2ctPnN0YXR1
c19jb2RlKTsKKyAgICAvLyBXZWJDb3JlIG1pZ2h0IGhhdmUgY2FuY2VsbGVkIHRoZSBqb2IgaW4g
dGhlIHdoaWxlCisgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQorICAgICAgICByZXR1cm47CiAKLSAg
ICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUsIHJlc3BvbnNlKTsKICAgICBpZiAo
bXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhKQotICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRh
KGhhbmRsZSwgbXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhLCBtc2ctPnJlc3BvbnNlX2JvZHktPmxl
bmd0aCwgMCk7CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBtc2ctPnJl
c3BvbnNlX2JvZHktPmRhdGEsIG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCAwKTsgIAogICAg
IGNsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOwogfQogCi1zdGF0aWMgdm9pZCBwYXJz
ZURhdGFVcmwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKK3N0YXRpYyBnYm9vbGVhbiBwYXJzZURh
dGFVcmwoZ3BvaW50ZXIgY2FsbGJhY2tfZGF0YSkKIHsKKyAgICBSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihjYWxsYmFja19kYXRhKTsKICAgICBT
dHJpbmcgZGF0YSA9IGhhbmRsZS0+cmVxdWVzdCgpLnVybCgpLnN0cmluZygpOwogCiAgICAgQVNT
RVJUKGRhdGEuc3RhcnRzV2l0aCgiZGF0YToiLCBmYWxzZSkpOwpAQCAtMTMzLDYgKzE4NSw4IEBA
IHN0YXRpYyB2b2lkIHBhcnNlRGF0YVVybChSZXNvdXJjZUhhbmRsZSoKICAgICBnX2ZyZWUob3V0
RGF0YSk7CiAKICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlKTsKKworICAgIHJl
dHVybiBGQUxTRTsKIH0KIAogYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1l
KQpAQCAtMTQ4LDggKzIwMiw4IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBm
cmFtZSkKICAgICBTdHJpbmcgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2woKTsKIAogICAgIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShwcm90b2NvbCwgImRhdGEiKSkgewotICAgICAgICBwYXJzZURhdGFV
cmwodGhpcyk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZ19pZGxlX2FkZChwYXJz
ZURhdGFVcmwsIHRoaXMpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAo
IWVxdWFsSWdub3JpbmdDYXNlKHByb3RvY29sLCAiaHR0cCIpICYmICFlcXVhbElnbm9yaW5nQ2Fz
ZShwcm90b2NvbCwgImh0dHBzIikpIHsKQEAgLTE2OSwyMyArMjIzLDExIEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICB9CiAKICAgICBpZiAoIXNlc3Npb24p
Ci0gICAgICAgIHNlc3Npb24gPSBzb3VwX3Nlc3Npb25fYXN5bmNfbmV3KCk7CisgICAgICAgIHNl
c3Npb24gPSBzb3VwX3Nlc3Npb25fYXN5bmNfbmV3X3dpdGhfb3B0aW9ucyhTT1VQX1NFU1NJT05f
TUFYX0NPTk5TX1BFUl9IT1NULCA1LCBOVUxMKTsKIAogICAgIFNvdXBNZXNzYWdlKiBtc2c7Ci0g
ICAgY29uc3QgY2hhciogbWV0aG9kID0gMDsKLQotICAgIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhv
ZCgpID09ICJHRVQiKQotICAgICAgICBtZXRob2QgPSBTT1VQX01FVEhPRF9HRVQ7Ci0gICAgZWxz
ZSBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpCi0gICAgICAgIG1ldGhvZCA9
IFNPVVBfTUVUSE9EX1BPU1Q7Ci0gICAgZWxzZSBpZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9
PSAiSEVBRCIpCi0gICAgICAgIG1ldGhvZCA9IFNPVVBfTUVUSE9EX0hFQUQ7Ci0gICAgZWxzZSBp
ZiAocmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiUFVUIikKLSAgICAgICAgbWV0aG9kID0gU09V
UF9NRVRIT0RfUFVUOwotICAgIGVsc2UKLSAgICAgICAgZ19kZWJ1ZyAoIlVua25vd24gbWV0aG9k
ISIpOwotCi0gICAgbXNnID0gc291cF9tZXNzYWdlX25ldyhtZXRob2Q/IG1ldGhvZCA6IFNPVVBf
TUVUSE9EX0dFVCwgdXJsU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOworICAgIG1zZyA9IHNvdXBfbWVz
c2FnZV9uZXcocmVxdWVzdCgpLmh0dHBNZXRob2QoKS51dGY4KCkuZGF0YSgpLCB1cmxTdHJpbmcu
dXRmOCgpLmRhdGEoKSk7CisgICAgZ19zaWduYWxfY29ubmVjdChtc2csICJyZXN0YXJ0ZWQiLCBH
X0NBTExCQUNLKHJlc3RhcnRlZENhbGxiYWNrKSwgdGhpcyk7CiAKICAgICBIVFRQSGVhZGVyTWFw
IGN1c3RvbUhlYWRlcnMgPSBkLT5tX3JlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpOwogICAgIGlm
ICghY3VzdG9tSGVhZGVycy5pc0VtcHR5KCkpIHsKQEAgLTIwOSw4ICsyNTEsNyBAQCBib29sIFJl
c291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTT1VQX01FTU9SWV9DT1BZLCBib2R5LmRhdGEoKSwgYm9keS5zaXplKCkpOwog
ICAgIH0KIAotICAgIGQtPm1fbXNnID0gKFNvdXBNZXNzYWdlKilnX29iamVjdF9yZWYobXNnKTsK
LSAgICBkLT5zZXNzaW9uID0gc2Vzc2lvbjsKKyAgICBkLT5tX21zZyA9IHN0YXRpY19jYXN0PFNv
dXBNZXNzYWdlKj4oZ19vYmplY3RfcmVmKG1zZykpOwogICAgIHNvdXBfc2Vzc2lvbl9xdWV1ZV9t
ZXNzYWdlKHNlc3Npb24sIGQtPm1fbXNnLCBkYXRhQ2FsbGJhY2ssIHRoaXMpOwogCiAgICAgcmV0
dXJuIHRydWU7CkBAIC0yMTgsMTAgKzI1OSwxMiBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChGcmFtZSogZnJhbWUpCiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiB7Ci0gICAg
aWYgKGQtPm1fbXNnKQotICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2UgKGQtPnNl
c3Npb24sIGQtPm1fbXNnLCBTT1VQX1NUQVRVU19DQU5DRUxMRUQpOwotCi0gICAgY2xpZW50KCkt
PmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CisgICAgZC0+bV9jYW5jZWxsZWQgPSB0cnVlOworICAg
IGlmIChkLT5tX21zZykgeworICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2UgKHNl
c3Npb24sIGQtPm1fbXNnLCBTT1VQX1NUQVRVU19DQU5DRUxMRUQpOworICAgICAgICAvLyBGb3Ig
cmUtZW50cmFuY3kgdHJvdWJsZXMgd2UgY2FsbCBkaWRGaW5pc2hMb2FkaW5nIHdoZW4gdGhlIG1l
c3NhZ2UgaGFzbid0IGJlZW4gaGFuZGxlZCB5ZXQuCisgICAgICAgIGQtPmNsaWVudCgpLT5kaWRG
aW5pc2hMb2FkaW5nKHRoaXMpOworICAgIH0KIH0KIAogUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IFJlc291cmNlSGFuZGxlOjpidWZmZXJlZERhdGEoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20364</attachid>
            <date>2008-04-06 04:26:28 -0700</date>
            <delta_ts>2008-04-06 08:30:50 -0700</delta_ts>
            <desc>add WebKitResourceError</desc>
            <filename>soup.patch</filename>
            <type>text/plain</type>
            <size>26864</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMxNjcw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDgtMDQt
MDYgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYktpdFJlc291cmNlRXJyb3Iu
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogYWRkIHdlYmtpdHJlc291cmNlZXJyb3IuY3Bw
IGFuZCB3ZWJraXRyZXNvdXJjZWVycm9yLmgKKwogMjAwOC0wMy0yMSAgUm9kbmV5IERhd2VzICA8
ZG9iZXlAd2F5b2Z0aGVtb25rZXkuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlci4K
SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzMTYzMykKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsNiAr
Mjg0LDcgQEAgd2Via2l0Z3RrX2hfYXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQu
aCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRy
ZXNvdXJjZWVycm9yLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJk
bGlzdC5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oIFwKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5oIFwKQEAgLTMwNiw2ICszMDcsNyBAQCB3
ZWJraXRndGtfaGVhZGVycyArPSBcCiAKIHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAgXAorCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHJlc291cmNlZXJyb3IuY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2
YXRlLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNw
cCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKSW5kZXg6IFdlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAz
MTY3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMDgtMDQtMDYgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyOTcKKyAgICAgICAgQnVnICMxODI5NyAtIEFj
aWQyL0FjaWQzIC10ZXN0cyBkb24ndCBsb2FkIGxvYWQgd2l0aCBzb3VwLgorCisgICAgICAgIEZp
eGVzIGluIHRoZSBsaWJzb3VwIGJhY2tlbmQ6IGRhdGEgdXJsIHBhcnNpbmcsIGFjaWQgdGVzdHMs
IHJlZGlyZWN0cywKKyAgICAgICAgcmVzcG9uc2UgaGVhZGVycyBoYW5kbGluZyBhbmQgcmUtZW50
cmFuY3kgaXNzdWVzIG9uIGpvYiBjYW5jZWxsYXRpb24uCisgICAgICAgIFRoYW5rcyB0byBEYW4g
V2luc2hpcCBmb3IgbGlic291cCBoaW50cy4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENB
U0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIFdlYkNvcmUucHJvOiBhZGQgd2Via2l0
cmVzb3VyY2VlcnJvci5oIGFuZCB3ZWJraXRyZXNvdXJjZWVycm9yLmNwcAorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6IGFkZCBt
X2NhbmNlbGxlZCBhbmQgcmVtb3ZlIHVudXNlZnVsIG1fc2Vzc2lvbgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cmVzdGFydGVkQ2FsbGJhY2spOiBhZGRlZCB0byByb3V0ZSByZWRpcmVjdHMgdG8gd2Via2l0
CisgICAgICAgIChXZWJDb3JlOjpkYXRhQ2FsbGJhY2spOiBhZGQgcmVzcG9uc2UgaGVhZGVycywg
c29tZSBjaGVja3MgYW5kIGZpeCByZS1lbnRyYW5jeQorICAgICAgICAoV2ViQ29yZTo6cGFyc2VE
YXRhVXJsKTogYmUgYW4gaWRsZSBjYWxsYmFjayBmb3IgdGhlIG1haW4gbG9vcAorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpjYW5jZWwpOiBmaXhlZCByZS1lbnRyYW5jeQorCiAyMDA4LTA0LTA1ICBLZXZp
biBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJDb3JlL1dlYkNvcmUu
cHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQ1LDYgKzEwNDUsNyBAQCBndGstcG9ydCB7CiAgICAg
ICAgIC4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaCBcCiAgICAgICAgIC4uL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmggXAogICAgICAgICAuLi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmggXAorICAgICAgICAuLi9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRyZXNvdXJjZWVycm9yLmggXAogICAgICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaCBcCiAgICAgICAgIC4uL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmggXAogICAgICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJoaXN0b3J5aXRlbS5oIFwKQEAgLTExMjUsNiArMTEyNiw3IEBAIGd0ay1wb3J0IHsKICAg
ICAgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVjb2Rlci5jcHAgXAog
ICAgICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAgXAog
ICAgICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCBcCisgICAgICAg
IC4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHJlc291cmNlZXJyb3IuY3BwIFwKICAgICAgICAg
Li4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcCBcCiAgICAg
ICAgIC4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAgICAgICAgIC4u
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcCBcCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgJKHJl
dmlzaW9uIDMxNjMzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICNlbmRpZgogI2lmIFVTRShTT1VQKQogICAgICAgICAgICAgLCBtX21zZygwKQor
ICAgICAgICAgICAgLCBtX2NhbmNlbGxlZChmYWxzZSkKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFU
KQogICAgICAgICAgICAgLCBtX2pvYigwKQpAQCAtMTczLDggKzE3NCw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICNlbmRpZgogI2lmIFVTRShTT1VQKQogICAgICAgICBTb3VwTWVzc2FnZSogbV9t
c2c7Ci0gICAgICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uOwogICAgICAgICBSZXNvdXJjZVJlc3Bv
bnNlIG1fcmVzcG9uc2U7CisgICAgICAgIGJvb2wgbV9jYW5jZWxsZWQ7CiAjZW5kaWYKICNpZiBQ
TEFURk9STShRVCkKICNpZiBRVF9WRVJTSU9OIDwgMHgwNDA0MDAKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2
aXNpb24gMzE2MzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0YXRpYyBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IDA7CitzdGF0aWMgY29u
c3QgaW50IG1heENvbm5lY3Rpb25zUGVySG9zdCA9IDU7CiAKIFJlc291cmNlSGFuZGxlSW50ZXJu
YWw6On5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkKIHsKQEAgLTUyLDMzICs1Myw4NCBAQCBSZXNv
dXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKIH0KIAorc3RhdGljIHZvaWQgcmVzdGFy
dGVkQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBSZXNv
dXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsK
KyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuOworICAgIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgaWYgKGQtPm1fY2FuY2VsbGVk
KQorICAgICAgICByZXR1cm47CisKKyAgICBjaGFyKiB1cmkgPSBzb3VwX3VyaV90b19zdHJpbmco
c291cF9tZXNzYWdlX2dldF91cmkobXNnKSwgRkFMU0UpOworICAgIFN0cmluZyBsb2NhdGlvbiA9
IFN0cmluZyh1cmkpOworICAgIGdfZnJlZSh1cmkpOworICAgIEtVUkwgbmV3VVJMID0gS1VSTCho
YW5kbGUtPnJlcXVlc3QoKS51cmwoKSwgbG9jYXRpb24pOworICAgICAgICAgICAgCisgICAgUmVz
b3VyY2VSZXF1ZXN0IHJlZGlyZWN0ZWRSZXF1ZXN0ID0gaGFuZGxlLT5yZXF1ZXN0KCk7CisgICAg
cmVkaXJlY3RlZFJlcXVlc3Quc2V0VVJMKG5ld1VSTCk7CisgICAgaWYgKGQtPmNsaWVudCgpKQor
ICAgICAgICBkLT5jbGllbnQoKS0+d2lsbFNlbmRSZXF1ZXN0KGhhbmRsZSwgcmVkaXJlY3RlZFJl
cXVlc3QsIGQtPm1fcmVzcG9uc2UpOworICAgIAorICAgIGQtPm1fcmVxdWVzdC5zZXRVUkwobmV3
VVJMKTsKK30KKwogc3RhdGljIHZvaWQgZGF0YUNhbGxiYWNrKFNvdXBTZXNzaW9uICpzZXNzaW9u
LCBTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQogewogICAgIFJlc291cmNlSGFuZGxl
KiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwogICAgIC8vIFRP
RE86IG1heWJlIHdlIHNob3VsZCBydW4gdGhpcyBjb2RlIGV2ZW4gaWYgdGhlcmUncyBubyBjbGll
bnQ/CiAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgIHJldHVybjsKKworICAgIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgLy8gVGhlIG1lc3Nh
Z2UgaGFzIGJlZW4gaGFuZGxlZC4KKyAgICBkLT5tX21zZyA9IE5VTEw7CisKICAgICBSZXNvdXJj
ZUhhbmRsZUNsaWVudCogY2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKICAgICBpZiAoIWNsaWVu
dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKKyAg
ICBpZiAoZC0+bV9jYW5jZWxsZWQpCisgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBjb250
ZW50VHlwZSA9IFN0cmluZyhzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXQobXNnLT5yZXNwb25zZV9o
ZWFkZXJzLCAiQ29udGVudC1UeXBlIikpOwotICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJh
Y3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKLSAgICByZXNwb25zZS5zZXRU
ZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkp
OworICAgIGlmIChTT1VQX1NUQVRVU19JU19UUkFOU1BPUlRfRVJST1IobXNnLT5zdGF0dXNfY29k
ZSkpIHsKKyAgICAgICAgY2hhciogdXJpID0gc291cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2Fn
ZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcigiVHJh
bnNwb3J0IGVycm9yIiwgbXNnLT5zdGF0dXNfY29kZSwgdXJpLCBTdHJpbmcobXNnLT5yZWFzb25f
cGhyYXNlKSArICI6ICIgKyB1cmkpOworICAgICAgICBnX2ZyZWUodXJpKTsKKyAgICAgICAgY2xp
ZW50LT5kaWRGYWlsKGhhbmRsZSwgZXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
CisgICAgU291cE1lc3NhZ2VIZWFkZXJzSXRlciBpdGVyOworICAgIGNvbnN0IGNoYXIqIG5hbWUg
PSBOVUxMOworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gTlVMTDsKKyAgICBzb3VwX21lc3NhZ2Vf
aGVhZGVyc19pdGVyX2luaXQgKCZpdGVyLCBtc2ctPnJlc3BvbnNlX2hlYWRlcnMpOworICAgIHdo
aWxlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJml0ZXIsICZuYW1lLCAmdmFsdWUp
KQorICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChuYW1lLCB2YWx1ZSk7
CisKKyAgICBTdHJpbmcgY29udGVudFR5cGUgPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXQobXNn
LT5yZXNwb25zZV9oZWFkZXJzLCAiQ29udGVudC1UeXBlIik7CisgICAgY2hhciogdXJpID0gc291
cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICBk
LT5tX3Jlc3BvbnNlLnNldFVybChLVVJMKHVyaSkpOworICAgIGdfZnJlZSh1cmkpOworICAgIGQt
Pm1fcmVzcG9uc2Uuc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250
ZW50VHlwZSkpOworICAgIGQtPm1fcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0
Q2hhcnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNl
dEV4cGVjdGVkQ29udGVudExlbmd0aChtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCk7CisgICAg
ZC0+bV9yZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShtc2ctPnN0YXR1c19jb2RlKTsKKyAgICBk
LT5tX3Jlc3BvbnNlLnNldFN1Z2dlc3RlZEZpbGVuYW1lKGZpbGVuYW1lRnJvbUhUVFBDb250ZW50
RGlzcG9zaXRpb24oZC0+bV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlzcG9z
aXRpb24iKSkpOworICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9y
ZXNwb25zZSk7CiAKLSAgICByZXNwb25zZS5zZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgobXNnLT5y
ZXNwb25zZV9ib2R5LT5sZW5ndGgpOwotICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKG1z
Zy0+c3RhdHVzX2NvZGUpOworICAgIC8vIFdlYkNvcmUgbWlnaHQgaGF2ZSBjYW5jZWxsZWQgdGhl
IGpvYiBpbiB0aGUgd2hpbGUKKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCisgICAgICAgIHJldHVy
bjsKIAotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2UpOwog
ICAgIGlmIChtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEpCi0gICAgICAgIGNsaWVudC0+ZGlkUmVj
ZWl2ZURhdGEoaGFuZGxlLCBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEsIG1zZy0+cmVzcG9uc2Vf
Ym9keS0+bGVuZ3RoLCAwKTsKKyAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUs
IG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSwgbXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGgsIDAp
OyAgCiAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7CiB9CiAKLXN0YXRpYyB2
b2lkIHBhcnNlRGF0YVVybChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQorc3RhdGljIGdib29sZWFu
IHBhcnNlRGF0YVVybChncG9pbnRlciBjYWxsYmFja19kYXRhKQogeworICAgIFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGNhbGxiYWNrX2RhdGEp
OwogICAgIFN0cmluZyBkYXRhID0gaGFuZGxlLT5yZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCk7CiAK
ICAgICBBU1NFUlQoZGF0YS5zdGFydHNXaXRoKCJkYXRhOiIsIGZhbHNlKSk7CkBAIC0xMzMsNiAr
MTg1LDggQEAgc3RhdGljIHZvaWQgcGFyc2VEYXRhVXJsKFJlc291cmNlSGFuZGxlKgogICAgIGdf
ZnJlZShvdXREYXRhKTsKIAogICAgIGNsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOwor
CisgICAgcmV0dXJuIEZBTFNFOwogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFt
ZSogZnJhbWUpCkBAIC0xNDgsMTcgKzIwMiwyMCBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChGcmFtZSogZnJhbWUpCiAgICAgU3RyaW5nIHByb3RvY29sID0gdXJsLnByb3RvY29sKCk7CiAK
ICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocHJvdG9jb2wsICJkYXRhIikpIHsKLSAgICAgICAg
cGFyc2VEYXRhVXJsKHRoaXMpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGdfaWRs
ZV9hZGQocGFyc2VEYXRhVXJsLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CisgICAgU3RyaW5nIHVybFN0cmluZyA9IHVybC5zdHJpbmcoKTsKKwogICAgIGlmICghZXF1YWxJ
Z25vcmluZ0Nhc2UocHJvdG9jb2wsICJodHRwIikgJiYgIWVxdWFsSWdub3JpbmdDYXNlKHByb3Rv
Y29sLCAiaHR0cHMiKSkgewotICAgICAgICAvLyBUT0RPOiBkaWRGYWlsKCk/CisgICAgICAgIGlm
IChkLT5jbGllbnQoKSkgeworICAgICAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcigiVW5rbm93
biBwcm90b2NvbCIsIDAsIHVybFN0cmluZywgU3RyaW5nKCJVbmtub3duIHByb3RvY29sOiAiKSAr
IHByb3RvY29sKTsKKyAgICAgICAgICAgIGQtPmNsaWVudCgpLT5kaWRGYWlsKHRoaXMsIGVycm9y
KTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgU3RyaW5n
IHVybFN0cmluZyA9IHVybC5zdHJpbmcoKTsKLQogICAgIGlmICh1cmwuaXNMb2NhbEZpbGUoKSkg
ewogICAgICAgICBTdHJpbmcgcXVlcnkgPSB1cmwucXVlcnkoKTsKICAgICAgICAgLy8gUmVtb3Zl
IGFueSBxdWVyeSBwYXJ0IHNlbnQgdG8gYSBsb2NhbCBmaWxlLgpAQCAtMTY5LDIzICsyMjYsMTEg
QEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgIH0KIAogICAg
IGlmICghc2Vzc2lvbikKLSAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXco
KTsKKyAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXdfd2l0aF9vcHRpb25z
KFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hPU1QsIDUsIE5VTEwpOwogCiAgICAgU291cE1l
c3NhZ2UqIG1zZzsKLSAgICBjb25zdCBjaGFyKiBtZXRob2QgPSAwOwotCi0gICAgaWYgKHJlcXVl
c3QoKS5odHRwTWV0aG9kKCkgPT0gIkdFVCIpCi0gICAgICAgIG1ldGhvZCA9IFNPVVBfTUVUSE9E
X0dFVDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQT1NUIikKLSAg
ICAgICAgbWV0aG9kID0gU09VUF9NRVRIT0RfUE9TVDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCku
aHR0cE1ldGhvZCgpID09ICJIRUFEIikKLSAgICAgICAgbWV0aG9kID0gU09VUF9NRVRIT0RfSEVB
RDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQVVQiKQotICAgICAg
ICBtZXRob2QgPSBTT1VQX01FVEhPRF9QVVQ7Ci0gICAgZWxzZQotICAgICAgICBnX2RlYnVnICgi
VW5rbm93biBtZXRob2QhIik7Ci0KLSAgICBtc2cgPSBzb3VwX21lc3NhZ2VfbmV3KG1ldGhvZD8g
bWV0aG9kIDogU09VUF9NRVRIT0RfR0VULCB1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7CisgICAg
bXNnID0gc291cF9tZXNzYWdlX25ldyhyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpLnV0ZjgoKS5kYXRh
KCksIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1zZywg
InJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCB0aGlzKTsKIAogICAg
IEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9IGQtPm1fcmVxdWVzdC5odHRwSGVhZGVyRmll
bGRzKCk7CiAgICAgaWYgKCFjdXN0b21IZWFkZXJzLmlzRW1wdHkoKSkgewpAQCAtMjA5LDggKzI1
NCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVBfTUVNT1JZX0NPUFksIGJvZHkuZGF0YSgpLCBi
b2R5LnNpemUoKSk7CiAgICAgfQogCi0gICAgZC0+bV9tc2cgPSAoU291cE1lc3NhZ2UqKWdfb2Jq
ZWN0X3JlZihtc2cpOwotICAgIGQtPnNlc3Npb24gPSBzZXNzaW9uOworICAgIGQtPm1fbXNnID0g
c3RhdGljX2Nhc3Q8U291cE1lc3NhZ2UqPihnX29iamVjdF9yZWYobXNnKSk7CiAgICAgc291cF9z
ZXNzaW9uX3F1ZXVlX21lc3NhZ2Uoc2Vzc2lvbiwgZC0+bV9tc2csIGRhdGFDYWxsYmFjaywgdGhp
cyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIxOCwxMCArMjYyLDEyIEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2Fu
Y2VsKCkKIHsKLSAgICBpZiAoZC0+bV9tc2cpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxf
bWVzc2FnZSAoZC0+c2Vzc2lvbiwgZC0+bV9tc2csIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7Ci0K
LSAgICBjbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICBkLT5tX2NhbmNlbGxl
ZCA9IHRydWU7CisgICAgaWYgKGQtPm1fbXNnKSB7CisgICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5j
ZWxfbWVzc2FnZSAoc2Vzc2lvbiwgZC0+bV9tc2csIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7Cisg
ICAgICAgIC8vIEZvciByZS1lbnRyYW5jeSB0cm91YmxlcyB3ZSBjYWxsIGRpZEZpbmlzaExvYWRp
bmcgd2hlbiB0aGUgbWVzc2FnZSBoYXNuJ3QgYmVlbiBoYW5kbGVkIHlldC4KKyAgICAgICAgZC0+
Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CisgICAgfQogfQogCiBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gUmVzb3VyY2VIYW5kbGU6OmJ1ZmZlcmVkRGF0YSgpCkluZGV4OiBXZWJL
aXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2
aXNpb24gMzE2NzApCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI2IEBACisyMDA4LTA0LTA2ICBMdWNhIEJydW5vICA8bGV0aGFsbWFuODhAZ21haWwu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBXZWJLaXRSZXNvdXJjZUVycm9yLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyk6IGVtaXQgbG9hZC1mYWlsZWQKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0LW1hcnNoYWwubGlzdDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZGVmaW5lcy5o
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXRyZXNvdXJjZWVycm9yLmNwcDogQWRkZWQuCisgICAg
ICAgIChfV2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGU6OndlYmtpdF9yZXNvdXJjZV9lcnJvcl9m
aW5hbGl6ZSk6CisgICAgICAgIChfV2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGU6OndlYmtpdF9y
ZXNvdXJjZV9lcnJvcl9jbGFzc19pbml0KToKKyAgICAgICAgKF9XZWJLaXRSZXNvdXJjZUVycm9y
UHJpdmF0ZTo6d2Via2l0X3Jlc291cmNlX2Vycm9yX2luaXQpOgorICAgICAgICAoX1dlYktpdFJl
c291cmNlRXJyb3JQcml2YXRlOjp3ZWJraXRfcmVzb3VyY2VfZXJyb3JfbmV3KToKKyAgICAgICAg
KF9XZWJLaXRSZXNvdXJjZUVycm9yUHJpdmF0ZTo6d2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF9k
b21haW4pOgorICAgICAgICAoX1dlYktpdFJlc291cmNlRXJyb3JQcml2YXRlOjp3ZWJraXRfcmVz
b3VyY2VfZXJyb3JfZ2V0X2NvZGUpOgorICAgICAgICAoX1dlYktpdFJlc291cmNlRXJyb3JQcml2
YXRlOjp3ZWJraXRfcmVzb3VyY2VfZXJyb3JfZ2V0X3VyaSk6CisgICAgICAgIChfV2ViS2l0UmVz
b3VyY2VFcnJvclByaXZhdGU6OndlYmtpdF9yZXNvdXJjZV9lcnJvcl9nZXRfZGVzY3JpcHRpb24p
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXRyZXNvdXJjZWVycm9yLmg6IEFkZGVkLgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogYWRkIGxvYWQtZmFpbGVkIHNpZ25hbCBhbmQg
cmVhZF9sb2FkX2ZhaWxlZCBzaG93aW5nIGFuIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5oOgorCiAyMDA4LTAzLTMxICBKYXNwZXIgQnJ5YW50LUdyZWVuZSAg
PGphc3BlckB1bml4LmdlZWsubno+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4
OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcAkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgImtqc19iaW5kaW5nLmgiCiAjaW5j
bHVkZSAia2pzX3Byb3h5LmgiCisjaW5jbHVkZSAid2Via2l0cmVzb3VyY2VlcnJvci5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgogI2lu
Y2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKQEAgLTYzOCw5ICs2MzksMTYgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pcwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKQor
dm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVudExv
YWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciZlcnJv
cikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcg
PSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOworICAgIFdlYktpdFJlc291cmNlRXJyb3IqIHJl
c0Vycm9yID0gd2Via2l0X3Jlc291cmNlX2Vycm9yX25ldyhlcnJvci5kb21haW4oKS51dGY4KCku
ZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlcnJvci5lcnJvckNvZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IuZmFpbGluZ1VSTCgp
LnV0ZjgoKS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgaWYgKCF3ZWJWaWV3IHx8ICFyZXNFcnJvcikKKyAgICAgICAgcmV0dXJu
OworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAibG9hZC1mYWlsZWQiLCBtX2Zy
YW1lLCByZXNFcnJvcik7CiB9CiAKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
TG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpCkluZGV4OiBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQtbWFyc2hhbC5saXN0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdC1tYXJzaGFsLmxpc3QJKHJldmlzaW9uIDMxNjMzKQorKysgV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0LW1hcnNoYWwubGlzdAkod29ya2luZyBjb3B5KQpAQCAtNyw2
ICs3LDcgQEAgVk9JRDpPQkpFQ1QsT0JKRUNUCiBWT0lEOk9CSkVDVCxQT0lOVEVSLFBPSU5URVIK
IEJPT0xFQU46U1RSSU5HLElOVCxTVFJJTkcKIEJPT0xFQU46T0JKRUNULFNUUklORworQk9PTEVB
TjpPQkpFQ1QsT0JKRUNUCiBCT09MRUFOOk9CSkVDVCxTVFJJTkcsQk9PTEVBTgogQk9PTEVBTjpP
QkpFQ1QsU1RSSU5HLFNUUklORyxTVFJJTkcKIElOVDpPQkpFQ1QsT0JKRUNUCkluZGV4OiBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZGVmaW5lcy5oCShyZXZpc2lvbiAzMTYzMykKKysrIFdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGRlZmluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsOSBAQCBHX0JF
R0lOX0RFQ0xTCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3QgV2ViS2l0TmV0
d29ya1JlcXVlc3Q7CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzcyBX
ZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzOwogCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0UmVzb3Vy
Y2VFcnJvciBXZWJLaXRSZXNvdXJjZUVycm9yOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFJlc291
cmNlRXJyb3JDbGFzcyBXZWJLaXRSZXNvdXJjZUVycm9yQ2xhc3M7CisKIHR5cGVkZWYgc3RydWN0
IF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0OwogdHlw
ZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdENsYXNzIFdlYktpdFdlYkJhY2tG
b3J3YXJkTGlzdENsYXNzOwogCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRyZXNvdXJj
ZWVycm9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRyZXNvdXJj
ZWVycm9yLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHJlc291
cmNlZXJyb3IuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWNhIEJydW5vIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgIndlYmtpdHJlc291cmNlZXJyb3IuaCIKKworZXh0ZXJu
ICJDIiB7CisKK0dfREVGSU5FX1RZUEUoV2ViS2l0UmVzb3VyY2VFcnJvciwgd2Via2l0X3Jlc291
cmNlX2Vycm9yLCBHX1RZUEVfT0JKRUNUKTsKKworc3RydWN0IF9XZWJLaXRSZXNvdXJjZUVycm9y
UHJpdmF0ZSB7CisgICAgZ2NoYXIqIGRvbWFpbjsKKyAgICBnaW50IGNvZGU7CisgICAgZ2NoYXIq
IHVyaTsKKyAgICBnY2hhciogZGVzY3JpcHRpb247Cit9OworCisjZGVmaW5lIFdFQktJVF9SRVNP
VVJDRV9FUlJPUl9HRVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUo
KG9iaiksIFdFQktJVF9UWVBFX1JFU09VUkNFX0VSUk9SLCBXZWJLaXRSZXNvdXJjZUVycm9yUHJp
dmF0ZSkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9yZXNvdXJjZV9lcnJvcl9maW5hbGl6ZShHT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgV2ViS2l0UmVzb3VyY2VFcnJvciogZXJyb3IgPSBXRUJLSVRf
UkVTT1VSQ0VfRVJST1Iob2JqZWN0KTsKKyAgICBXZWJLaXRSZXNvdXJjZUVycm9yUHJpdmF0ZSog
cHJpdiA9IGVycm9yLT5wcml2OworCisgICAgZ19mcmVlKHByaXYtPmRvbWFpbik7CisgICAgZ19m
cmVlKHByaXYtPnVyaSk7CisgICAgZ19mcmVlKHByaXYtPmRlc2NyaXB0aW9uKTsKKworICAgIEdf
T0JKRUNUX0NMQVNTKHdlYmtpdF9yZXNvdXJjZV9lcnJvcl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6
ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfcmVzb3VyY2VfZXJyb3JfY2xhc3Nf
aW5pdChXZWJLaXRSZXNvdXJjZUVycm9yQ2xhc3MqIGVycm9yQ2xhc3MpCit7CisgICAgR19PQkpF
Q1RfQ0xBU1MoZXJyb3JDbGFzcyktPmZpbmFsaXplID0gd2Via2l0X3Jlc291cmNlX2Vycm9yX2Zp
bmFsaXplOworCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGVycm9yQ2xhc3MsIHNpemVv
ZihXZWJLaXRSZXNvdXJjZUVycm9yUHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRf
cmVzb3VyY2VfZXJyb3JfaW5pdChXZWJLaXRSZXNvdXJjZUVycm9yKiBlcnJvcikKK3sKKyAgICBX
ZWJLaXRSZXNvdXJjZUVycm9yUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9SRVNPVVJDRV9FUlJPUl9H
RVRfUFJJVkFURShlcnJvcik7CisgICAgZXJyb3ItPnByaXYgPSBwcml2OworfQorCitXZWJLaXRS
ZXNvdXJjZUVycm9yKiB3ZWJraXRfcmVzb3VyY2VfZXJyb3JfbmV3KGNvbnN0IGdjaGFyKiBkb21h
aW4sIGdpbnQgZXJyb3JfY29kZSwgY29uc3QgZ2NoYXIqIHVyaSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGRlc2NyaXB0aW9uKQor
eworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGRvbWFpbiwgTlVMTCk7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwodXJpLCBOVUxMKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChkZXNjcmlw
dGlvbiwgTlVMTCk7CisKKyAgICBXZWJLaXRSZXNvdXJjZUVycm9yKiBlcnJvciA9IFdFQktJVF9S
RVNPVVJDRV9FUlJPUihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfUkVTT1VSQ0VfRVJST1IsIE5V
TEwpKTsKKyAgICBXZWJLaXRSZXNvdXJjZUVycm9yUHJpdmF0ZSogcHJpdiA9IGVycm9yLT5wcml2
OworCisgICAgcHJpdi0+ZG9tYWluID0gZ19zdHJkdXAoZG9tYWluKTsKKyAgICBwcml2LT5jb2Rl
ID0gZXJyb3JfY29kZTsKKyAgICBwcml2LT51cmkgPSBnX3N0cmR1cCh1cmkpOworICAgIHByaXYt
PmRlc2NyaXB0aW9uID0gZ19zdHJkdXAoZGVzY3JpcHRpb24pOworCisgICAgcmV0dXJuIGVycm9y
OworfQorCitjb25zdCBnY2hhciogd2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF9kb21haW4oV2Vi
S2l0UmVzb3VyY2VFcnJvciogZXJyb3IpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0lTX1JFU09VUkNFX0VSUk9SKGVycm9yKSwgTlVMTCk7CisKKyAgICBXZWJLaXRSZXNvdXJj
ZUVycm9yUHJpdmF0ZSogcHJpdiA9IGVycm9yLT5wcml2OworICAgIHJldHVybiBwcml2LT5kb21h
aW47Cit9CisKK2dpbnQgd2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF9jb2RlKFdlYktpdFJlc291
cmNlRXJyb3IqIGVycm9yKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19S
RVNPVVJDRV9FUlJPUihlcnJvciksIDApOworCisgICAgV2ViS2l0UmVzb3VyY2VFcnJvclByaXZh
dGUqIHByaXYgPSBlcnJvci0+cHJpdjsKKyAgICByZXR1cm4gcHJpdi0+Y29kZTsKK30KKworY29u
c3QgZ2NoYXIqIHdlYmtpdF9yZXNvdXJjZV9lcnJvcl9nZXRfdXJpKFdlYktpdFJlc291cmNlRXJy
b3IqIGVycm9yKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19SRVNPVVJD
RV9FUlJPUihlcnJvciksIE5VTEwpOworCisgICAgV2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGUq
IHByaXYgPSBlcnJvci0+cHJpdjsKKyAgICByZXR1cm4gcHJpdi0+dXJpOworfQorCitjb25zdCBn
Y2hhciogd2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF9kZXNjcmlwdGlvbihXZWJLaXRSZXNvdXJj
ZUVycm9yKiBlcnJvcikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfUkVT
T1VSQ0VfRVJST1IoZXJyb3IpLCBOVUxMKTsKKworICAgIFdlYktpdFJlc291cmNlRXJyb3JQcml2
YXRlKiBwcml2ID0gZXJyb3ItPnByaXY7CisgICAgcmV0dXJuIHByaXYtPmRlc2NyaXB0aW9uOwor
fQorCit9CkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRyZXNvdXJjZWVycm9yLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cmVzb3VyY2VlcnJvci5oCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cmVzb3VyY2VlcnJvci5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1Y2Eg
QnJ1bm8gPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXRUJLSVRfUkVTT1VSQ0VfRVJS
T1JfSAorI2RlZmluZSBXRUJLSVRfUkVTT1VSQ0VfRVJST1JfSAorCisjaW5jbHVkZSA8Z2xpYi1v
YmplY3QuaD4KKworI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5f
REVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9SRVNPVVJDRV9FUlJPUiAgICAgICAgICAgICh3
ZWJraXRfcmVzb3VyY2VfZXJyb3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1JFU09VUkNF
X0VSUk9SKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiks
IFdFQktJVF9UWVBFX1JFU09VUkNFX0VSUk9SLCBXZWJLaXRSZXNvdXJjZUVycm9yKSkKKyNkZWZp
bmUgV0VCS0lUX1JFU09VUkNFX0VSUk9SX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NM
QVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1JFU09VUkNFX0VSUk9SLCBXZWJLaXRSZXNv
dXJjZUVycm9yQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfUkVTT1VSQ0VfRVJST1Iob2JqKSAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfUkVT
T1VSQ0VfRVJST1IpKQorI2RlZmluZSBXRUJLSVRfSVNfUkVTT1VSQ0VfRVJST1JfQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfUkVTT1VS
Q0VfRVJST1IpKQorI2RlZmluZSBXRUJLSVRfUkVTT1VSQ0VfRVJST1JfR0VUX0NMQVNTKG9iaikg
IChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfUkVTT1VSQ0Vf
RVJST1IsIFdlYktpdFJlc291cmNlRXJyb3JDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJL
aXRSZXNvdXJjZUVycm9yUHJpdmF0ZSBXZWJLaXRSZXNvdXJjZUVycm9yUHJpdmF0ZTsKKworc3Ry
dWN0IF9XZWJLaXRSZXNvdXJjZUVycm9yIHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsK
KworICAgIFdlYktpdFJlc291cmNlRXJyb3JQcml2YXRlKiBwcml2OworfTsKKworc3RydWN0IF9X
ZWJLaXRSZXNvdXJjZUVycm9yQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7
Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfcmVzb3VyY2VfZXJyb3JfZ2V0X3R5cGUg
KHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdFJlc291cmNlRXJyb3IqCit3ZWJraXRfcmVzb3Vy
Y2VfZXJyb3JfbmV3IChjb25zdCBnY2hhciogZG9tYWluLCBnaW50IGVycm9yX2NvZGUsIGNvbnN0
IGdjaGFyKiB1cmksIGNvbnN0IGdjaGFyKiBkZXNjcmlwdGlvbik7CisKK1dFQktJVF9BUEkgY29u
c3QgZ2NoYXIqCit3ZWJraXRfcmVzb3VyY2VfZXJyb3JfZ2V0X2RvbWFpbiAoV2ViS2l0UmVzb3Vy
Y2VFcnJvciogZXJyb3IpOworCitXRUJLSVRfQVBJIGdpbnQKK3dlYmtpdF9yZXNvdXJjZV9lcnJv
cl9nZXRfY29kZSAoV2ViS2l0UmVzb3VyY2VFcnJvciogZXJyb3IpOworCitXRUJLSVRfQVBJIGNv
bnN0IGdjaGFyKgord2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF91cmkgKFdlYktpdFJlc291cmNl
RXJyb3IqIGVycm9yKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhcioKK3dlYmtpdF9yZXNvdXJj
ZV9lcnJvcl9nZXRfZGVzY3JpcHRpb24gKFdlYktpdFJlc291cmNlRXJyb3IqIGVycm9yKTsKKwor
R19FTkRfREVDTFMKKworI2VuZGlmCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cAkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIndlYmtpdHByaXZh
dGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaCIKICNpbmNsdWRlICJ3
ZWJraXR3ZWJoaXN0b3J5aXRlbS5oIgorI2luY2x1ZGUgIndlYmtpdHJlc291cmNlZXJyb3IuaCIK
IAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRMaXN0
LmgiCkBAIC03MSw2ICs3Miw3IEBAIGVudW0gewogICAgIExPQURfQ09NTUlUVEVELAogICAgIExP
QURfUFJPR1JFU1NfQ0hBTkdFRCwKICAgICBMT0FEX0ZJTklTSEVELAorICAgIExPQURfRkFJTEVE
LAogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAogICAgIFBPUFVM
QVRFX1BPUFVQLApAQCAtNjIxLDYgKzYyMywyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfcmVhbF9wYXN0ZV9jCiAgICAgZnJhbWUtPmVkaXRvcigpLT5jb21tYW5kKCJQYXN0ZSIpLmV4
ZWN1dGUoKTsKIH0KIAorc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19yZWFsX2xvYWRf
ZmFpbGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgV2Vi
S2l0UmVzb3VyY2VFcnJvciogZXJyb3IpCit7CisgICAgR3RrV2lkZ2V0KiB3aW5kb3cgPSBndGtf
d2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBHdGtXaWRnZXQq
IGRpYWxvZyA9IGd0a19tZXNzYWdlX2RpYWxvZ19uZXcoR1RLX1dJREdFVF9UT1BMRVZFTCh3aW5k
b3cpID8gR1RLX1dJTkRPVyh3aW5kb3cpIDogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULCBHVEtf
TUVTU0FHRV9FUlJPUiwgR1RLX0JVVFRPTlNfT0ssCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJFcnJvciBjb2RlOiAlZC5cblVSSTogJXMuXG5cbiVzIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Via2l0X3Jl
c291cmNlX2Vycm9yX2dldF9jb2RlKGVycm9yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF91cmkoZXJyb3Ip
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRf
cmVzb3VyY2VfZXJyb3JfZ2V0X2Rlc2NyaXB0aW9uKGVycm9yKSk7CisgICAgZ2NoYXIqIHRpdGxl
ID0gZ19zdHJjb25jYXQoIkVycm9yIC0gIiwgd2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF9kb21h
aW4oZXJyb3IpLCBOVUxMKTsKKyAgICBndGtfd2luZG93X3NldF90aXRsZShHVEtfV0lORE9XKGRp
YWxvZyksIHRpdGxlKTsKKyAgICBnX2ZyZWUodGl0bGUpOworCisgICAgZ3RrX2RpYWxvZ19zZXRf
ZGVmYXVsdF9yZXNwb25zZShHVEtfRElBTE9HKGRpYWxvZyksIEdUS19SRVNQT05TRV9PSyk7Cisg
ICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChkaWFsb2cpLCAicmVzcG9uc2UiLCBHX0NBTExC
QUNLKGd0a193aWRnZXRfZGVzdHJveSksIE5VTEwpOworICAgIGd0a193aWRnZXRfc2hvdyhHVEtf
V0lER0VUKGRpYWxvZykpOworCisgICAgcmV0dXJuIFRSVUU7Cit9CisKIHN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfdmlld19maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgV2ViS2l0V2Vi
Vmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhvYmplY3QpOwpAQCAtNzYzLDYgKzc4NSwy
OCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXCiAgICAgICAgICAg
ICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmll
dzo6bG9hZC1mYWlsZWQ6CisgICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2Vp
dmVkIHRoZSBzaWduYWwKKyAgICAgKiBAZnJhbWU6IHRoZSByZWxldmFudCBmcmFtZQorICAgICAq
IEBlcnJvcjogdGhlIHJlc291cmNlIGVycm9yCisgICAgICogQHJldHVybjogVFJVRSBpZiB0aGUg
ZXJyb3IgaGFzIGJlZW4gaGFuZGxlZCBhbmQgdG8gc3RvcCBvdGhlciBoYW5kbGVycyBmcm9tIGJl
aW5nIGludm9rZWQgZm9yIHRoZSBldmVudC4gRkFMU0UgdG8gcHJvcGFnYXRlIHRoZSBldmVudCBm
dXJ0aGVyLgorICAgICAqCisgICAgICogVGhlIDo6bG9hZC1mYWlsZWQgc2lnbmFsIGlzIGVtaXR0
ZWQgd2hlbmV2ZXIgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGxvYWRpbmcgYSByZXNvdXJjZS4KKyAg
ICAgKgorICAgICAqIERlZmF1bHQgaGFuZGxlciB3aWxsIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2Fn
ZSBkaWFsb2cuCisgICAgICovCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbTE9BRF9GQUlM
RURdID0gZ19zaWduYWxfbmV3KCJsb2FkLWZhaWxlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJP
TV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdO
QUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgR19TVFJVQ1RfT0ZG
U0VUKFdlYktpdFdlYlZpZXdDbGFzcywgbG9hZF9mYWlsZWQpLAorICAgICAgICAgICAgZ19zaWdu
YWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09CSkVDVF9PQkpFQ1QsCisgICAgICAgICAgICBH
X1RZUEVfQk9PTEVBTiwgMiwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKKyAg
ICAgICAgICAgIFdFQktJVF9UWVBFX1JFU09VUkNFX0VSUk9SKTsKKworICAgIC8qKgogICAgICAq
IFdlYktpdFdlYlZpZXc6OnRpdGxlLWNoYW5nZWQ6CiAgICAgICogQHdlYl92aWV3OiB0aGUgb2Jq
ZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAogICAgICAqIEBmcmFtZTogdGhlIG1h
aW4gZnJhbWUKQEAgLTEwMDIsNiArMTA0Niw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmll
d19jbGFzc19pbml0KFcKICAgICB3ZWJWaWV3Q2xhc3MtPmN1dF9jbGlwYm9hcmQgPSB3ZWJraXRf
d2ViX3ZpZXdfcmVhbF9jdXRfY2xpcGJvYXJkOwogICAgIHdlYlZpZXdDbGFzcy0+Y29weV9jbGlw
Ym9hcmQgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jb3B5X2NsaXBib2FyZDsKICAgICB3ZWJWaWV3
Q2xhc3MtPnBhc3RlX2NsaXBib2FyZCA9IHdlYmtpdF93ZWJfdmlld19yZWFsX3Bhc3RlX2NsaXBi
b2FyZDsKKyAgICB3ZWJWaWV3Q2xhc3MtPmxvYWRfZmFpbGVkID0gd2Via2l0X3dlYl92aWV3X3Jl
YWxfbG9hZF9mYWlsZWQ7CiAKICAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpF
Q1RfQ0xBU1Mod2ViVmlld0NsYXNzKTsKICAgICBvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJr
aXRfd2ViX3ZpZXdfZmluYWxpemU7CkBAIC0xOTA2LDcgKzE5NTEsNyBAQCBHdGtUYXJnZXRMaXN0
KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Bhc3RlCiAgKi8KIGdib29sZWFuIHdlYmtpdF93ZWJfdmll
d19nZXRfdHJhbnNwYXJlbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIHsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIE5VTEwpOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOwog
CiAgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwogICAgIHJl
dHVybiBwcml2LT50cmFuc3BhcmVudDsKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgJ
KHJldmlzaW9uIDMxNjMzKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCSh3
b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0NsYXNz
IHsKICAgICB2b2lkICgqY3V0X2NsaXBib2FyZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsK
ICAgICB2b2lkICgqY29weV9jbGlwYm9hcmQpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7CiAg
ICAgdm9pZCAoKnBhc3RlX2NsaXBib2FyZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKKyAg
ICBnYm9vbGVhbiAoKmxvYWRfZmFpbGVkKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIFdlYktp
dFdlYkZyYW1lKiBmcmFtZSwgV2ViS2l0UmVzb3VyY2VFcnJvciogZXJyb3IpOwogCiAgICAgLyoK
ICAgICAgKiBpbnRlcm5hbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20366</attachid>
            <date>2008-04-06 08:30:50 -0700</date>
            <delta_ts>2008-04-07 05:22:46 -0700</delta_ts>
            <desc>add WebKitResourceError</desc>
            <filename>soup.patch</filename>
            <type>text/plain</type>
            <size>26883</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMxNjcw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDgtMDQt
MDYgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYktpdFJlc291cmNlRXJyb3Iu
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogYWRkIHdlYmtpdHJlc291cmNlZXJyb3IuY3Bw
IGFuZCB3ZWJraXRyZXNvdXJjZWVycm9yLmgKKwogMjAwOC0wMy0yMSAgUm9kbmV5IERhd2VzICA8
ZG9iZXlAd2F5b2Z0aGVtb25rZXkuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlci4K
SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzMTYzMykKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsNiAr
Mjg0LDcgQEAgd2Via2l0Z3RrX2hfYXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQu
aCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRy
ZXNvdXJjZWVycm9yLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJk
bGlzdC5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oIFwKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5oIFwKQEAgLTMwNiw2ICszMDcsNyBAQCB3
ZWJraXRndGtfaGVhZGVycyArPSBcCiAKIHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAgXAorCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHJlc291cmNlZXJyb3IuY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2
YXRlLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNw
cCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKSW5kZXg6IFdlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAz
MTY3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMDgtMDQtMDYgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyOTcKKyAgICAgICAgQnVnICMxODI5NyAtIEFj
aWQyL0FjaWQzIC10ZXN0cyBkb24ndCBsb2FkIGxvYWQgd2l0aCBzb3VwLgorCisgICAgICAgIEZp
eGVzIGluIHRoZSBsaWJzb3VwIGJhY2tlbmQ6IGRhdGEgdXJsIHBhcnNpbmcsIGFjaWQgdGVzdHMs
IHJlZGlyZWN0cywKKyAgICAgICAgcmVzcG9uc2UgaGVhZGVycyBoYW5kbGluZyBhbmQgcmUtZW50
cmFuY3kgaXNzdWVzIG9uIGpvYiBjYW5jZWxsYXRpb24uCisgICAgICAgIFRoYW5rcyB0byBEYW4g
V2luc2hpcCBmb3IgbGlic291cCBoaW50cy4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENB
U0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIFdlYkNvcmUucHJvOiBhZGQgd2Via2l0
cmVzb3VyY2VlcnJvci5oIGFuZCB3ZWJraXRyZXNvdXJjZWVycm9yLmNwcAorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6IGFkZCBt
X2NhbmNlbGxlZCBhbmQgcmVtb3ZlIHVudXNlZnVsIG1fc2Vzc2lvbgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cmVzdGFydGVkQ2FsbGJhY2spOiBhZGRlZCB0byByb3V0ZSByZWRpcmVjdHMgdG8gd2Via2l0
CisgICAgICAgIChXZWJDb3JlOjpkYXRhQ2FsbGJhY2spOiBhZGQgcmVzcG9uc2UgaGVhZGVycywg
c29tZSBjaGVja3MgYW5kIGZpeCByZS1lbnRyYW5jeQorICAgICAgICAoV2ViQ29yZTo6cGFyc2VE
YXRhVXJsKTogYmUgYW4gaWRsZSBjYWxsYmFjayBmb3IgdGhlIG1haW4gbG9vcAorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpjYW5jZWwpOiBmaXhlZCByZS1lbnRyYW5jeQorCiAyMDA4LTA0LTA1ICBLZXZp
biBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJDb3JlL1dlYkNvcmUu
cHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQ1LDYgKzEwNDUsNyBAQCBndGstcG9ydCB7CiAgICAg
ICAgIC4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaCBcCiAgICAgICAgIC4uL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmggXAogICAgICAgICAuLi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmggXAorICAgICAgICAuLi9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRyZXNvdXJjZWVycm9yLmggXAogICAgICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaCBcCiAgICAgICAgIC4uL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmggXAogICAgICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJoaXN0b3J5aXRlbS5oIFwKQEAgLTExMjUsNiArMTEyNiw3IEBAIGd0ay1wb3J0IHsKICAg
ICAgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVjb2Rlci5jcHAgXAog
ICAgICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAgXAog
ICAgICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCBcCisgICAgICAg
IC4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHJlc291cmNlZXJyb3IuY3BwIFwKICAgICAgICAg
Li4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcCBcCiAgICAg
ICAgIC4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAgICAgICAgIC4u
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcCBcCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgJKHJl
dmlzaW9uIDMxNjMzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICNlbmRpZgogI2lmIFVTRShTT1VQKQogICAgICAgICAgICAgLCBtX21zZygwKQor
ICAgICAgICAgICAgLCBtX2NhbmNlbGxlZChmYWxzZSkKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFU
KQogICAgICAgICAgICAgLCBtX2pvYigwKQpAQCAtMTczLDggKzE3NCw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICNlbmRpZgogI2lmIFVTRShTT1VQKQogICAgICAgICBTb3VwTWVzc2FnZSogbV9t
c2c7Ci0gICAgICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uOwogICAgICAgICBSZXNvdXJjZVJlc3Bv
bnNlIG1fcmVzcG9uc2U7CisgICAgICAgIGJvb2wgbV9jYW5jZWxsZWQ7CiAjZW5kaWYKICNpZiBQ
TEFURk9STShRVCkKICNpZiBRVF9WRVJTSU9OIDwgMHgwNDA0MDAKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2
aXNpb24gMzE2MzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0YXRpYyBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IDA7CitzdGF0aWMgY29u
c3QgaW50IG1heENvbm5lY3Rpb25zUGVySG9zdCA9IDU7CiAKIFJlc291cmNlSGFuZGxlSW50ZXJu
YWw6On5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkKIHsKQEAgLTUyLDMzICs1Myw4NCBAQCBSZXNv
dXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKIH0KIAorc3RhdGljIHZvaWQgcmVzdGFy
dGVkQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBSZXNv
dXJjZUhhbmRsZSogaGFuZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsK
KyAgICBpZiAoIWhhbmRsZSkKKyAgICAgICAgcmV0dXJuOworICAgIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgaWYgKGQtPm1fY2FuY2VsbGVk
KQorICAgICAgICByZXR1cm47CisKKyAgICBjaGFyKiB1cmkgPSBzb3VwX3VyaV90b19zdHJpbmco
c291cF9tZXNzYWdlX2dldF91cmkobXNnKSwgRkFMU0UpOworICAgIFN0cmluZyBsb2NhdGlvbiA9
IFN0cmluZyh1cmkpOworICAgIGdfZnJlZSh1cmkpOworICAgIEtVUkwgbmV3VVJMID0gS1VSTCho
YW5kbGUtPnJlcXVlc3QoKS51cmwoKSwgbG9jYXRpb24pOworICAgICAgICAgICAgCisgICAgUmVz
b3VyY2VSZXF1ZXN0IHJlZGlyZWN0ZWRSZXF1ZXN0ID0gaGFuZGxlLT5yZXF1ZXN0KCk7CisgICAg
cmVkaXJlY3RlZFJlcXVlc3Quc2V0VVJMKG5ld1VSTCk7CisgICAgaWYgKGQtPmNsaWVudCgpKQor
ICAgICAgICBkLT5jbGllbnQoKS0+d2lsbFNlbmRSZXF1ZXN0KGhhbmRsZSwgcmVkaXJlY3RlZFJl
cXVlc3QsIGQtPm1fcmVzcG9uc2UpOworICAgIAorICAgIGQtPm1fcmVxdWVzdC5zZXRVUkwobmV3
VVJMKTsKK30KKwogc3RhdGljIHZvaWQgZGF0YUNhbGxiYWNrKFNvdXBTZXNzaW9uICpzZXNzaW9u
LCBTb3VwTWVzc2FnZSogbXNnLCBncG9pbnRlciBkYXRhKQogewogICAgIFJlc291cmNlSGFuZGxl
KiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwogICAgIC8vIFRP
RE86IG1heWJlIHdlIHNob3VsZCBydW4gdGhpcyBjb2RlIGV2ZW4gaWYgdGhlcmUncyBubyBjbGll
bnQ/CiAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgIHJldHVybjsKKworICAgIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgLy8gVGhlIG1lc3Nh
Z2UgaGFzIGJlZW4gaGFuZGxlZC4KKyAgICBkLT5tX21zZyA9IE5VTEw7CisKICAgICBSZXNvdXJj
ZUhhbmRsZUNsaWVudCogY2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKICAgICBpZiAoIWNsaWVu
dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKKyAg
ICBpZiAoZC0+bV9jYW5jZWxsZWQpCisgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBjb250
ZW50VHlwZSA9IFN0cmluZyhzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXQobXNnLT5yZXNwb25zZV9o
ZWFkZXJzLCAiQ29udGVudC1UeXBlIikpOwotICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJh
Y3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKLSAgICByZXNwb25zZS5zZXRU
ZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkp
OworICAgIGlmIChTT1VQX1NUQVRVU19JU19UUkFOU1BPUlRfRVJST1IobXNnLT5zdGF0dXNfY29k
ZSkpIHsKKyAgICAgICAgY2hhciogdXJpID0gc291cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2Fn
ZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcigiVHJh
bnNwb3J0IGVycm9yIiwgbXNnLT5zdGF0dXNfY29kZSwgdXJpLCBTdHJpbmcobXNnLT5yZWFzb25f
cGhyYXNlKSArICI6ICIgKyB1cmkpOworICAgICAgICBnX2ZyZWUodXJpKTsKKyAgICAgICAgY2xp
ZW50LT5kaWRGYWlsKGhhbmRsZSwgZXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
CisgICAgU291cE1lc3NhZ2VIZWFkZXJzSXRlciBpdGVyOworICAgIGNvbnN0IGNoYXIqIG5hbWUg
PSBOVUxMOworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gTlVMTDsKKyAgICBzb3VwX21lc3NhZ2Vf
aGVhZGVyc19pdGVyX2luaXQgKCZpdGVyLCBtc2ctPnJlc3BvbnNlX2hlYWRlcnMpOworICAgIHdo
aWxlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX25leHQoJml0ZXIsICZuYW1lLCAmdmFsdWUp
KQorICAgICAgICBkLT5tX3Jlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChuYW1lLCB2YWx1ZSk7
CisKKyAgICBTdHJpbmcgY29udGVudFR5cGUgPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXQobXNn
LT5yZXNwb25zZV9oZWFkZXJzLCAiQ29udGVudC1UeXBlIik7CisgICAgY2hhciogdXJpID0gc291
cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICBk
LT5tX3Jlc3BvbnNlLnNldFVybChLVVJMKHVyaSkpOworICAgIGdfZnJlZSh1cmkpOworICAgIGQt
Pm1fcmVzcG9uc2Uuc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250
ZW50VHlwZSkpOworICAgIGQtPm1fcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0
Q2hhcnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpKTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNl
dEV4cGVjdGVkQ29udGVudExlbmd0aChtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCk7CisgICAg
ZC0+bV9yZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShtc2ctPnN0YXR1c19jb2RlKTsKKyAgICBk
LT5tX3Jlc3BvbnNlLnNldFN1Z2dlc3RlZEZpbGVuYW1lKGZpbGVuYW1lRnJvbUhUVFBDb250ZW50
RGlzcG9zaXRpb24oZC0+bV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlzcG9z
aXRpb24iKSkpOworICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9y
ZXNwb25zZSk7CiAKLSAgICByZXNwb25zZS5zZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgobXNnLT5y
ZXNwb25zZV9ib2R5LT5sZW5ndGgpOwotICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKG1z
Zy0+c3RhdHVzX2NvZGUpOworICAgIC8vIFdlYkNvcmUgbWlnaHQgaGF2ZSBjYW5jZWxsZWQgdGhl
IGpvYiBpbiB0aGUgd2hpbGUKKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCisgICAgICAgIHJldHVy
bjsKIAotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2UpOwog
ICAgIGlmIChtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEpCi0gICAgICAgIGNsaWVudC0+ZGlkUmVj
ZWl2ZURhdGEoaGFuZGxlLCBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEsIG1zZy0+cmVzcG9uc2Vf
Ym9keS0+bGVuZ3RoLCAwKTsKKyAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUs
IG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSwgbXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGgsIDAp
OyAgCiAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7CiB9CiAKLXN0YXRpYyB2
b2lkIHBhcnNlRGF0YVVybChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQorc3RhdGljIGdib29sZWFu
IHBhcnNlRGF0YVVybChncG9pbnRlciBjYWxsYmFja19kYXRhKQogeworICAgIFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGNhbGxiYWNrX2RhdGEp
OwogICAgIFN0cmluZyBkYXRhID0gaGFuZGxlLT5yZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCk7CiAK
ICAgICBBU1NFUlQoZGF0YS5zdGFydHNXaXRoKCJkYXRhOiIsIGZhbHNlKSk7CkBAIC0xMzMsNiAr
MTg1LDggQEAgc3RhdGljIHZvaWQgcGFyc2VEYXRhVXJsKFJlc291cmNlSGFuZGxlKgogICAgIGdf
ZnJlZShvdXREYXRhKTsKIAogICAgIGNsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOwor
CisgICAgcmV0dXJuIEZBTFNFOwogfQogCiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFt
ZSogZnJhbWUpCkBAIC0xNDgsMTcgKzIwMiwyMCBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChGcmFtZSogZnJhbWUpCiAgICAgU3RyaW5nIHByb3RvY29sID0gdXJsLnByb3RvY29sKCk7CiAK
ICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocHJvdG9jb2wsICJkYXRhIikpIHsKLSAgICAgICAg
cGFyc2VEYXRhVXJsKHRoaXMpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGdfaWRs
ZV9hZGQocGFyc2VEYXRhVXJsLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CisgICAgU3RyaW5nIHVybFN0cmluZyA9IHVybC5zdHJpbmcoKTsKKwogICAgIGlmICghZXF1YWxJ
Z25vcmluZ0Nhc2UocHJvdG9jb2wsICJodHRwIikgJiYgIWVxdWFsSWdub3JpbmdDYXNlKHByb3Rv
Y29sLCAiaHR0cHMiKSkgewotICAgICAgICAvLyBUT0RPOiBkaWRGYWlsKCk/CisgICAgICAgIGlm
IChkLT5jbGllbnQoKSkgeworICAgICAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcigiVW5rbm93
biBwcm90b2NvbCIsIDAsIHVybFN0cmluZywgU3RyaW5nKCJVbmtub3duIHByb3RvY29sOiAiKSAr
IHByb3RvY29sKTsKKyAgICAgICAgICAgIGQtPmNsaWVudCgpLT5kaWRGYWlsKHRoaXMsIGVycm9y
KTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgU3RyaW5n
IHVybFN0cmluZyA9IHVybC5zdHJpbmcoKTsKLQogICAgIGlmICh1cmwuaXNMb2NhbEZpbGUoKSkg
ewogICAgICAgICBTdHJpbmcgcXVlcnkgPSB1cmwucXVlcnkoKTsKICAgICAgICAgLy8gUmVtb3Zl
IGFueSBxdWVyeSBwYXJ0IHNlbnQgdG8gYSBsb2NhbCBmaWxlLgpAQCAtMTY5LDIzICsyMjYsMTEg
QEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZyYW1lKQogICAgIH0KIAogICAg
IGlmICghc2Vzc2lvbikKLSAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXco
KTsKKyAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXdfd2l0aF9vcHRpb25z
KFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hPU1QsIDUsIE5VTEwpOwogCiAgICAgU291cE1l
c3NhZ2UqIG1zZzsKLSAgICBjb25zdCBjaGFyKiBtZXRob2QgPSAwOwotCi0gICAgaWYgKHJlcXVl
c3QoKS5odHRwTWV0aG9kKCkgPT0gIkdFVCIpCi0gICAgICAgIG1ldGhvZCA9IFNPVVBfTUVUSE9E
X0dFVDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQT1NUIikKLSAg
ICAgICAgbWV0aG9kID0gU09VUF9NRVRIT0RfUE9TVDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCku
aHR0cE1ldGhvZCgpID09ICJIRUFEIikKLSAgICAgICAgbWV0aG9kID0gU09VUF9NRVRIT0RfSEVB
RDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQVVQiKQotICAgICAg
ICBtZXRob2QgPSBTT1VQX01FVEhPRF9QVVQ7Ci0gICAgZWxzZQotICAgICAgICBnX2RlYnVnICgi
VW5rbm93biBtZXRob2QhIik7Ci0KLSAgICBtc2cgPSBzb3VwX21lc3NhZ2VfbmV3KG1ldGhvZD8g
bWV0aG9kIDogU09VUF9NRVRIT0RfR0VULCB1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7CisgICAg
bXNnID0gc291cF9tZXNzYWdlX25ldyhyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpLnV0ZjgoKS5kYXRh
KCksIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1zZywg
InJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCB0aGlzKTsKIAogICAg
IEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9IGQtPm1fcmVxdWVzdC5odHRwSGVhZGVyRmll
bGRzKCk7CiAgICAgaWYgKCFjdXN0b21IZWFkZXJzLmlzRW1wdHkoKSkgewpAQCAtMjA5LDggKzI1
NCw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVBfTUVNT1JZX0NPUFksIGJvZHkuZGF0YSgpLCBi
b2R5LnNpemUoKSk7CiAgICAgfQogCi0gICAgZC0+bV9tc2cgPSAoU291cE1lc3NhZ2UqKWdfb2Jq
ZWN0X3JlZihtc2cpOwotICAgIGQtPnNlc3Npb24gPSBzZXNzaW9uOworICAgIGQtPm1fbXNnID0g
c3RhdGljX2Nhc3Q8U291cE1lc3NhZ2UqPihnX29iamVjdF9yZWYobXNnKSk7CiAgICAgc291cF9z
ZXNzaW9uX3F1ZXVlX21lc3NhZ2Uoc2Vzc2lvbiwgZC0+bV9tc2csIGRhdGFDYWxsYmFjaywgdGhp
cyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIxOCwxMCArMjYyLDEyIEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2Fu
Y2VsKCkKIHsKLSAgICBpZiAoZC0+bV9tc2cpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxf
bWVzc2FnZSAoZC0+c2Vzc2lvbiwgZC0+bV9tc2csIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7Ci0K
LSAgICBjbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICBkLT5tX2NhbmNlbGxl
ZCA9IHRydWU7CisgICAgaWYgKGQtPm1fbXNnKSB7CisgICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5j
ZWxfbWVzc2FnZSAoc2Vzc2lvbiwgZC0+bV9tc2csIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7Cisg
ICAgICAgIC8vIEZvciByZS1lbnRyYW5jeSB0cm91YmxlcyB3ZSBjYWxsIGRpZEZpbmlzaExvYWRp
bmcgd2hlbiB0aGUgbWVzc2FnZSBoYXNuJ3QgYmVlbiBoYW5kbGVkIHlldC4KKyAgICAgICAgZC0+
Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CisgICAgfQogfQogCiBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gUmVzb3VyY2VIYW5kbGU6OmJ1ZmZlcmVkRGF0YSgpCkluZGV4OiBXZWJL
aXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2
aXNpb24gMzE2NzApCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI2IEBACisyMDA4LTA0LTA2ICBMdWNhIEJydW5vICA8bGV0aGFsbWFuODhAZ21haWwu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBXZWJLaXRSZXNvdXJjZUVycm9yLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyk6IGVtaXQgbG9hZC1mYWlsZWQKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0LW1hcnNoYWwubGlzdDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZGVmaW5lcy5o
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXRyZXNvdXJjZWVycm9yLmNwcDogQWRkZWQuCisgICAg
ICAgIChfV2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGU6OndlYmtpdF9yZXNvdXJjZV9lcnJvcl9m
aW5hbGl6ZSk6CisgICAgICAgIChfV2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGU6OndlYmtpdF9y
ZXNvdXJjZV9lcnJvcl9jbGFzc19pbml0KToKKyAgICAgICAgKF9XZWJLaXRSZXNvdXJjZUVycm9y
UHJpdmF0ZTo6d2Via2l0X3Jlc291cmNlX2Vycm9yX2luaXQpOgorICAgICAgICAoX1dlYktpdFJl
c291cmNlRXJyb3JQcml2YXRlOjp3ZWJraXRfcmVzb3VyY2VfZXJyb3JfbmV3KToKKyAgICAgICAg
KF9XZWJLaXRSZXNvdXJjZUVycm9yUHJpdmF0ZTo6d2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF9k
b21haW4pOgorICAgICAgICAoX1dlYktpdFJlc291cmNlRXJyb3JQcml2YXRlOjp3ZWJraXRfcmVz
b3VyY2VfZXJyb3JfZ2V0X2NvZGUpOgorICAgICAgICAoX1dlYktpdFJlc291cmNlRXJyb3JQcml2
YXRlOjp3ZWJraXRfcmVzb3VyY2VfZXJyb3JfZ2V0X3VyaSk6CisgICAgICAgIChfV2ViS2l0UmVz
b3VyY2VFcnJvclByaXZhdGU6OndlYmtpdF9yZXNvdXJjZV9lcnJvcl9nZXRfZGVzY3JpcHRpb24p
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXRyZXNvdXJjZWVycm9yLmg6IEFkZGVkLgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogYWRkIGxvYWQtZmFpbGVkIHNpZ25hbCBhbmQg
cmVhZF9sb2FkX2ZhaWxlZCBzaG93aW5nIGFuIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5oOgorCiAyMDA4LTAzLTMxICBKYXNwZXIgQnJ5YW50LUdyZWVuZSAg
PGphc3BlckB1bml4LmdlZWsubno+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4
OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcAkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgImtqc19iaW5kaW5nLmgiCiAjaW5j
bHVkZSAia2pzX3Byb3h5LmgiCisjaW5jbHVkZSAid2Via2l0cmVzb3VyY2VlcnJvci5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgogI2lu
Y2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKQEAgLTYzOCw5ICs2MzksMTcgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pcwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKQor
dm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVudExv
YWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciZlcnJv
cikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcg
PSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOworICAgIFdlYktpdFJlc291cmNlRXJyb3IqIHJl
c0Vycm9yID0gd2Via2l0X3Jlc291cmNlX2Vycm9yX25ldyhlcnJvci5kb21haW4oKS51dGY4KCku
ZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlcnJvci5lcnJvckNvZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IuZmFpbGluZ1VSTCgp
LnV0ZjgoKS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgaWYgKCFyZXNFcnJvcikKKyAgICAgICAgcmV0dXJuOworICAgIGdib29s
ZWFuIHJldHZhbDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgImxvYWQtZmFp
bGVkIiwgbV9mcmFtZSwgcmVzRXJyb3IsICZyZXR2YWwpOwogfQogCiBib29sIEZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExv
YWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBp
bnQgbGVuZ3RoKQpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LW1hcnNoYWwubGlzdAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQtbWFyc2hhbC5saXN0CShyZXZp
c2lvbiAzMTYzMykKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdC1tYXJzaGFsLmxpc3QJKHdv
cmtpbmcgY29weSkKQEAgLTcsNiArNyw3IEBAIFZPSUQ6T0JKRUNULE9CSkVDVAogVk9JRDpPQkpF
Q1QsUE9JTlRFUixQT0lOVEVSCiBCT09MRUFOOlNUUklORyxJTlQsU1RSSU5HCiBCT09MRUFOOk9C
SkVDVCxTVFJJTkcKK0JPT0xFQU46T0JKRUNULE9CSkVDVAogQk9PTEVBTjpPQkpFQ1QsU1RSSU5H
LEJPT0xFQU4KIEJPT0xFQU46T0JKRUNULFNUUklORyxTVFJJTkcsU1RSSU5HCiBJTlQ6T0JKRUNU
LE9CSkVDVApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAkocmV2aXNpb24gMzE2MzMp
CisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQzLDYgKzQzLDkgQEAgR19CRUdJTl9ERUNMUwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdv
cmtSZXF1ZXN0IFdlYktpdE5ldHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5l
dHdvcmtSZXF1ZXN0Q2xhc3MgV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzczsKIAordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFJlc291cmNlRXJyb3IgV2ViS2l0UmVzb3VyY2VFcnJvcjsKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXRSZXNvdXJjZUVycm9yQ2xhc3MgV2ViS2l0UmVzb3VyY2VFcnJvckNsYXNz
OworCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0IFdlYktpdFdlYkJh
Y2tGb3J3YXJkTGlzdDsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RD
bGFzcyBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RDbGFzczsKIApJbmRleDogV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0cmVzb3VyY2VlcnJvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0cmVzb3VyY2VlcnJvci5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRyZXNvdXJjZWVycm9yLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
MTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVjYSBCcnVubyA8bGV0aGFsbWFuODhA
Z21haWwuY29tPgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJ3ZWJraXRyZXNvdXJj
ZWVycm9yLmgiCisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKFdlYktpdFJlc291cmNl
RXJyb3IsIHdlYmtpdF9yZXNvdXJjZV9lcnJvciwgR19UWVBFX09CSkVDVCk7CisKK3N0cnVjdCBf
V2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGUgeworICAgIGdjaGFyKiBkb21haW47CisgICAgZ2lu
dCBjb2RlOworICAgIGdjaGFyKiB1cmk7CisgICAgZ2NoYXIqIGRlc2NyaXB0aW9uOworfTsKKwor
I2RlZmluZSBXRUJLSVRfUkVTT1VSQ0VfRVJST1JfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lO
U1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9SRVNPVVJDRV9FUlJPUiwgV2Vi
S2l0UmVzb3VyY2VFcnJvclByaXZhdGUpKQorCitzdGF0aWMgdm9pZCB3ZWJraXRfcmVzb3VyY2Vf
ZXJyb3JfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIFdlYktpdFJlc291cmNlRXJy
b3IqIGVycm9yID0gV0VCS0lUX1JFU09VUkNFX0VSUk9SKG9iamVjdCk7CisgICAgV2ViS2l0UmVz
b3VyY2VFcnJvclByaXZhdGUqIHByaXYgPSBlcnJvci0+cHJpdjsKKworICAgIGdfZnJlZShwcml2
LT5kb21haW4pOworICAgIGdfZnJlZShwcml2LT51cmkpOworICAgIGdfZnJlZShwcml2LT5kZXNj
cmlwdGlvbik7CisKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfcmVzb3VyY2VfZXJyb3JfcGFy
ZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X3Jl
c291cmNlX2Vycm9yX2NsYXNzX2luaXQoV2ViS2l0UmVzb3VyY2VFcnJvckNsYXNzKiBlcnJvckNs
YXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNTKGVycm9yQ2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtp
dF9yZXNvdXJjZV9lcnJvcl9maW5hbGl6ZTsKKworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0
ZShlcnJvckNsYXNzLCBzaXplb2YoV2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGUpKTsKK30KKwor
c3RhdGljIHZvaWQgd2Via2l0X3Jlc291cmNlX2Vycm9yX2luaXQoV2ViS2l0UmVzb3VyY2VFcnJv
ciogZXJyb3IpCit7CisgICAgV2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGUqIHByaXYgPSBXRUJL
SVRfUkVTT1VSQ0VfRVJST1JfR0VUX1BSSVZBVEUoZXJyb3IpOworICAgIGVycm9yLT5wcml2ID0g
cHJpdjsKK30KKworV2ViS2l0UmVzb3VyY2VFcnJvciogd2Via2l0X3Jlc291cmNlX2Vycm9yX25l
dyhjb25zdCBnY2hhciogZG9tYWluLCBnaW50IGVycm9yX2NvZGUsIGNvbnN0IGdjaGFyKiB1cmks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdj
aGFyKiBkZXNjcmlwdGlvbikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChkb21haW4sIE5V
TEwpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHVyaSwgTlVMTCk7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoZGVzY3JpcHRpb24sIE5VTEwpOworCisgICAgV2ViS2l0UmVzb3VyY2VFcnJv
ciogZXJyb3IgPSBXRUJLSVRfUkVTT1VSQ0VfRVJST1IoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBF
X1JFU09VUkNFX0VSUk9SLCBOVUxMKSk7CisgICAgV2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGUq
IHByaXYgPSBlcnJvci0+cHJpdjsKKworICAgIHByaXYtPmRvbWFpbiA9IGdfc3RyZHVwKGRvbWFp
bik7CisgICAgcHJpdi0+Y29kZSA9IGVycm9yX2NvZGU7CisgICAgcHJpdi0+dXJpID0gZ19zdHJk
dXAodXJpKTsKKyAgICBwcml2LT5kZXNjcmlwdGlvbiA9IGdfc3RyZHVwKGRlc2NyaXB0aW9uKTsK
KworICAgIHJldHVybiBlcnJvcjsKK30KKworY29uc3QgZ2NoYXIqIHdlYmtpdF9yZXNvdXJjZV9l
cnJvcl9nZXRfZG9tYWluKFdlYktpdFJlc291cmNlRXJyb3IqIGVycm9yKQoreworICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19SRVNPVVJDRV9FUlJPUihlcnJvciksIE5VTEwpOwor
CisgICAgV2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGUqIHByaXYgPSBlcnJvci0+cHJpdjsKKyAg
ICByZXR1cm4gcHJpdi0+ZG9tYWluOworfQorCitnaW50IHdlYmtpdF9yZXNvdXJjZV9lcnJvcl9n
ZXRfY29kZShXZWJLaXRSZXNvdXJjZUVycm9yKiBlcnJvcikKK3sKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfUkVTT1VSQ0VfRVJST1IoZXJyb3IpLCAwKTsKKworICAgIFdlYktp
dFJlc291cmNlRXJyb3JQcml2YXRlKiBwcml2ID0gZXJyb3ItPnByaXY7CisgICAgcmV0dXJuIHBy
aXYtPmNvZGU7Cit9CisKK2NvbnN0IGdjaGFyKiB3ZWJraXRfcmVzb3VyY2VfZXJyb3JfZ2V0X3Vy
aShXZWJLaXRSZXNvdXJjZUVycm9yKiBlcnJvcikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfUkVTT1VSQ0VfRVJST1IoZXJyb3IpLCBOVUxMKTsKKworICAgIFdlYktpdFJl
c291cmNlRXJyb3JQcml2YXRlKiBwcml2ID0gZXJyb3ItPnByaXY7CisgICAgcmV0dXJuIHByaXYt
PnVyaTsKK30KKworY29uc3QgZ2NoYXIqIHdlYmtpdF9yZXNvdXJjZV9lcnJvcl9nZXRfZGVzY3Jp
cHRpb24oV2ViS2l0UmVzb3VyY2VFcnJvciogZXJyb3IpCit7CisgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX1JFU09VUkNFX0VSUk9SKGVycm9yKSwgTlVMTCk7CisKKyAgICBXZWJL
aXRSZXNvdXJjZUVycm9yUHJpdmF0ZSogcHJpdiA9IGVycm9yLT5wcml2OworICAgIHJldHVybiBw
cml2LT5kZXNjcmlwdGlvbjsKK30KKworfQpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
cmVzb3VyY2VlcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHJl
c291cmNlZXJyb3IuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHJl
c291cmNlZXJyb3IuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWNhIEJydW5vIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYg
V0VCS0lUX1JFU09VUkNFX0VSUk9SX0gKKyNkZWZpbmUgV0VCS0lUX1JFU09VUkNFX0VSUk9SX0gK
KworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVm
aW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfUkVTT1VSQ0Vf
RVJST1IgICAgICAgICAgICAod2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF90eXBlKCkpCisjZGVm
aW5lIFdFQktJVF9SRVNPVVJDRV9FUlJPUihvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19J
TlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9SRVNPVVJDRV9FUlJPUiwgV2ViS2l0UmVz
b3VyY2VFcnJvcikpCisjZGVmaW5lIFdFQktJVF9SRVNPVVJDRV9FUlJPUl9DTEFTUyhrbGFzcykg
ICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9SRVNPVVJD
RV9FUlJPUiwgV2ViS2l0UmVzb3VyY2VFcnJvckNsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1JF
U09VUkNFX0VSUk9SKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9i
aiksIFdFQktJVF9UWVBFX1JFU09VUkNFX0VSUk9SKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1JFU09V
UkNFX0VSUk9SX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwg
IFdFQktJVF9UWVBFX1JFU09VUkNFX0VSUk9SKSkKKyNkZWZpbmUgV0VCS0lUX1JFU09VUkNFX0VS
Uk9SX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdF
QktJVF9UWVBFX1JFU09VUkNFX0VSUk9SLCBXZWJLaXRSZXNvdXJjZUVycm9yQ2xhc3MpKQorCit0
eXBlZGVmIHN0cnVjdCBfV2ViS2l0UmVzb3VyY2VFcnJvclByaXZhdGUgV2ViS2l0UmVzb3VyY2VF
cnJvclByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0UmVzb3VyY2VFcnJvciB7CisgICAgR09iamVj
dCBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBXZWJLaXRSZXNvdXJjZUVycm9yUHJpdmF0ZSogcHJp
djsKK307CisKK3N0cnVjdCBfV2ViS2l0UmVzb3VyY2VFcnJvckNsYXNzIHsKKyAgICBHT2JqZWN0
Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3Jlc291
cmNlX2Vycm9yX2dldF90eXBlICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRSZXNvdXJjZUVy
cm9yKgord2Via2l0X3Jlc291cmNlX2Vycm9yX25ldyAoY29uc3QgZ2NoYXIqIGRvbWFpbiwgZ2lu
dCBlcnJvcl9jb2RlLCBjb25zdCBnY2hhciogdXJpLCBjb25zdCBnY2hhciogZGVzY3JpcHRpb24p
OworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgord2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF9k
b21haW4gKFdlYktpdFJlc291cmNlRXJyb3IqIGVycm9yKTsKKworV0VCS0lUX0FQSSBnaW50Cit3
ZWJraXRfcmVzb3VyY2VfZXJyb3JfZ2V0X2NvZGUgKFdlYktpdFJlc291cmNlRXJyb3IqIGVycm9y
KTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhcioKK3dlYmtpdF9yZXNvdXJjZV9lcnJvcl9nZXRf
dXJpIChXZWJLaXRSZXNvdXJjZUVycm9yKiBlcnJvcik7CisKK1dFQktJVF9BUEkgY29uc3QgZ2No
YXIqCit3ZWJraXRfcmVzb3VyY2VfZXJyb3JfZ2V0X2Rlc2NyaXB0aW9uIChXZWJLaXRSZXNvdXJj
ZUVycm9yKiBlcnJvcik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpJbmRleDogV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAJKHJldmlzaW9uIDMxNjMzKQorKysgV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViYmFja2ZvcndhcmRs
aXN0LmgiCiAjaW5jbHVkZSAid2Via2l0d2ViaGlzdG9yeWl0ZW0uaCIKKyNpbmNsdWRlICJ3ZWJr
aXRyZXNvdXJjZWVycm9yLmgiCiAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIkJhY2tGb3J3YXJkTGlzdC5oIgpAQCAtNzEsNiArNzIsNyBAQCBlbnVtIHsKICAgICBMT0FE
X0NPTU1JVFRFRCwKICAgICBMT0FEX1BST0dSRVNTX0NIQU5HRUQsCiAgICAgTE9BRF9GSU5JU0hF
RCwKKyAgICBMT0FEX0ZBSUxFRCwKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09W
RVJfTElOSywKICAgICBQT1BVTEFURV9QT1BVUCwKQEAgLTYyMSw2ICs2MjMsMjYgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl92aWV3X3JlYWxfcGFzdGVfYwogICAgIGZyYW1lLT5lZGl0b3IoKS0+
Y29tbWFuZCgiUGFzdGUiKS5leGVjdXRlKCk7CiB9CiAKK3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRf
d2ViX3ZpZXdfcmVhbF9sb2FkX2ZhaWxlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRX
ZWJGcmFtZSogZnJhbWUsIFdlYktpdFJlc291cmNlRXJyb3IqIGVycm9yKQoreworICAgIEd0a1dp
ZGdldCogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh3ZWJWaWV3
KSk7CisgICAgR3RrV2lkZ2V0KiBkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KEdUS19X
SURHRVRfVE9QTEVWRUwod2luZG93KSA/IEdUS19XSU5ET1cod2luZG93KSA6IDAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19ESUFMT0dfREVTVFJP
WV9XSVRIX1BBUkVOVCwgR1RLX01FU1NBR0VfRVJST1IsIEdUS19CVVRUT05TX09LLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgY29kZTogJWQu
XG5VUkk6ICVzLlxuXG4lcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdlYmtpdF9yZXNvdXJjZV9lcnJvcl9nZXRfY29kZShlcnJvciksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF9yZXNvdXJjZV9l
cnJvcl9nZXRfdXJpKGVycm9yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2Via2l0X3Jlc291cmNlX2Vycm9yX2dldF9kZXNjcmlwdGlvbihlcnJvcikp
OworICAgIGdjaGFyKiB0aXRsZSA9IGdfc3RyY29uY2F0KCJFcnJvciAtICIsIHdlYmtpdF9yZXNv
dXJjZV9lcnJvcl9nZXRfZG9tYWluKGVycm9yKSwgTlVMTCk7CisgICAgZ3RrX3dpbmRvd19zZXRf
dGl0bGUoR1RLX1dJTkRPVyhkaWFsb2cpLCB0aXRsZSk7CisgICAgZ19mcmVlKHRpdGxlKTsKKwor
ICAgIGd0a19kaWFsb2dfc2V0X2RlZmF1bHRfcmVzcG9uc2UoR1RLX0RJQUxPRyhkaWFsb2cpLCBH
VEtfUkVTUE9OU0VfT0spOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QoZGlhbG9nKSwg
InJlc3BvbnNlIiwgR19DQUxMQkFDSyhndGtfd2lkZ2V0X2Rlc3Ryb3kpLCBOVUxMKTsKKyAgICBn
dGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVChkaWFsb2cpKTsKKworICAgIHJldHVybiBUUlVFOwor
fQorCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZmluYWxpemUoR09iamVjdCogb2JqZWN0
KQogewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcob2JqZWN0
KTsKQEAgLTc2Myw2ICs3ODUsMjggQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNz
X2luaXQoVwogICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FKTsKIAogICAgIC8qKgor
ICAgICAqIFdlYktpdFdlYlZpZXc6OmxvYWQtZmFpbGVkOgorICAgICAqIEB3ZWJfdmlldzogdGhl
IG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCisgICAgICogQGZyYW1lOiB0aGUgcmVs
ZXZhbnQgZnJhbWUKKyAgICAgKiBAZXJyb3I6IHRoZSByZXNvdXJjZSBlcnJvcgorICAgICAqIEBy
ZXR1cm46IFRSVUUgaWYgdGhlIGVycm9yIGhhcyBiZWVuIGhhbmRsZWQgYW5kIHRvIHN0b3Agb3Ro
ZXIgaGFuZGxlcnMgZnJvbSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuIEZBTFNFIHRvIHBy
b3BhZ2F0ZSB0aGUgZXZlbnQgZnVydGhlci4KKyAgICAgKgorICAgICAqIFRoZSA6OmxvYWQtZmFp
bGVkIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW5ldmVyIGFuIGVycm9yIG9jY3VycyB3aGlsZSBsb2Fk
aW5nIGEgcmVzb3VyY2UuCisgICAgICoKKyAgICAgKiBEZWZhdWx0IGhhbmRsZXIgd2lsbCBkaXNw
bGF5IGFuIGVycm9yIG1lc3NhZ2UgZGlhbG9nLgorICAgICAqLworICAgIHdlYmtpdF93ZWJfdmll
d19zaWduYWxzW0xPQURfRkFJTEVEXSA9IGdfc2lnbmFsX25ldygibG9hZC1mYWlsZWQiLAorICAg
ICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgIChH
U2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAg
ICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIGxvYWRfZmFpbGVkKSwK
KyAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAg
ICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfT0JK
RUNULAorICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDIsCisgICAgICAgICAgICBXRUJLSVRf
VFlQRV9XRUJfRlJBTUUsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9SRVNPVVJDRV9FUlJPUik7
CisKKyAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojp0aXRsZS1jaGFuZ2VkOgogICAgICAq
IEB3ZWJfdmlldzogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKICAg
ICAgKiBAZnJhbWU6IHRoZSBtYWluIGZyYW1lCkBAIC0xMDAyLDYgKzEwNDYsNyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXCiAgICAgd2ViVmlld0NsYXNzLT5jdXRf
Y2xpcGJvYXJkID0gd2Via2l0X3dlYl92aWV3X3JlYWxfY3V0X2NsaXBib2FyZDsKICAgICB3ZWJW
aWV3Q2xhc3MtPmNvcHlfY2xpcGJvYXJkID0gd2Via2l0X3dlYl92aWV3X3JlYWxfY29weV9jbGlw
Ym9hcmQ7CiAgICAgd2ViVmlld0NsYXNzLT5wYXN0ZV9jbGlwYm9hcmQgPSB3ZWJraXRfd2ViX3Zp
ZXdfcmVhbF9wYXN0ZV9jbGlwYm9hcmQ7CisgICAgd2ViVmlld0NsYXNzLT5sb2FkX2ZhaWxlZCA9
IHdlYmtpdF93ZWJfdmlld19yZWFsX2xvYWRfZmFpbGVkOwogCiAgICAgR09iamVjdENsYXNzKiBv
YmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYlZpZXdDbGFzcyk7CiAgICAgb2JqZWN0Q2xh
c3MtPmZpbmFsaXplID0gd2Via2l0X3dlYl92aWV3X2ZpbmFsaXplOwpAQCAtMTkwNiw3ICsxOTUx
LDcgQEAgR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZQogICovCiBnYm9v
bGVhbiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RyYW5zcGFyZW50KFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZp
ZXcpLCBOVUxMKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVco
d2ViVmlldyksIEZBTFNFKTsKIAogICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2Vi
Vmlldy0+cHJpdjsKICAgICByZXR1cm4gcHJpdi0+dHJhbnNwYXJlbnQ7CkluZGV4OiBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5oCShyZXZpc2lvbiAzMTYzMykKKysrIFdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsNyBAQCBzdHJ1Y3Qg
X1dlYktpdFdlYlZpZXdDbGFzcyB7CiAgICAgdm9pZCAoKmN1dF9jbGlwYm9hcmQpIChXZWJLaXRX
ZWJWaWV3KiB3ZWJfdmlldyk7CiAgICAgdm9pZCAoKmNvcHlfY2xpcGJvYXJkKSAoV2ViS2l0V2Vi
Vmlldyogd2ViX3ZpZXcpOwogICAgIHZvaWQgKCpwYXN0ZV9jbGlwYm9hcmQpIChXZWJLaXRXZWJW
aWV3KiB3ZWJfdmlldyk7CisgICAgZ2Jvb2xlYW4gKCpsb2FkX2ZhaWxlZCkgKFdlYktpdFdlYlZp
ZXcqIHdlYl92aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJhbWUsIFdlYktpdFJlc291cmNlRXJyb3Iq
IGVycm9yKTsKIAogICAgIC8qCiAgICAgICogaW50ZXJuYWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20367</attachid>
            <date>2008-04-06 09:20:43 -0700</date>
            <delta_ts>2008-04-06 12:54:13 -0700</delta_ts>
            <desc>alternative using GError</desc>
            <filename>soup.patch</filename>
            <type>text/plain</type>
            <size>22017</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMxNjcw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOSBAQAorMjAwOC0wNC0w
NiAgTHVjYSBCcnVubyAgPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGQgd2Vi
a2l0ZXJyb3JzLmNwcCBhbmQgd2Via2l0ZXJyb3JzLmgKKwogMjAwOC0wMy0yMSAgUm9kbmV5IERh
d2VzICA8ZG9iZXlAd2F5b2Z0aGVtb25rZXkuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhv
bGdlci4KSW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFt
CShyZXZpc2lvbiAzMTYzMykKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0y
ODMsNiArMjgzLDcgQEAgd2Via2l0Z3RrX2NwcGZsYWdzICs9IFwKIHdlYmtpdGd0a19oX2FwaSAr
PSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGRlZmluZXMuaCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXJyb3JzLmggXAogCVdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmggXAogCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJmcmFtZS5oIFwKQEAgLTMwNSw2ICszMDYsNyBAQCB3ZWJraXRndGtfaGVhZGVycyArPSBc
CiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmgKIAogd2Vi
a2l0Z3RrX3NvdXJjZXMgKz0gXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVycm9ycy5jcHAg
XAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcCBcCiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAgXApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDMxNjcwKQorKysgV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAwOC0wNC0wNiAgTHVj
YSBCcnVubyAgPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODI5NworICAgICAgICBCdWcgIzE4Mjk3IC0gQWNpZDIvQWNpZDMgLXRlc3RzIGRv
bid0IGxvYWQgbG9hZCB3aXRoIHNvdXAuCisKKyAgICAgICAgRml4ZXMgaW4gdGhlIGxpYnNvdXAg
YmFja2VuZDogZGF0YSB1cmwgcGFyc2luZywgYWNpZCB0ZXN0cywgcmVkaXJlY3RzLAorICAgICAg
ICByZXNwb25zZSBoZWFkZXJzIGhhbmRsaW5nIGFuZCByZS1lbnRyYW5jeSBpc3N1ZXMgb24gam9i
IGNhbmNlbGxhdGlvbi4KKyAgICAgICAgVGhhbmtzIHRvIERhbiBXaW5zaGlwIGZvciBsaWJzb3Vw
IGhpbnRzLgorCisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdF
RAorCisgICAgICAgICogV2ViQ29yZS5wcm86IGFkZCB3ZWJraXRlcnJvcnMuaCBhbmQgd2Via2l0
ZXJyb3JzLmNwcAorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbCk6IGFkZCBtX2NhbmNlbGxlZCBhbmQgcmVtb3ZlIHVudXNlZnVsIG1f
c2Vzc2lvbgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOiBhZGRlZCB0byBy
b3V0ZSByZWRpcmVjdHMgdG8gd2Via2l0CisgICAgICAgIChXZWJDb3JlOjpkYXRhQ2FsbGJhY2sp
OiBhZGQgcmVzcG9uc2UgaGVhZGVycywgc29tZSBjaGVja3MgYW5kIGZpeCByZS1lbnRyYW5jeQor
ICAgICAgICAoV2ViQ29yZTo6cGFyc2VEYXRhVXJsKTogYmUgYW4gaWRsZSBjYWxsYmFjayBmb3Ig
dGhlIG1haW4gbG9vcAorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjYW5jZWwpOiBmaXhlZCByZS1lbnRy
YW5jeQorCiAyMDA4LTA0LTA1ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gMzE2
MzMpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQzLDYgKzEw
NDMsNyBAQCBndGstcG9ydCB7CiAgICAgICAgIC4uL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3Rl
Ym9hcmRIZWxwZXIuaCBcCiAgICAgICAgIC4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdC5oIFwK
ICAgICAgICAgLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKKyAgICAgICAg
Li4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXJyb3JzLmggXAogICAgICAgICAuLi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oIFwKICAgICAgICAgLi4vV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oIFwKICAgICAgICAgLi4vV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmggXApAQCAtMTEyMyw2ICsxMTI0LDcgQEAgZ3RrLXBv
cnQgewogICAgICAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVy
LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29k
ZXIuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVj
b2Rlci5jcHAgXAorICAgICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlcnJvcnMuY3Bw
IFwKICAgICAgICAgLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3Bw
IFwKICAgICAgICAgLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgXAogICAg
ICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwIFwK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaAkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAgICAgICAs
IG1fbXNnKDApCisgICAgICAgICAgICAsIG1fY2FuY2VsbGVkKGZhbHNlKQogI2VuZGlmCiAjaWYg
UExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCkBAIC0xNzMsOCArMTc0LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAgIFNvdXBN
ZXNzYWdlKiBtX21zZzsKLSAgICAgICAgU291cFNlc3Npb24qIHNlc3Npb247CiAgICAgICAgIFJl
c291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKKyAgICAgICAgYm9vbCBtX2NhbmNlbGxlZDsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKFFUKQogI2lmIFFUX1ZFUlNJT04gPCAweDA0MDQwMApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCShyZXZpc2lvbiAzMTYzMykKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDE1IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IDA7
CitzdGF0aWMgY29uc3QgaW50IG1heENvbm5lY3Rpb25zUGVySG9zdCA9IDU7CisKKwordHlwZWRl
ZiBlbnVtCit7CisgICAgRVJST1JfVFJBTlNQT1JULAorICAgIEVSUk9SX1VOS05PV05fUFJPVE9D
T0wKK307CisKIAogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6flJlc291cmNlSGFuZGxlSW50ZXJu
YWwoKQogewpAQCAtNTIsMzMgKzYxLDg0IEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5k
bGUoKQogewogfQogCitzdGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2FnZSog
bXNnLCBncG9pbnRlciBkYXRhKQoreworICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0
aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOworICAgIGlmICghaGFuZGxlKQorICAgICAg
ICByZXR1cm47CisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50
ZXJuYWwoKTsKKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCisgICAgICAgIHJldHVybjsKKworICAg
IGNoYXIqIHVyaSA9IHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwX21lc3NhZ2VfZ2V0X3VyaShtc2cp
LCBGQUxTRSk7CisgICAgU3RyaW5nIGxvY2F0aW9uID0gU3RyaW5nKHVyaSk7CisgICAgZ19mcmVl
KHVyaSk7CisgICAgS1VSTCBuZXdVUkwgPSBLVVJMKGhhbmRsZS0+cmVxdWVzdCgpLnVybCgpLCBs
b2NhdGlvbik7CisgICAgICAgICAgICAKKyAgICBSZXNvdXJjZVJlcXVlc3QgcmVkaXJlY3RlZFJl
cXVlc3QgPSBoYW5kbGUtPnJlcXVlc3QoKTsKKyAgICByZWRpcmVjdGVkUmVxdWVzdC5zZXRVUkwo
bmV3VVJMKTsKKyAgICBpZiAoZC0+Y2xpZW50KCkpCisgICAgICAgIGQtPmNsaWVudCgpLT53aWxs
U2VuZFJlcXVlc3QoaGFuZGxlLCByZWRpcmVjdGVkUmVxdWVzdCwgZC0+bV9yZXNwb25zZSk7Cisg
ICAgCisgICAgZC0+bV9yZXF1ZXN0LnNldFVSTChuZXdVUkwpOworfQorCiBzdGF0aWMgdm9pZCBk
YXRhQ2FsbGJhY2soU291cFNlc3Npb24gKnNlc3Npb24sIFNvdXBNZXNzYWdlKiBtc2csIGdwb2lu
dGVyIGRhdGEpCiB7CiAgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJl
c291cmNlSGFuZGxlKj4oZGF0YSk7CiAgICAgLy8gVE9ETzogbWF5YmUgd2Ugc2hvdWxkIHJ1biB0
aGlzIGNvZGUgZXZlbiBpZiB0aGVyZSdzIG5vIGNsaWVudD8KICAgICBpZiAoIWhhbmRsZSkKICAg
ICAgICAgcmV0dXJuOworCisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+
Z2V0SW50ZXJuYWwoKTsKKyAgICAvLyBUaGUgbWVzc2FnZSBoYXMgYmVlbiBoYW5kbGVkLgorICAg
IGQtPm1fbXNnID0gTlVMTDsKKwogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBo
YW5kbGUtPmNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOworICAgIGlmIChkLT5tX2NhbmNlbGxlZCkKKyAg
ICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIGNvbnRlbnRUeXBlID0gU3RyaW5nKHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldChtc2ctPnJlc3BvbnNlX2hlYWRlcnMsICJDb250ZW50LVR5cGUiKSk7
Ci0gICAgcmVzcG9uc2Uuc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShj
b250ZW50VHlwZSkpOwotICAgIHJlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENo
YXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7CisgICAgaWYgKFNPVVBfU1RBVFVTX0lT
X1RSQU5TUE9SVF9FUlJPUihtc2ctPnN0YXR1c19jb2RlKSkgeworICAgICAgICBjaGFyKiB1cmkg
PSBzb3VwX3VyaV90b19zdHJpbmcoc291cF9tZXNzYWdlX2dldF91cmkobXNnKSwgRkFMU0UpOwor
ICAgICAgICBSZXNvdXJjZUVycm9yIGVycm9yKCJ3ZWJraXQtbmV0d29yay1lcnJvciIsIEVSUk9S
X1RSQU5TUE9SVCwgdXJpLCBTdHJpbmc6OmZyb21VVEY4KG1zZy0+cmVhc29uX3BocmFzZSkpOwor
ICAgICAgICBnX2ZyZWUodXJpKTsKKyAgICAgICAgY2xpZW50LT5kaWRGYWlsKGhhbmRsZSwgZXJy
b3IpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgCisgICAgU291cE1lc3NhZ2VIZWFkZXJz
SXRlciBpdGVyOworICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBOVUxMOworICAgIGNvbnN0IGNoYXIq
IHZhbHVlID0gTlVMTDsKKyAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX2luaXQgKCZpdGVy
LCBtc2ctPnJlc3BvbnNlX2hlYWRlcnMpOworICAgIHdoaWxlIChzb3VwX21lc3NhZ2VfaGVhZGVy
c19pdGVyX25leHQoJml0ZXIsICZuYW1lLCAmdmFsdWUpKQorICAgICAgICBkLT5tX3Jlc3BvbnNl
LnNldEhUVFBIZWFkZXJGaWVsZChuYW1lLCB2YWx1ZSk7CisKKyAgICBTdHJpbmcgY29udGVudFR5
cGUgPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXQobXNnLT5yZXNwb25zZV9oZWFkZXJzLCAiQ29u
dGVudC1UeXBlIik7CisgICAgY2hhciogdXJpID0gc291cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVz
c2FnZV9nZXRfdXJpKG1zZyksIEZBTFNFKTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNldFVybChLVVJM
KHVyaSkpOworICAgIGdfZnJlZSh1cmkpOworICAgIGQtPm1fcmVzcG9uc2Uuc2V0TWltZVR5cGUo
ZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOworICAgIGQtPm1fcmVz
cG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29u
dGVudFR5cGUpKTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVudExlbmd0aCht
c2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCk7CisgICAgZC0+bV9yZXNwb25zZS5zZXRIVFRQU3Rh
dHVzQ29kZShtc2ctPnN0YXR1c19jb2RlKTsKKyAgICBkLT5tX3Jlc3BvbnNlLnNldFN1Z2dlc3Rl
ZEZpbGVuYW1lKGZpbGVuYW1lRnJvbUhUVFBDb250ZW50RGlzcG9zaXRpb24oZC0+bV9yZXNwb25z
ZS5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlzcG9zaXRpb24iKSkpOworICAgIGNsaWVudC0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7CiAKLSAgICByZXNwb25z
ZS5zZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgobXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGgpOwot
ICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKG1zZy0+c3RhdHVzX2NvZGUpOworICAgIC8v
IFdlYkNvcmUgbWlnaHQgaGF2ZSBjYW5jZWxsZWQgdGhlIGpvYiBpbiB0aGUgd2hpbGUKKyAgICBp
ZiAoZC0+bV9jYW5jZWxsZWQpCisgICAgICAgIHJldHVybjsKIAotICAgIGNsaWVudC0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2UpOwogICAgIGlmIChtc2ctPnJlc3BvbnNlX2Jv
ZHktPmRhdGEpCi0gICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBtc2ctPnJl
c3BvbnNlX2JvZHktPmRhdGEsIG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCAwKTsKKyAgICAg
ICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUsIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0
YSwgbXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGgsIDApOyAgCiAgICAgY2xpZW50LT5kaWRGaW5p
c2hMb2FkaW5nKGhhbmRsZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHBhcnNlRGF0YVVybChSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlKQorc3RhdGljIGdib29sZWFuIHBhcnNlRGF0YVVybChncG9pbnRlciBj
YWxsYmFja19kYXRhKQogeworICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2Fz
dDxSZXNvdXJjZUhhbmRsZSo+KGNhbGxiYWNrX2RhdGEpOwogICAgIFN0cmluZyBkYXRhID0gaGFu
ZGxlLT5yZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCk7CiAKICAgICBBU1NFUlQoZGF0YS5zdGFydHNX
aXRoKCJkYXRhOiIsIGZhbHNlKSk7CkBAIC0xMzMsNiArMTkzLDggQEAgc3RhdGljIHZvaWQgcGFy
c2VEYXRhVXJsKFJlc291cmNlSGFuZGxlKgogICAgIGdfZnJlZShvdXREYXRhKTsKIAogICAgIGNs
aWVudC0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQog
CiBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCkBAIC0xNDgsMTcgKzIx
MCwyMCBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgU3Ry
aW5nIHByb3RvY29sID0gdXJsLnByb3RvY29sKCk7CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UocHJvdG9jb2wsICJkYXRhIikpIHsKLSAgICAgICAgcGFyc2VEYXRhVXJsKHRoaXMpOwotICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGdfaWRsZV9hZGQocGFyc2VEYXRhVXJsLCB0aGlz
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgU3RyaW5nIHVybFN0cmluZyA9
IHVybC5zdHJpbmcoKTsKKwogICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UocHJvdG9jb2wsICJo
dHRwIikgJiYgIWVxdWFsSWdub3JpbmdDYXNlKHByb3RvY29sLCAiaHR0cHMiKSkgewotICAgICAg
ICAvLyBUT0RPOiBkaWRGYWlsKCk/CisgICAgICAgIGlmIChkLT5jbGllbnQoKSkgeworICAgICAg
ICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcigid2Via2l0LW5ldHdvcmstZXJyb3IiLCBFUlJPUl9V
TktOT1dOX1BST1RPQ09MLCB1cmxTdHJpbmcsIHByb3RvY29sKTsKKyAgICAgICAgICAgIGQtPmNs
aWVudCgpLT5kaWRGYWlsKHRoaXMsIGVycm9yKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCi0gICAgU3RyaW5nIHVybFN0cmluZyA9IHVybC5zdHJpbmcoKTsKLQog
ICAgIGlmICh1cmwuaXNMb2NhbEZpbGUoKSkgewogICAgICAgICBTdHJpbmcgcXVlcnkgPSB1cmwu
cXVlcnkoKTsKICAgICAgICAgLy8gUmVtb3ZlIGFueSBxdWVyeSBwYXJ0IHNlbnQgdG8gYSBsb2Nh
bCBmaWxlLgpAQCAtMTY5LDIzICsyMzQsMTEgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
RnJhbWUqIGZyYW1lKQogICAgIH0KIAogICAgIGlmICghc2Vzc2lvbikKLSAgICAgICAgc2Vzc2lv
biA9IHNvdXBfc2Vzc2lvbl9hc3luY19uZXcoKTsKKyAgICAgICAgc2Vzc2lvbiA9IHNvdXBfc2Vz
c2lvbl9hc3luY19uZXdfd2l0aF9vcHRpb25zKFNPVVBfU0VTU0lPTl9NQVhfQ09OTlNfUEVSX0hP
U1QsIDUsIE5VTEwpOwogCiAgICAgU291cE1lc3NhZ2UqIG1zZzsKLSAgICBjb25zdCBjaGFyKiBt
ZXRob2QgPSAwOwotCi0gICAgaWYgKHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIkdFVCIpCi0g
ICAgICAgIG1ldGhvZCA9IFNPVVBfTUVUSE9EX0dFVDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCku
aHR0cE1ldGhvZCgpID09ICJQT1NUIikKLSAgICAgICAgbWV0aG9kID0gU09VUF9NRVRIT0RfUE9T
VDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJIRUFEIikKLSAgICAg
ICAgbWV0aG9kID0gU09VUF9NRVRIT0RfSEVBRDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0
cE1ldGhvZCgpID09ICJQVVQiKQotICAgICAgICBtZXRob2QgPSBTT1VQX01FVEhPRF9QVVQ7Ci0g
ICAgZWxzZQotICAgICAgICBnX2RlYnVnICgiVW5rbm93biBtZXRob2QhIik7Ci0KLSAgICBtc2cg
PSBzb3VwX21lc3NhZ2VfbmV3KG1ldGhvZD8gbWV0aG9kIDogU09VUF9NRVRIT0RfR0VULCB1cmxT
dHJpbmcudXRmOCgpLmRhdGEoKSk7CisgICAgbXNnID0gc291cF9tZXNzYWdlX25ldyhyZXF1ZXN0
KCkuaHR0cE1ldGhvZCgpLnV0ZjgoKS5kYXRhKCksIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsK
KyAgICBnX3NpZ25hbF9jb25uZWN0KG1zZywgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFy
dGVkQ2FsbGJhY2spLCB0aGlzKTsKIAogICAgIEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9
IGQtPm1fcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCk7CiAgICAgaWYgKCFjdXN0b21IZWFkZXJz
LmlzRW1wdHkoKSkgewpAQCAtMjA5LDggKzI2Miw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVBf
TUVNT1JZX0NPUFksIGJvZHkuZGF0YSgpLCBib2R5LnNpemUoKSk7CiAgICAgfQogCi0gICAgZC0+
bV9tc2cgPSAoU291cE1lc3NhZ2UqKWdfb2JqZWN0X3JlZihtc2cpOwotICAgIGQtPnNlc3Npb24g
PSBzZXNzaW9uOworICAgIGQtPm1fbXNnID0gc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2UqPihnX29i
amVjdF9yZWYobXNnKSk7CiAgICAgc291cF9zZXNzaW9uX3F1ZXVlX21lc3NhZ2Uoc2Vzc2lvbiwg
ZC0+bV9tc2csIGRhdGFDYWxsYmFjaywgdGhpcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIx
OCwxMCArMjcwLDEyIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkK
IAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2FuY2VsKCkKIHsKLSAgICBpZiAoZC0+bV9tc2cpCi0g
ICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxfbWVzc2FnZSAoZC0+c2Vzc2lvbiwgZC0+bV9tc2cs
IFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7Ci0KLSAgICBjbGllbnQoKS0+ZGlkRmluaXNoTG9hZGlu
Zyh0aGlzKTsKKyAgICBkLT5tX2NhbmNlbGxlZCA9IHRydWU7CisgICAgaWYgKGQtPm1fbXNnKSB7
CisgICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxfbWVzc2FnZSAoc2Vzc2lvbiwgZC0+bV9tc2cs
IFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7CisgICAgICAgIC8vIEZvciByZS1lbnRyYW5jeSB0cm91
YmxlcyB3ZSBjYWxsIGRpZEZpbmlzaExvYWRpbmcgd2hlbiB0aGUgbWVzc2FnZSBoYXNuJ3QgYmVl
biBoYW5kbGVkIHlldC4KKyAgICAgICAgZC0+Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhp
cyk7CisgICAgfQogfQogCiBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gUmVzb3VyY2VIYW5kbGU6
OmJ1ZmZlcmVkRGF0YSgpCkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gMzE2NzApCisrKyBXZWJLaXQvZ3RrL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDA4LTA0LTA2ICBMdWNh
IEJydW5vICA8bGV0aGFsbWFuODhAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsb2FkLWZhaWxlZCBzaWduYWwuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKTogZW1pdCBs
b2FkLWZhaWxlZAorICAgICAgICAqIHdlYmtpdC93ZWJraXQtbWFyc2hhbC5saXN0OgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXRlcnJvcnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0ZXJyb3JzLmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDog
YWRkIGxvYWQtZmFpbGVkIHNpZ25hbCBhbmQgcmVhbF9sb2FkX2ZhaWxlZCBzaG93aW5nIGFuIGVy
cm9yIG1lc3NhZ2UKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOgorICAgICAgICAq
IHdlYmtpdC93ZWJraXQuaDoKKwogMjAwOC0wMy0zMSAgSmFzcGVyIEJyeWFudC1HcmVlbmUgIDxq
YXNwZXJAdW5peC5nZWVrLm56PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluLgpJbmRleDog
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAJKHJldmlzaW9uIDMxNjMzKQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNs
dWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJranNfYmluZGluZy5oIgogI2luY2x1
ZGUgImtqc19wcm94eS5oIgorI2luY2x1ZGUgIndlYmtpdGVycm9ycy5oIgogI2luY2x1ZGUgIndl
YmtpdHdlYnZpZXcuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgogI2luY2x1ZGUgIndl
YmtpdHByaXZhdGUuaCIKQEAgLTYzOCw5ICs2MzksMTQgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRGaW5pcwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKQordm9pZCBGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciZlcnJvcikKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3
RnJvbUZyYW1lKG1fZnJhbWUpOworICAgIEdFcnJvciogZ0Vycm9yID0gZ19lcnJvcl9uZXcoZ19x
dWFya19mcm9tX3N0cmluZyhlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLmVycm9yQ29kZSgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1l
KHdlYlZpZXcsICJsb2FkLWZhaWxlZCIsIG1fZnJhbWUsIGVycm9yLmZhaWxpbmdVUkwoKS51dGY4
KCkuZGF0YSgpLCBnRXJyb3IsICZyZXR2YWwpOwogfQogCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlcios
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBpbnQgbGVu
Z3RoKQpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LW1hcnNoYWwubGlzdAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQtbWFyc2hhbC5saXN0CShyZXZpc2lvbiAz
MTYzMykKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdC1tYXJzaGFsLmxpc3QJKHdvcmtpbmcg
Y29weSkKQEAgLTcsNiArNyw3IEBAIFZPSUQ6T0JKRUNULE9CSkVDVAogVk9JRDpPQkpFQ1QsUE9J
TlRFUixQT0lOVEVSCiBCT09MRUFOOlNUUklORyxJTlQsU1RSSU5HCiBCT09MRUFOOk9CSkVDVCxT
VFJJTkcKK0JPT0xFQU46T0JKRUNULFNUUklORyxQT0lOVEVSCiBCT09MRUFOOk9CSkVDVCxTVFJJ
TkcsQk9PTEVBTgogQk9PTEVBTjpPQkpFQ1QsU1RSSU5HLFNUUklORyxTVFJJTkcKIElOVDpPQkpF
Q1QsT0JKRUNUCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaAkocmV2aXNpb24gMzE2MzMpCisrKyBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXQuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2Rl
ZmluZSBfX1dFQktJVF9IX18KIAogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+Cisj
aW5jbHVkZSA8d2Via2l0L3dlYmtpdGVycm9ycy5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRu
ZXR3b3JrcmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oPgogI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5oPgpJbmRleDogV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZXJyb3JzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRlcnJvcnMuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXJy
b3JzLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBMdWNhIEJydW5vIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2luY2x1ZGUgIndlYmtpdGVycm9ycy5oIgorCitleHRlcm4gIkMiIHsKKworR1F1
YXJrIHdlYmtpdF9uZXR3b3JrX2Vycm9yX3F1YXJrICh2b2lkKQoreworICAgIHJldHVybiBnX3F1
YXJrX2Zyb21fc3RhdGljX3N0cmluZygid2Via2l0LW5ldHdvcmstZXJyb3ItcXVhcmsiKTsKK30K
KworfQpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXJyb3JzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXJyb3JzLmgJKHJldmlzaW9uIDApCisrKyBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRlcnJvcnMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWNhIEJydW5vIDxsZXRoYWxtYW44OEBnbWFp
bC5jb20+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpZm5kZWYgV0VCS0lUX0VSUk9SU19ICisjZGVmaW5lIFdFQktJVF9FUlJPUlNfSAor
CisjaW5jbHVkZSA8Z2xpYi5oPgorCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4K
KworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9ORVRXT1JLX0VSUk9SIHdlYmtpdF9u
ZXR3b3JrX2Vycm9yX3F1YXJrICgpCisKK3R5cGVkZWYgZW51bQoreworICAgIFdFQktJVF9ORVRX
T1JLX0VSUk9SX1RSQU5TUE9SVCwKKyAgICBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BS
T1RPQ09MCit9OworCitXRUJLSVRfQVBJIEdRdWFyaword2Via2l0X25ldHdvcmtfZXJyb3JfcXVh
cmsgKHZvaWQpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogV0VCS0lUX0VSUk9SU19IICov
CkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAkocmV2aXNpb24gMzE2MzMpCisr
KyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1ZGUgIndl
YmtpdC1tYXJzaGFsLmgiCisjaW5jbHVkZSAid2Via2l0ZXJyb3JzLmgiCiAjaW5jbHVkZSAid2Vi
a2l0cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oIgogI2lu
Y2x1ZGUgIndlYmtpdHdlYmhpc3RvcnlpdGVtLmgiCkBAIC03MSw2ICs3Miw3IEBAIGVudW0gewog
ICAgIExPQURfQ09NTUlUVEVELAogICAgIExPQURfUFJPR1JFU1NfQ0hBTkdFRCwKICAgICBMT0FE
X0ZJTklTSEVELAorICAgIExPQURfRkFJTEVELAogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9W
RVJJTkdfT1ZFUl9MSU5LLAogICAgIFBPUFVMQVRFX1BPUFVQLApAQCAtNjIxLDYgKzYyMywzMSBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9wYXN0ZV9jCiAgICAgZnJhbWUtPmVk
aXRvcigpLT5jb21tYW5kKCJQYXN0ZSIpLmV4ZWN1dGUoKTsKIH0KIAorc3RhdGljIGdib29sZWFu
IHdlYmtpdF93ZWJfdmlld19yZWFsX2xvYWRfZmFpbGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIHVyaSwgR0Vycm9yICplcnJvcikK
K3sKKyAgICBHdGtXaWRnZXQqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19X
SURHRVQod2ViVmlldykpOworICAgIEd0a1dpZGdldCogZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlh
bG9nX25ldyhHVEtfV0lER0VUX1RPUExFVkVMKHdpbmRvdykgPyBHVEtfV0lORE9XKHdpbmRvdykg
OiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtf
RElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsIEdUS19NRVNTQUdFX0VSUk9SLCBHVEtfQlVUVE9O
U19PSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVy
cm9yIGNvZGU6ICVkLlxuVVJJOiAlcy5cblxuJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvci0+Y29kZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvci0+bWVzc2FnZSk7CisgICAgY29uc3QgZ2NoYXIq
IGRvbWFpbjsKKyAgICBpZiAoZXJyb3ItPmRvbWFpbiA9PSBXRUJLSVRfTkVUV09SS19FUlJPUikK
KyAgICAgICAgZG9tYWluID0gIk5ldHdvcmsiOworICAgIGVsc2UKKyAgICAgICAgZG9tYWluID0g
IlVua25vd24iOworICAgIGdjaGFyKiB0aXRsZSA9IGdfc3RyY29uY2F0KCJFcnJvciAtICIsIGRv
bWFpbiwgTlVMTCk7CisgICAgZ3RrX3dpbmRvd19zZXRfdGl0bGUoR1RLX1dJTkRPVyhkaWFsb2cp
LCB0aXRsZSk7CisgICAgZ19mcmVlKHRpdGxlKTsKKworICAgIGd0a19kaWFsb2dfc2V0X2RlZmF1
bHRfcmVzcG9uc2UoR1RLX0RJQUxPRyhkaWFsb2cpLCBHVEtfUkVTUE9OU0VfT0spOworICAgIGdf
c2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QoZGlhbG9nKSwgInJlc3BvbnNlIiwgR19DQUxMQkFDSyhn
dGtfd2lkZ2V0X2Rlc3Ryb3kpLCBOVUxMKTsKKyAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdF
VChkaWFsb2cpKTsKKworICAgIHJldHVybiBUUlVFOworfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRf
d2ViX3ZpZXdfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogewogICAgIFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcob2JqZWN0KTsKQEAgLTc2Myw2ICs3OTAsMzAgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoVwogICAgICAgICAgICAgV0VC
S0lUX1RZUEVfV0VCX0ZSQU1FKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6Omxv
YWQtZmFpbGVkOgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0
aGUgc2lnbmFsCisgICAgICogQGZyYW1lOiB0aGUgcmVsZXZhbnQgZnJhbWUKKyAgICAgKiBAdXJp
OiB0aGUgcmVzb3VyY2UgVVJJCisgICAgICogQGVycm9yOiB0aGUgcmVzb3VyY2UgZXJyb3IKKyAg
ICAgKiBAcmV0dXJuOiBUUlVFIGlmIHRoZSBlcnJvciBoYXMgYmVlbiBoYW5kbGVkIGFuZCB0byBz
dG9wIG90aGVyIGhhbmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LiBGQUxT
RSB0byBwcm9wYWdhdGUgdGhlIGV2ZW50IGZ1cnRoZXIuCisgICAgICoKKyAgICAgKiBUaGUgOjps
b2FkLWZhaWxlZCBzaWduYWwgaXMgZW1pdHRlZCB3aGVuZXZlciBhbiBlcnJvciBvY2N1cnMgd2hp
bGUgbG9hZGluZyBhIHJlc291cmNlLgorICAgICAqCisgICAgICogRGVmYXVsdCBoYW5kbGVyIHdp
bGwgZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIGRpYWxvZy4KKyAgICAgKi8KKyAgICB3ZWJraXRf
d2ViX3ZpZXdfc2lnbmFsc1tMT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoImxvYWQtZmFpbGVk
IiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAg
ICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiks
CisgICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNzLCBsb2FkX2Zh
aWxlZCksCisgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisg
ICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JK
RUNUX1NUUklOR19QT0lOVEVSLAorICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDMsCisgICAg
ICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUsCisgICAgICAgICAgICBHX1RZUEVfU1RSSU5H
LAorICAgICAgICAgICAgR19UWVBFX1BPSU5URVIpOworCisgICAgLyoqCiAgICAgICogV2ViS2l0
V2ViVmlldzo6dGl0bGUtY2hhbmdlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24g
d2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCiAgICAgICogQGZyYW1lOiB0aGUgbWFpbiBmcmFt
ZQpAQCAtMTAwMiw2ICsxMDUzLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNz
X2luaXQoVwogICAgIHdlYlZpZXdDbGFzcy0+Y3V0X2NsaXBib2FyZCA9IHdlYmtpdF93ZWJfdmll
d19yZWFsX2N1dF9jbGlwYm9hcmQ7CiAgICAgd2ViVmlld0NsYXNzLT5jb3B5X2NsaXBib2FyZCA9
IHdlYmtpdF93ZWJfdmlld19yZWFsX2NvcHlfY2xpcGJvYXJkOwogICAgIHdlYlZpZXdDbGFzcy0+
cGFzdGVfY2xpcGJvYXJkID0gd2Via2l0X3dlYl92aWV3X3JlYWxfcGFzdGVfY2xpcGJvYXJkOwor
ICAgIHdlYlZpZXdDbGFzcy0+bG9hZF9mYWlsZWQgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9sb2Fk
X2ZhaWxlZDsKIAogICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFT
Uyh3ZWJWaWV3Q2xhc3MpOwogICAgIG9iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF93ZWJf
dmlld19maW5hbGl6ZTsKQEAgLTE5MDYsNyArMTk1OCw3IEBAIEd0a1RhcmdldExpc3QqIHdlYmtp
dF93ZWJfdmlld19nZXRfcGFzdGUKICAqLwogZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2dldF90
cmFuc3BhcmVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7CiAKICAgICBX
ZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7CiAgICAgcmV0dXJuIHBy
aXYtPnRyYW5zcGFyZW50OwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAkocmV2aXNp
b24gMzE2MzMpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTg0LDYgKzg0LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3Q2xhc3MgewogICAg
IHZvaWQgKCpjdXRfY2xpcGJvYXJkKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOwogICAgIHZv
aWQgKCpjb3B5X2NsaXBib2FyZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKICAgICB2b2lk
ICgqcGFzdGVfY2xpcGJvYXJkKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOworICAgIGdib29s
ZWFuICgqbG9hZF9mYWlsZWQpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0V2ViRnJh
bWUqIGZyYW1lLCBjb25zdCBnY2hhciogdXJpLCBHRXJyb3IqIGVycm9yKTsKIAogICAgIC8qCiAg
ICAgICogaW50ZXJuYWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20373</attachid>
            <date>2008-04-06 12:54:13 -0700</date>
            <delta_ts>2008-04-07 05:22:46 -0700</delta_ts>
            <desc>fill response headers on redirects</desc>
            <filename>soup.patch</filename>
            <type>text/plain</type>
            <size>22584</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMxNjcx
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOSBAQAorMjAwOC0wNC0w
NiAgTHVjYSBCcnVubyAgPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGQgd2Vi
a2l0ZXJyb3JzLmNwcCBhbmQgd2Via2l0ZXJyb3JzLmgKKwogMjAwOC0wMy0yMSAgUm9kbmV5IERh
d2VzICA8ZG9iZXlAd2F5b2Z0aGVtb25rZXkuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhv
bGdlci4KSW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFt
CShyZXZpc2lvbiAzMTY3MSkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0y
ODMsNiArMjgzLDcgQEAgd2Via2l0Z3RrX2NwcGZsYWdzICs9IFwKIHdlYmtpdGd0a19oX2FwaSAr
PSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGRlZmluZXMuaCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXJyb3JzLmggXAogCVdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmggXAogCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJmcmFtZS5oIFwKQEAgLTMwNSw2ICszMDYsNyBAQCB3ZWJraXRndGtfaGVhZGVycyArPSBc
CiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmgKIAogd2Vi
a2l0Z3RrX3NvdXJjZXMgKz0gXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVycm9ycy5jcHAg
XAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcCBcCiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAgXApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDMxNjcxKQorKysgV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAwOC0wNC0wNiAgTHVj
YSBCcnVubyAgPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODI5NworICAgICAgICBCdWcgIzE4Mjk3IC0gQWNpZDIvQWNpZDMgLXRlc3RzIGRv
bid0IGxvYWQgbG9hZCB3aXRoIHNvdXAuCisKKyAgICAgICAgRml4ZXMgaW4gdGhlIGxpYnNvdXAg
YmFja2VuZDogZGF0YSB1cmwgcGFyc2luZywgYWNpZCB0ZXN0cywgcmVkaXJlY3RzLAorICAgICAg
ICByZXNwb25zZSBoZWFkZXJzIGhhbmRsaW5nIGFuZCByZS1lbnRyYW5jeSBpc3N1ZXMgb24gam9i
IGNhbmNlbGxhdGlvbi4KKyAgICAgICAgVGhhbmtzIHRvIERhbiBXaW5zaGlwIGZvciBsaWJzb3Vw
IGhpbnRzLgorCisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdF
RAorCisgICAgICAgICogV2ViQ29yZS5wcm86IGFkZCB3ZWJraXRlcnJvcnMuaCBhbmQgd2Via2l0
ZXJyb3JzLmNwcAorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbCk6IGFkZCBtX2NhbmNlbGxlZCBhbmQgcmVtb3ZlIHVudXNlZnVsIG1f
c2Vzc2lvbgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOiBhZGRlZCB0byBy
b3V0ZSByZWRpcmVjdHMgdG8gd2Via2l0CisgICAgICAgIChXZWJDb3JlOjpkYXRhQ2FsbGJhY2sp
OiBhZGQgcmVzcG9uc2UgaGVhZGVycywgc29tZSBjaGVja3MgYW5kIGZpeCByZS1lbnRyYW5jeQor
ICAgICAgICAoV2ViQ29yZTo6cGFyc2VEYXRhVXJsKTogYmUgYW4gaWRsZSBjYWxsYmFjayBmb3Ig
dGhlIG1haW4gbG9vcAorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjYW5jZWwpOiBmaXhlZCByZS1lbnRy
YW5jeQorCiAyMDA4LTA0LTA1ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gMzE2
NzEpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQ0LDYgKzEw
NDQsNyBAQCBndGstcG9ydCB7CiAgICAgICAgIC4uL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3Rl
Ym9hcmRIZWxwZXIuaCBcCiAgICAgICAgIC4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdC5oIFwK
ICAgICAgICAgLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKKyAgICAgICAg
Li4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXJyb3JzLmggXAogICAgICAgICAuLi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oIFwKICAgICAgICAgLi4vV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oIFwKICAgICAgICAgLi4vV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmggXApAQCAtMTEyNCw2ICsxMTI1LDcgQEAgZ3RrLXBv
cnQgewogICAgICAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVy
LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29k
ZXIuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMveGJtL1hCTUltYWdlRGVj
b2Rlci5jcHAgXAorICAgICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlcnJvcnMuY3Bw
IFwKICAgICAgICAgLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3Bw
IFwKICAgICAgICAgLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgXAogICAg
ICAgICAuLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwIFwK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaAkocmV2aXNpb24gMzE2NzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAgICAgICAs
IG1fbXNnKDApCisgICAgICAgICAgICAsIG1fY2FuY2VsbGVkKGZhbHNlKQogI2VuZGlmCiAjaWYg
UExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCkBAIC0xNzMsOCArMTc0LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAgIFNvdXBN
ZXNzYWdlKiBtX21zZzsKLSAgICAgICAgU291cFNlc3Npb24qIHNlc3Npb247CiAgICAgICAgIFJl
c291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKKyAgICAgICAgYm9vbCBtX2NhbmNlbGxlZDsKICNl
bmRpZgogI2lmIFBMQVRGT1JNKFFUKQogI2lmIFFUX1ZFUlNJT04gPCAweDA0MDQwMApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCShyZXZpc2lvbiAzMTY3MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDEyIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gMDsK
IAordHlwZWRlZiBlbnVtCit7CisgICAgRVJST1JfVFJBTlNQT1JULAorICAgIEVSUk9SX1VOS05P
V05fUFJPVE9DT0wKK307CisKIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6On5SZXNvdXJjZUhhbmRs
ZUludGVybmFsKCkKIHsKICAgICBpZiAobV9tc2cpIHsKQEAgLTUyLDMzICs1OCw5NSBAQCBSZXNv
dXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKIH0KIAorc3RhdGljIHZvaWQgZmlsbFJl
c3BvbnNlRnJvbU1lc3NhZ2UoU291cE1lc3NhZ2UqIG1zZywgUmVzb3VyY2VSZXNwb25zZSogcmVz
cG9uc2UpCit7CisgICAgU291cE1lc3NhZ2VIZWFkZXJzSXRlciBpdGVyOworICAgIGNvbnN0IGNo
YXIqIG5hbWUgPSBOVUxMOworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gTlVMTDsKKyAgICBzb3Vw
X21lc3NhZ2VfaGVhZGVyc19pdGVyX2luaXQoJml0ZXIsIG1zZy0+cmVzcG9uc2VfaGVhZGVycyk7
CisgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaXRlciwgJm5hbWUs
ICZ2YWx1ZSkpCisgICAgICAgIHJlc3BvbnNlLT5zZXRIVFRQSGVhZGVyRmllbGQobmFtZSwgdmFs
dWUpOworCisgICAgU3RyaW5nIGNvbnRlbnRUeXBlID0gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0
KG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOworICAgIGNoYXIqIHVyaSA9
IHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwX21lc3NhZ2VfZ2V0X3VyaShtc2cpLCBGQUxTRSk7Cisg
ICAgcmVzcG9uc2UtPnNldFVybChLVVJMKHVyaSkpOworICAgIGdfZnJlZSh1cmkpOworICAgIHJl
c3BvbnNlLT5zZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRU
eXBlKSk7CisgICAgcmVzcG9uc2UtPnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRG
cm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7CisgICAgcmVzcG9uc2UtPnNldEV4cGVjdGVkQ29u
dGVudExlbmd0aChtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCk7CisgICAgcmVzcG9uc2UtPnNl
dEhUVFBTdGF0dXNDb2RlKG1zZy0+c3RhdHVzX2NvZGUpOworICAgIHJlc3BvbnNlLT5zZXRTdWdn
ZXN0ZWRGaWxlbmFtZShmaWxlbmFtZUZyb21IVFRQQ29udGVudERpc3Bvc2l0aW9uKHJlc3BvbnNl
LT5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlzcG9zaXRpb24iKSkpOworfQorCisvLyBDYWxs
ZWQgZWFjaCB0aW1lIHRoZSBtZXNzYWdlIGlzIGdvaW5nIHRvIGJlIHNlbnQgYWdhaW4gZXhjZXB0
IHRoZSBmaXJzdCB0aW1lLgorLy8gSXQncyB1c2VkIG1vc3RseSB0byBsZXQgd2Via2l0IGtub3cg
YWJvdXQgcmVkaXJlY3RzLgorc3RhdGljIHZvaWQgcmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3Nh
Z2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0g
c3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAg
ICAgICAgcmV0dXJuOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdl
dEludGVybmFsKCk7CisgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQorICAgICAgICByZXR1cm47CisK
KyAgICBjaGFyKiB1cmkgPSBzb3VwX3VyaV90b19zdHJpbmcoc291cF9tZXNzYWdlX2dldF91cmko
bXNnKSwgRkFMU0UpOworICAgIFN0cmluZyBsb2NhdGlvbiA9IFN0cmluZyh1cmkpOworICAgIGdf
ZnJlZSh1cmkpOworICAgIEtVUkwgbmV3VVJMID0gS1VSTChoYW5kbGUtPnJlcXVlc3QoKS51cmwo
KSwgbG9jYXRpb24pOworICAgICAgICAgICAgCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qg
PSBoYW5kbGUtPnJlcXVlc3QoKTsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOworICAg
IHJlcXVlc3Quc2V0VVJMKG5ld1VSTCk7CisgICAgZmlsbFJlc3BvbnNlRnJvbU1lc3NhZ2UobXNn
LCAmcmVzcG9uc2UpOworICAgIGlmIChkLT5jbGllbnQoKSkKKyAgICAgICAgZC0+Y2xpZW50KCkt
PndpbGxTZW5kUmVxdWVzdChoYW5kbGUsIHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICAKKyAgICBk
LT5tX3JlcXVlc3Quc2V0VVJMKG5ld1VSTCk7Cit9CisKKy8vIENhbGxlZCBhdCB0aGUgZW5kIG9m
IHRoZSBtZXNzYWdlLCB3aXRoIGFsbCB0aGUgbmVjZXNzYXJ5IGFib3V0IHRoZSBsYXN0IGluZm9y
bWF0aW9ucy4KKy8vIERvZXNuJ3QgZ2V0IGNhbGxlZCBmb3IgcmVkaXJlY3RzLgogc3RhdGljIHZv
aWQgZGF0YUNhbGxiYWNrKFNvdXBTZXNzaW9uICpzZXNzaW9uLCBTb3VwTWVzc2FnZSogbXNnLCBn
cG9pbnRlciBkYXRhKQogewogICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2Fz
dDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwogICAgIC8vIFRPRE86IG1heWJlIHdlIHNob3VsZCBy
dW4gdGhpcyBjb2RlIGV2ZW4gaWYgdGhlcmUncyBubyBjbGllbnQ/CiAgICAgaWYgKCFoYW5kbGUp
CiAgICAgICAgIHJldHVybjsKKworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5k
bGUtPmdldEludGVybmFsKCk7CisgICAgLy8gVGhlIG1lc3NhZ2UgaGFzIGJlZW4gaGFuZGxlZC4K
KyAgICBkLT5tX21zZyA9IE5VTEw7CisKICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
ID0gaGFuZGxlLT5jbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKKyAgICBpZiAoZC0+bV9jYW5jZWxsZWQp
CisgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBjb250ZW50VHlwZSA9IFN0cmluZyhzb3Vw
X21lc3NhZ2VfaGVhZGVyc19nZXQobXNnLT5yZXNwb25zZV9oZWFkZXJzLCAiQ29udGVudC1UeXBl
IikpOwotICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5
cGUoY29udGVudFR5cGUpKTsKLSAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJh
Y3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOworICAgIGlmIChTT1VQX1NUQVRV
U19JU19UUkFOU1BPUlRfRVJST1IobXNnLT5zdGF0dXNfY29kZSkpIHsKKyAgICAgICAgY2hhciog
dXJpID0gc291cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyksIEZBTFNF
KTsKKyAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcigid2Via2l0LW5ldHdvcmstZXJyb3IiLCBF
UlJPUl9UUkFOU1BPUlQsIHVyaSwgU3RyaW5nOjpmcm9tVVRGOChtc2ctPnJlYXNvbl9waHJhc2Up
KTsKKyAgICAgICAgZ19mcmVlKHVyaSk7CisgICAgICAgIGNsaWVudC0+ZGlkRmFpbChoYW5kbGUs
IGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgIAorICAgIGZpbGxSZXNwb25zZUZy
b21NZXNzYWdlKG1zZywgJmQtPm1fcmVzcG9uc2UpOworICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7CiAKLSAgICByZXNwb25zZS5zZXRFeHBlY3Rl
ZENvbnRlbnRMZW5ndGgobXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGgpOwotICAgIHJlc3BvbnNl
LnNldEhUVFBTdGF0dXNDb2RlKG1zZy0+c3RhdHVzX2NvZGUpOworICAgIC8vIFdlYkNvcmUgbWln
aHQgaGF2ZSBjYW5jZWxsZWQgdGhlIGpvYiBpbiB0aGUgd2hpbGUKKyAgICBpZiAoZC0+bV9jYW5j
ZWxsZWQpCisgICAgICAgIHJldHVybjsKIAotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNl
KGhhbmRsZSwgcmVzcG9uc2UpOwogICAgIGlmIChtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEpCi0g
ICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBtc2ctPnJlc3BvbnNlX2JvZHkt
PmRhdGEsIG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCAwKTsKKyAgICAgICAgY2xpZW50LT5k
aWRSZWNlaXZlRGF0YShoYW5kbGUsIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSwgbXNnLT5yZXNw
b25zZV9ib2R5LT5sZW5ndGgsIDApOyAgCiAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhh
bmRsZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHBhcnNlRGF0YVVybChSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlKQorc3RhdGljIGdib29sZWFuIHBhcnNlRGF0YVVybChncG9pbnRlciBjYWxsYmFja19kYXRh
KQogeworICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNvdXJjZUhh
bmRsZSo+KGNhbGxiYWNrX2RhdGEpOwogICAgIFN0cmluZyBkYXRhID0gaGFuZGxlLT5yZXF1ZXN0
KCkudXJsKCkuc3RyaW5nKCk7CiAKICAgICBBU1NFUlQoZGF0YS5zdGFydHNXaXRoKCJkYXRhOiIs
IGZhbHNlKSk7CkBAIC0xMzMsNiArMjAxLDggQEAgc3RhdGljIHZvaWQgcGFyc2VEYXRhVXJsKFJl
c291cmNlSGFuZGxlKgogICAgIGdfZnJlZShvdXREYXRhKTsKIAogICAgIGNsaWVudC0+ZGlkRmlu
aXNoTG9hZGluZyhoYW5kbGUpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQogCiBib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCkBAIC0xNDgsMTcgKzIxOCwyMyBAQCBib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgU3RyaW5nIHByb3RvY29s
ID0gdXJsLnByb3RvY29sKCk7CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocHJvdG9jb2ws
ICJkYXRhIikpIHsKLSAgICAgICAgcGFyc2VEYXRhVXJsKHRoaXMpOwotICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIC8vIElmIHBhcnNlRGF0YVVybCBpcyBjYWxsZWQgc3luY3Jvbm91c2x5
IHRoZSBqb2IgaXMgbm90IHlldCBlZmZlY3RpdmVseSBzdGFydGVkCisgICAgICAgIC8vIGFuZCB3
ZWJraXQgd29uJ3QgbmV2ZXIga25vdyB0aGF0IHRoZSBkYXRhIGhhcyBiZWVuIHBhcnNlZCBldmVu
IGRpZEZpbmlzaExvYWRpbmcgaXMgY2FsbGVkLgorICAgICAgICBnX2lkbGVfYWRkKHBhcnNlRGF0
YVVybCwgdGhpcyk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIFN0cmluZyB1
cmxTdHJpbmcgPSB1cmwuc3RyaW5nKCk7CisKICAgICBpZiAoIWVxdWFsSWdub3JpbmdDYXNlKHBy
b3RvY29sLCAiaHR0cCIpICYmICFlcXVhbElnbm9yaW5nQ2FzZShwcm90b2NvbCwgImh0dHBzIikp
IHsKLSAgICAgICAgLy8gVE9ETzogZGlkRmFpbCgpPworICAgICAgICAvLyBJZiB3ZSBkb24ndCBj
YWxsIGRpZEZhaWwgdGhlIGpvYiBpcyBub3QgY29tcGxldGUgZm9yIHdlYmtpdCBldmVuIGZhbHNl
IGlzIHJldHVybmVkLgorICAgICAgICBpZiAoZC0+Y2xpZW50KCkpIHsKKyAgICAgICAgICAgIFJl
c291cmNlRXJyb3IgZXJyb3IoIndlYmtpdC1uZXR3b3JrLWVycm9yIiwgRVJST1JfVU5LTk9XTl9Q
Uk9UT0NPTCwgdXJsU3RyaW5nLCBwcm90b2NvbCk7CisgICAgICAgICAgICBkLT5jbGllbnQoKS0+
ZGlkRmFpbCh0aGlzLCBlcnJvcik7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIFN0cmluZyB1cmxTdHJpbmcgPSB1cmwuc3RyaW5nKCk7Ci0KICAgICBpZiAo
dXJsLmlzTG9jYWxGaWxlKCkpIHsKICAgICAgICAgU3RyaW5nIHF1ZXJ5ID0gdXJsLnF1ZXJ5KCk7
CiAgICAgICAgIC8vIFJlbW92ZSBhbnkgcXVlcnkgcGFydCBzZW50IHRvIGEgbG9jYWwgZmlsZS4K
QEAgLTE3MiwyMCArMjQ4LDggQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJhbWUqIGZy
YW1lKQogICAgICAgICBzZXNzaW9uID0gc291cF9zZXNzaW9uX2FzeW5jX25ldygpOwogCiAgICAg
U291cE1lc3NhZ2UqIG1zZzsKLSAgICBjb25zdCBjaGFyKiBtZXRob2QgPSAwOwotCi0gICAgaWYg
KHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIkdFVCIpCi0gICAgICAgIG1ldGhvZCA9IFNPVVBf
TUVUSE9EX0dFVDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQT1NU
IikKLSAgICAgICAgbWV0aG9kID0gU09VUF9NRVRIT0RfUE9TVDsKLSAgICBlbHNlIGlmIChyZXF1
ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJIRUFEIikKLSAgICAgICAgbWV0aG9kID0gU09VUF9NRVRI
T0RfSEVBRDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQVVQiKQot
ICAgICAgICBtZXRob2QgPSBTT1VQX01FVEhPRF9QVVQ7Ci0gICAgZWxzZQotICAgICAgICBnX2Rl
YnVnICgiVW5rbm93biBtZXRob2QhIik7Ci0KLSAgICBtc2cgPSBzb3VwX21lc3NhZ2VfbmV3KG1l
dGhvZD8gbWV0aG9kIDogU09VUF9NRVRIT0RfR0VULCB1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7
CisgICAgbXNnID0gc291cF9tZXNzYWdlX25ldyhyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpLnV0Zjgo
KS5kYXRhKCksIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0
KG1zZywgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCB0aGlzKTsK
IAogICAgIEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9IGQtPm1fcmVxdWVzdC5odHRwSGVh
ZGVyRmllbGRzKCk7CiAgICAgaWYgKCFjdXN0b21IZWFkZXJzLmlzRW1wdHkoKSkgewpAQCAtMjA5
LDggKzI3Myw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVBfTUVNT1JZX0NPUFksIGJvZHkuZGF0
YSgpLCBib2R5LnNpemUoKSk7CiAgICAgfQogCi0gICAgZC0+bV9tc2cgPSAoU291cE1lc3NhZ2Uq
KWdfb2JqZWN0X3JlZihtc2cpOwotICAgIGQtPnNlc3Npb24gPSBzZXNzaW9uOworICAgIGQtPm1f
bXNnID0gc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2UqPihnX29iamVjdF9yZWYobXNnKSk7CiAgICAg
c291cF9zZXNzaW9uX3F1ZXVlX21lc3NhZ2Uoc2Vzc2lvbiwgZC0+bV9tc2csIGRhdGFDYWxsYmFj
aywgdGhpcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIxOCwxMCArMjgxLDEyIEBAIGJvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKIAogdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6Y2FuY2VsKCkKIHsKLSAgICBpZiAoZC0+bV9tc2cpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9j
YW5jZWxfbWVzc2FnZSAoZC0+c2Vzc2lvbiwgZC0+bV9tc2csIFNPVVBfU1RBVFVTX0NBTkNFTExF
RCk7Ci0KLSAgICBjbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICBkLT5tX2Nh
bmNlbGxlZCA9IHRydWU7CisgICAgaWYgKGQtPm1fbXNnKSB7CisgICAgICAgIHNvdXBfc2Vzc2lv
bl9jYW5jZWxfbWVzc2FnZShzZXNzaW9uLCBkLT5tX21zZywgU09VUF9TVEFUVVNfQ0FOQ0VMTEVE
KTsKKyAgICAgICAgLy8gRm9yIHJlLWVudHJhbmN5IHRyb3VibGVzIHdlIGNhbGwgZGlkRmluaXNo
TG9hZGluZyB3aGVuIHRoZSBtZXNzYWdlIGhhc24ndCBiZWVuIGhhbmRsZWQgeWV0LgorICAgICAg
ICBkLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICB9CiB9CiAKIFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRsZTo6YnVmZmVyZWREYXRhKCkKSW5kZXg6
IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTY3MSkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTggQEAKKzIwMDgtMDQtMDYgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBn
bWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGxvYWQtZmFpbGVkIHNpZ25hbC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcpOiBlbWl0IGxvYWQtZmFpbGVkCisgICAgICAgICog
d2Via2l0L3dlYmtpdC1tYXJzaGFsLmxpc3Q6CisgICAgICAgICogd2Via2l0L3dlYmtpdGVycm9y
cy5jcHA6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXRlcnJvcnMuaDogQWRkZWQuCisg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOiBhZGQgbG9hZC1mYWlsZWQgc2lnbmFs
IGFuZCByZWFsX2xvYWRfZmFpbGVkIHNob3dpbmcgYW4gZXJyb3IgbWVzc2FnZQorICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdC5oOgorCiAy
MDA4LTAzLTMxICBKYXNwZXIgQnJ5YW50LUdyZWVuZSAgPGphc3BlckB1bml4LmdlZWsubno+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gMzE2NzEpCisr
KyBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5o
IgogI2luY2x1ZGUgImtqc19iaW5kaW5nLmgiCiAjaW5jbHVkZSAia2pzX3Byb3h5LmgiCisjaW5j
bHVkZSAid2Via2l0ZXJyb3JzLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1
ZGUgIndlYmtpdHdlYmZyYW1lLmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgpAQCAtNjM4
LDkgKzYzOSwxNCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VFcnJvciYpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZUVycm9yJmVycm9yKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7Cisg
ICAgR0Vycm9yKiBnRXJyb3IgPSBnX2Vycm9yX25ldyhnX3F1YXJrX2Zyb21fc3RyaW5nKGVycm9y
LmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXJyb3IuZXJyb3JDb2RlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
cnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOworICAgIGdib29sZWFu
IHJldHZhbDsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgImxvYWQtZmFpbGVk
IiwgbV9mcmFtZSwgZXJyb3IuZmFpbGluZ1VSTCgpLnV0ZjgoKS5kYXRhKCksIGdFcnJvciwgJnJl
dHZhbCk7CiB9CiAKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291
cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpCkluZGV4OiBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXQtbWFyc2hhbC5saXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdC1tYXJzaGFsLmxpc3QJKHJldmlzaW9uIDMxNjcxKQorKysgV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0LW1hcnNoYWwubGlzdAkod29ya2luZyBjb3B5KQpAQCAtNyw2ICs3LDcgQEAg
Vk9JRDpPQkpFQ1QsT0JKRUNUCiBWT0lEOk9CSkVDVCxQT0lOVEVSLFBPSU5URVIKIEJPT0xFQU46
U1RSSU5HLElOVCxTVFJJTkcKIEJPT0xFQU46T0JKRUNULFNUUklORworQk9PTEVBTjpPQkpFQ1Qs
U1RSSU5HLFBPSU5URVIKIEJPT0xFQU46T0JKRUNULFNUUklORyxCT09MRUFOCiBCT09MRUFOOk9C
SkVDVCxTVFJJTkcsU1RSSU5HLFNUUklORwogSU5UOk9CSkVDVCxPQkpFQ1QKSW5kZXg6IFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdC5oCShyZXZpc2lvbiAzMTY3MSkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5lIF9fV0VCS0lUX0hfXwogCiAj
aW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0
ZXJyb3JzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0Lmg+CiAjaW5j
bHVkZSA8d2Via2l0L3dlYmtpdHdlYmZyYW1lLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzLmg+CkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlcnJvcnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVycm9ycy5jcHAJKHJldmlzaW9u
IDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlcnJvcnMuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1Y2EgQnJ1bm8gPGxl
dGhhbG1hbjg4QGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAid2Vi
a2l0ZXJyb3JzLmgiCisKK2V4dGVybiAiQyIgeworCitHUXVhcmsgd2Via2l0X25ldHdvcmtfZXJy
b3JfcXVhcmsgKHZvaWQpCit7CisgICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5n
KCJ3ZWJraXQtbmV0d29yay1lcnJvci1xdWFyayIpOworfQorCit9CkluZGV4OiBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRlcnJvcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRlcnJvcnMuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVy
cm9ycy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1Y2EgQnJ1bm8gPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXRUJLSVRf
RVJST1JTX0gKKyNkZWZpbmUgV0VCS0lUX0VSUk9SU19ICisKKyNpbmNsdWRlIDxnbGliLmg+CisK
KyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNk
ZWZpbmUgV0VCS0lUX05FVFdPUktfRVJST1Igd2Via2l0X25ldHdvcmtfZXJyb3JfcXVhcmsgKCkK
KwordHlwZWRlZiBlbnVtCit7CisgICAgV0VCS0lUX05FVFdPUktfRVJST1JfVFJBTlNQT1JULAor
ICAgIFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05PV05fUFJPVE9DT0wKK30gV2ViS2l0TmV0d29y
a0Vycm9yOworCitXRUJLSVRfQVBJIEdRdWFyaword2Via2l0X25ldHdvcmtfZXJyb3JfcXVhcmsg
KHZvaWQpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogV0VCS0lUX0VSUk9SU19IICovCklu
ZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAkocmV2aXNpb24gMzE2NzEpCisrKyBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQs
NiArMjQsNyBAQAogCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1ZGUgIndlYmtp
dC1tYXJzaGFsLmgiCisjaW5jbHVkZSAid2Via2l0ZXJyb3JzLmgiCiAjaW5jbHVkZSAid2Via2l0
cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oIgogI2luY2x1
ZGUgIndlYmtpdHdlYmhpc3RvcnlpdGVtLmgiCkBAIC03MSw2ICs3Miw3IEBAIGVudW0gewogICAg
IExPQURfQ09NTUlUVEVELAogICAgIExPQURfUFJPR1JFU1NfQ0hBTkdFRCwKICAgICBMT0FEX0ZJ
TklTSEVELAorICAgIExPQURfRkFJTEVELAogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJ
TkdfT1ZFUl9MSU5LLAogICAgIFBPUFVMQVRFX1BPUFVQLApAQCAtNjIxLDYgKzYyMywzMSBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9wYXN0ZV9jCiAgICAgZnJhbWUtPmVkaXRv
cigpLT5jb21tYW5kKCJQYXN0ZSIpLmV4ZWN1dGUoKTsKIH0KIAorc3RhdGljIGdib29sZWFuIHdl
YmtpdF93ZWJfdmlld19yZWFsX2xvYWRfZmFpbGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdl
YktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIHVyaSwgR0Vycm9yICplcnJvcikKK3sK
KyAgICBHdGtXaWRnZXQqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURH
RVQod2ViVmlldykpOworICAgIEd0a1dpZGdldCogZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9n
X25ldyhHVEtfV0lER0VUX1RPUExFVkVMKHdpbmRvdykgPyBHVEtfV0lORE9XKHdpbmRvdykgOiAw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfRElB
TE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsIEdUS19NRVNTQUdFX0VSUk9SLCBHVEtfQlVUVE9OU19P
SywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVycm9y
IGNvZGU6ICVkLlxuVVJJOiAlcy5cblxuJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlcnJvci0+Y29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdXJpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlcnJvci0+bWVzc2FnZSk7CisgICAgY29uc3QgZ2NoYXIqIGRv
bWFpbjsKKyAgICBpZiAoZXJyb3ItPmRvbWFpbiA9PSBXRUJLSVRfTkVUV09SS19FUlJPUikKKyAg
ICAgICAgZG9tYWluID0gIk5ldHdvcmsiOworICAgIGVsc2UKKyAgICAgICAgZG9tYWluID0gIlVu
a25vd24iOworICAgIGdjaGFyKiB0aXRsZSA9IGdfc3RyY29uY2F0KCJFcnJvciAtICIsIGRvbWFp
biwgTlVMTCk7CisgICAgZ3RrX3dpbmRvd19zZXRfdGl0bGUoR1RLX1dJTkRPVyhkaWFsb2cpLCB0
aXRsZSk7CisgICAgZ19mcmVlKHRpdGxlKTsKKworICAgIGd0a19kaWFsb2dfc2V0X2RlZmF1bHRf
cmVzcG9uc2UoR1RLX0RJQUxPRyhkaWFsb2cpLCBHVEtfUkVTUE9OU0VfT0spOworICAgIGdfc2ln
bmFsX2Nvbm5lY3QoR19PQkpFQ1QoZGlhbG9nKSwgInJlc3BvbnNlIiwgR19DQUxMQkFDSyhndGtf
d2lkZ2V0X2Rlc3Ryb3kpLCBOVUxMKTsKKyAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVChk
aWFsb2cpKTsKKworICAgIHJldHVybiBUUlVFOworfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogewogICAgIFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcob2JqZWN0KTsKQEAgLTc2Myw2ICs3OTAsMzAgQEAgc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoVwogICAgICAgICAgICAgV0VCS0lU
X1RZUEVfV0VCX0ZSQU1FKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6OmxvYWQt
ZmFpbGVkOgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUg
c2lnbmFsCisgICAgICogQGZyYW1lOiB0aGUgcmVsZXZhbnQgZnJhbWUKKyAgICAgKiBAdXJpOiB0
aGUgcmVzb3VyY2UgVVJJCisgICAgICogQGVycm9yOiB0aGUgcmVzb3VyY2UgZXJyb3IKKyAgICAg
KiBAcmV0dXJuOiBUUlVFIGlmIHRoZSBlcnJvciBoYXMgYmVlbiBoYW5kbGVkIGFuZCB0byBzdG9w
IG90aGVyIGhhbmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LiBGQUxTRSB0
byBwcm9wYWdhdGUgdGhlIGV2ZW50IGZ1cnRoZXIuCisgICAgICoKKyAgICAgKiBUaGUgOjpsb2Fk
LWZhaWxlZCBzaWduYWwgaXMgZW1pdHRlZCB3aGVuZXZlciBhbiBlcnJvciBvY2N1cnMgd2hpbGUg
bG9hZGluZyBhIHJlc291cmNlLgorICAgICAqCisgICAgICogRGVmYXVsdCBoYW5kbGVyIHdpbGwg
ZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIGRpYWxvZy4KKyAgICAgKi8KKyAgICB3ZWJraXRfd2Vi
X3ZpZXdfc2lnbmFsc1tMT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoImxvYWQtZmFpbGVkIiwK
KyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAg
ICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisg
ICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNzLCBsb2FkX2ZhaWxl
ZCksCisgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAg
ICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNU
X1NUUklOR19QT0lOVEVSLAorICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDMsCisgICAgICAg
ICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUsCisgICAgICAgICAgICBHX1RZUEVfU1RSSU5HLAor
ICAgICAgICAgICAgR19UWVBFX1BPSU5URVIpOworCisgICAgLyoqCiAgICAgICogV2ViS2l0V2Vi
Vmlldzo6dGl0bGUtY2hhbmdlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24gd2hp
Y2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCiAgICAgICogQGZyYW1lOiB0aGUgbWFpbiBmcmFtZQpA
QCAtMTAwMiw2ICsxMDUzLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2lu
aXQoVwogICAgIHdlYlZpZXdDbGFzcy0+Y3V0X2NsaXBib2FyZCA9IHdlYmtpdF93ZWJfdmlld19y
ZWFsX2N1dF9jbGlwYm9hcmQ7CiAgICAgd2ViVmlld0NsYXNzLT5jb3B5X2NsaXBib2FyZCA9IHdl
YmtpdF93ZWJfdmlld19yZWFsX2NvcHlfY2xpcGJvYXJkOwogICAgIHdlYlZpZXdDbGFzcy0+cGFz
dGVfY2xpcGJvYXJkID0gd2Via2l0X3dlYl92aWV3X3JlYWxfcGFzdGVfY2xpcGJvYXJkOworICAg
IHdlYlZpZXdDbGFzcy0+bG9hZF9mYWlsZWQgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9sb2FkX2Zh
aWxlZDsKIAogICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3
ZWJWaWV3Q2xhc3MpOwogICAgIG9iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF93ZWJfdmll
d19maW5hbGl6ZTsKQEAgLTE5MDYsNyArMTk1OCw3IEBAIEd0a1RhcmdldExpc3QqIHdlYmtpdF93
ZWJfdmlld19nZXRfcGFzdGUKICAqLwogZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2dldF90cmFu
c3BhcmVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7CiAKICAgICBXZWJL
aXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7CiAgICAgcmV0dXJuIHByaXYt
PnRyYW5zcGFyZW50OwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAkocmV2aXNpb24g
MzE2NzEpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTg0LDYgKzg0LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3Q2xhc3MgewogICAgIHZv
aWQgKCpjdXRfY2xpcGJvYXJkKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOwogICAgIHZvaWQg
KCpjb3B5X2NsaXBib2FyZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKICAgICB2b2lkICgq
cGFzdGVfY2xpcGJvYXJkKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOworICAgIGdib29sZWFu
ICgqbG9hZF9mYWlsZWQpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0V2ViRnJhbWUq
IGZyYW1lLCBjb25zdCBnY2hhciogdXJpLCBHRXJyb3IqIGVycm9yKTsKIAogICAgIC8qCiAgICAg
ICogaW50ZXJuYWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20379</attachid>
            <date>2008-04-07 05:22:46 -0700</date>
            <delta_ts>2008-04-07 06:31:50 -0700</delta_ts>
            <desc>remove errors</desc>
            <filename>soup.patch</filename>
            <type>text/plain</type>
            <size>9804</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTY3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDgtMDQtMDYgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyOTcKKyAgICAgICAgQnVn
ICMxODI5NyAtIEFjaWQyL0FjaWQzIC10ZXN0cyBkb24ndCBsb2FkIGxvYWQgd2l0aCBzb3VwLgor
CisgICAgICAgIEZpeGVzIGluIHRoZSBsaWJzb3VwIGJhY2tlbmQ6IGRhdGEgdXJsIHBhcnNpbmcs
IGFjaWQgdGVzdHMsIHJlZGlyZWN0cywKKyAgICAgICAgcmVzcG9uc2UgaGVhZGVycyBoYW5kbGlu
ZyBhbmQgcmUtZW50cmFuY3kgaXNzdWVzIG9uIGpvYiBjYW5jZWxsYXRpb24uCisgICAgICAgIFRo
YW5rcyB0byBEYW4gV2luc2hpcCBmb3IgbGlic291cCBoaW50cy4KKworICAgICAgICBXQVJOSU5H
OiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6IGFkZCBtX2NhbmNlbGxl
ZCBhbmQgcmVtb3ZlIHVudXNlZnVsIG1fc2Vzc2lvbgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFy
dGVkQ2FsbGJhY2spOiBhZGRlZCB0byByb3V0ZSByZWRpcmVjdHMgdG8gd2Via2l0CisgICAgICAg
IChXZWJDb3JlOjpkYXRhQ2FsbGJhY2spOiBhZGQgcmVzcG9uc2UgaGVhZGVycywgc29tZSBjaGVj
a3MgYW5kIGZpeCByZS1lbnRyYW5jeQorICAgICAgICAoV2ViQ29yZTo6cGFyc2VEYXRhVXJsKTog
YmUgYW4gaWRsZSBjYWxsYmFjayBmb3IgdGhlIG1haW4gbG9vcAorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpjYW5jZWwpOiBmaXhlZCByZS1lbnRyYW5jeQorCiAyMDA4LTA0LTA1ICBLZXZpbiBPbGxpdmll
ciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsg
Um93ZS4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVy
bmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaAkocmV2aXNpb24gMzE2NzEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAg
ICAgICAsIG1fbXNnKDApCisgICAgICAgICAgICAsIG1fY2FuY2VsbGVkKGZhbHNlKQogI2VuZGlm
CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgICAgICAsIG1fam9iKDApCkBAIC0xNzMsOCArMTc0
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAg
IFNvdXBNZXNzYWdlKiBtX21zZzsKLSAgICAgICAgU291cFNlc3Npb24qIHNlc3Npb247CiAgICAg
ICAgIFJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKKyAgICAgICAgYm9vbCBtX2NhbmNlbGxl
ZDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogI2lmIFFUX1ZFUlNJT04gPCAweDA0MDQwMApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCShyZXZpc2lvbiAzMTY3MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQw
LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFNvdXBTZXNzaW9uKiBzZXNzaW9u
ID0gMDsKIAordHlwZWRlZiBlbnVtCit7CisgICAgRVJST1JfVFJBTlNQT1JULAorICAgIEVSUk9S
X1VOS05PV05fUFJPVE9DT0wKK307CisKIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6On5SZXNvdXJj
ZUhhbmRsZUludGVybmFsKCkKIHsKICAgICBpZiAobV9tc2cpIHsKQEAgLTUyLDMzICs1OCw5NSBA
QCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKIHsKIH0KIAorc3RhdGljIHZvaWQg
ZmlsbFJlc3BvbnNlRnJvbU1lc3NhZ2UoU291cE1lc3NhZ2UqIG1zZywgUmVzb3VyY2VSZXNwb25z
ZSogcmVzcG9uc2UpCit7CisgICAgU291cE1lc3NhZ2VIZWFkZXJzSXRlciBpdGVyOworICAgIGNv
bnN0IGNoYXIqIG5hbWUgPSBOVUxMOworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gTlVMTDsKKyAg
ICBzb3VwX21lc3NhZ2VfaGVhZGVyc19pdGVyX2luaXQoJml0ZXIsIG1zZy0+cmVzcG9uc2VfaGVh
ZGVycyk7CisgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJfbmV4dCgmaXRlciwg
Jm5hbWUsICZ2YWx1ZSkpCisgICAgICAgIHJlc3BvbnNlLT5zZXRIVFRQSGVhZGVyRmllbGQobmFt
ZSwgdmFsdWUpOworCisgICAgU3RyaW5nIGNvbnRlbnRUeXBlID0gc291cF9tZXNzYWdlX2hlYWRl
cnNfZ2V0KG1zZy0+cmVzcG9uc2VfaGVhZGVycywgIkNvbnRlbnQtVHlwZSIpOworICAgIGNoYXIq
IHVyaSA9IHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwX21lc3NhZ2VfZ2V0X3VyaShtc2cpLCBGQUxT
RSk7CisgICAgcmVzcG9uc2UtPnNldFVybChLVVJMKHVyaSkpOworICAgIGdfZnJlZSh1cmkpOwor
ICAgIHJlc3BvbnNlLT5zZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKSk7CisgICAgcmVzcG9uc2UtPnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENo
YXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7CisgICAgcmVzcG9uc2UtPnNldEV4cGVj
dGVkQ29udGVudExlbmd0aChtc2ctPnJlc3BvbnNlX2JvZHktPmxlbmd0aCk7CisgICAgcmVzcG9u
c2UtPnNldEhUVFBTdGF0dXNDb2RlKG1zZy0+c3RhdHVzX2NvZGUpOworICAgIHJlc3BvbnNlLT5z
ZXRTdWdnZXN0ZWRGaWxlbmFtZShmaWxlbmFtZUZyb21IVFRQQ29udGVudERpc3Bvc2l0aW9uKHJl
c3BvbnNlLT5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlzcG9zaXRpb24iKSkpOworfQorCisv
LyBDYWxsZWQgZWFjaCB0aW1lIHRoZSBtZXNzYWdlIGlzIGdvaW5nIHRvIGJlIHNlbnQgYWdhaW4g
ZXhjZXB0IHRoZSBmaXJzdCB0aW1lLgorLy8gSXQncyB1c2VkIG1vc3RseSB0byBsZXQgd2Via2l0
IGtub3cgYWJvdXQgcmVkaXJlY3RzLgorc3RhdGljIHZvaWQgcmVzdGFydGVkQ2FsbGJhY2soU291
cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKKyAgICBpZiAoIWhhbmRs
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5k
bGUtPmdldEludGVybmFsKCk7CisgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQorICAgICAgICByZXR1
cm47CisKKyAgICBjaGFyKiB1cmkgPSBzb3VwX3VyaV90b19zdHJpbmcoc291cF9tZXNzYWdlX2dl
dF91cmkobXNnKSwgRkFMU0UpOworICAgIFN0cmluZyBsb2NhdGlvbiA9IFN0cmluZyh1cmkpOwor
ICAgIGdfZnJlZSh1cmkpOworICAgIEtVUkwgbmV3VVJMID0gS1VSTChoYW5kbGUtPnJlcXVlc3Qo
KS51cmwoKSwgbG9jYXRpb24pOworICAgICAgICAgICAgCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QgPSBoYW5kbGUtPnJlcXVlc3QoKTsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNl
OworICAgIHJlcXVlc3Quc2V0VVJMKG5ld1VSTCk7CisgICAgZmlsbFJlc3BvbnNlRnJvbU1lc3Nh
Z2UobXNnLCAmcmVzcG9uc2UpOworICAgIGlmIChkLT5jbGllbnQoKSkKKyAgICAgICAgZC0+Y2xp
ZW50KCktPndpbGxTZW5kUmVxdWVzdChoYW5kbGUsIHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICAK
KyAgICBkLT5tX3JlcXVlc3Quc2V0VVJMKG5ld1VSTCk7Cit9CisKKy8vIENhbGxlZCBhdCB0aGUg
ZW5kIG9mIHRoZSBtZXNzYWdlLCB3aXRoIGFsbCB0aGUgbmVjZXNzYXJ5IGFib3V0IHRoZSBsYXN0
IGluZm9ybWF0aW9ucy4KKy8vIERvZXNuJ3QgZ2V0IGNhbGxlZCBmb3IgcmVkaXJlY3RzLgogc3Rh
dGljIHZvaWQgZGF0YUNhbGxiYWNrKFNvdXBTZXNzaW9uICpzZXNzaW9uLCBTb3VwTWVzc2FnZSog
bXNnLCBncG9pbnRlciBkYXRhKQogewogICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0
aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGRhdGEpOwogICAgIC8vIFRPRE86IG1heWJlIHdlIHNo
b3VsZCBydW4gdGhpcyBjb2RlIGV2ZW4gaWYgdGhlcmUncyBubyBjbGllbnQ/CiAgICAgaWYgKCFo
YW5kbGUpCiAgICAgICAgIHJldHVybjsKKworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQg
PSBoYW5kbGUtPmdldEludGVybmFsKCk7CisgICAgLy8gVGhlIG1lc3NhZ2UgaGFzIGJlZW4gaGFu
ZGxlZC4KKyAgICBkLT5tX21zZyA9IE5VTEw7CisKICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKKyAgICBpZiAoZC0+bV9jYW5j
ZWxsZWQpCisgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBjb250ZW50VHlwZSA9IFN0cmlu
Zyhzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXQobXNnLT5yZXNwb25zZV9oZWFkZXJzLCAiQ29udGVu
dC1UeXBlIikpOwotICAgIHJlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21N
ZWRpYVR5cGUoY29udGVudFR5cGUpKTsKLSAgICByZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1l
KGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb250ZW50VHlwZSkpOworICAgIGlmIChTT1VQ
X1NUQVRVU19JU19UUkFOU1BPUlRfRVJST1IobXNnLT5zdGF0dXNfY29kZSkpIHsKKyAgICAgICAg
Y2hhciogdXJpID0gc291cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1zZyks
IEZBTFNFKTsKKyAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcigid2Via2l0LW5ldHdvcmstZXJy
b3IiLCBFUlJPUl9UUkFOU1BPUlQsIHVyaSwgU3RyaW5nOjpmcm9tVVRGOChtc2ctPnJlYXNvbl9w
aHJhc2UpKTsKKyAgICAgICAgZ19mcmVlKHVyaSk7CisgICAgICAgIGNsaWVudC0+ZGlkRmFpbCho
YW5kbGUsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgIAorICAgIGZpbGxSZXNw
b25zZUZyb21NZXNzYWdlKG1zZywgJmQtPm1fcmVzcG9uc2UpOworICAgIGNsaWVudC0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7CiAKLSAgICByZXNwb25zZS5zZXRF
eHBlY3RlZENvbnRlbnRMZW5ndGgobXNnLT5yZXNwb25zZV9ib2R5LT5sZW5ndGgpOwotICAgIHJl
c3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKG1zZy0+c3RhdHVzX2NvZGUpOworICAgIC8vIFdlYkNv
cmUgbWlnaHQgaGF2ZSBjYW5jZWxsZWQgdGhlIGpvYiBpbiB0aGUgd2hpbGUKKyAgICBpZiAoZC0+
bV9jYW5jZWxsZWQpCisgICAgICAgIHJldHVybjsKIAotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKGhhbmRsZSwgcmVzcG9uc2UpOwogICAgIGlmIChtc2ctPnJlc3BvbnNlX2JvZHktPmRh
dGEpCi0gICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBtc2ctPnJlc3BvbnNl
X2JvZHktPmRhdGEsIG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCAwKTsKKyAgICAgICAgY2xp
ZW50LT5kaWRSZWNlaXZlRGF0YShoYW5kbGUsIG1zZy0+cmVzcG9uc2VfYm9keS0+ZGF0YSwgbXNn
LT5yZXNwb25zZV9ib2R5LT5sZW5ndGgsIDApOyAgCiAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2Fk
aW5nKGhhbmRsZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHBhcnNlRGF0YVVybChSZXNvdXJjZUhhbmRs
ZSogaGFuZGxlKQorc3RhdGljIGdib29sZWFuIHBhcnNlRGF0YVVybChncG9pbnRlciBjYWxsYmFj
a19kYXRhKQogeworICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxSZXNv
dXJjZUhhbmRsZSo+KGNhbGxiYWNrX2RhdGEpOwogICAgIFN0cmluZyBkYXRhID0gaGFuZGxlLT5y
ZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCk7CiAKICAgICBBU1NFUlQoZGF0YS5zdGFydHNXaXRoKCJk
YXRhOiIsIGZhbHNlKSk7CkBAIC0xMzMsNiArMjAxLDggQEAgc3RhdGljIHZvaWQgcGFyc2VEYXRh
VXJsKFJlc291cmNlSGFuZGxlKgogICAgIGdfZnJlZShvdXREYXRhKTsKIAogICAgIGNsaWVudC0+
ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQogCiBib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCkBAIC0xNDgsMTcgKzIxOCwyMyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChGcmFtZSogZnJhbWUpCiAgICAgU3RyaW5nIHBy
b3RvY29sID0gdXJsLnByb3RvY29sKCk7CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocHJv
dG9jb2wsICJkYXRhIikpIHsKLSAgICAgICAgcGFyc2VEYXRhVXJsKHRoaXMpOwotICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIElmIHBhcnNlRGF0YVVybCBpcyBjYWxsZWQgc3luY3Jv
bm91c2x5IHRoZSBqb2IgaXMgbm90IHlldCBlZmZlY3RpdmVseSBzdGFydGVkCisgICAgICAgIC8v
IGFuZCB3ZWJraXQgd29uJ3QgbmV2ZXIga25vdyB0aGF0IHRoZSBkYXRhIGhhcyBiZWVuIHBhcnNl
ZCBldmVuIGRpZEZpbmlzaExvYWRpbmcgaXMgY2FsbGVkLgorICAgICAgICBnX2lkbGVfYWRkKHBh
cnNlRGF0YVVybCwgdGhpcyk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIFN0
cmluZyB1cmxTdHJpbmcgPSB1cmwuc3RyaW5nKCk7CisKICAgICBpZiAoIWVxdWFsSWdub3JpbmdD
YXNlKHByb3RvY29sLCAiaHR0cCIpICYmICFlcXVhbElnbm9yaW5nQ2FzZShwcm90b2NvbCwgImh0
dHBzIikpIHsKLSAgICAgICAgLy8gVE9ETzogZGlkRmFpbCgpPworICAgICAgICAvLyBJZiB3ZSBk
b24ndCBjYWxsIGRpZEZhaWwgdGhlIGpvYiBpcyBub3QgY29tcGxldGUgZm9yIHdlYmtpdCBldmVu
IGZhbHNlIGlzIHJldHVybmVkLgorICAgICAgICBpZiAoZC0+Y2xpZW50KCkpIHsKKyAgICAgICAg
ICAgIFJlc291cmNlRXJyb3IgZXJyb3IoIndlYmtpdC1uZXR3b3JrLWVycm9yIiwgRVJST1JfVU5L
Tk9XTl9QUk9UT0NPTCwgdXJsU3RyaW5nLCBwcm90b2NvbCk7CisgICAgICAgICAgICBkLT5jbGll
bnQoKS0+ZGlkRmFpbCh0aGlzLCBlcnJvcik7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIAotICAgIFN0cmluZyB1cmxTdHJpbmcgPSB1cmwuc3RyaW5nKCk7Ci0KICAg
ICBpZiAodXJsLmlzTG9jYWxGaWxlKCkpIHsKICAgICAgICAgU3RyaW5nIHF1ZXJ5ID0gdXJsLnF1
ZXJ5KCk7CiAgICAgICAgIC8vIFJlbW92ZSBhbnkgcXVlcnkgcGFydCBzZW50IHRvIGEgbG9jYWwg
ZmlsZS4KQEAgLTE3MiwyMCArMjQ4LDggQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoRnJh
bWUqIGZyYW1lKQogICAgICAgICBzZXNzaW9uID0gc291cF9zZXNzaW9uX2FzeW5jX25ldygpOwog
CiAgICAgU291cE1lc3NhZ2UqIG1zZzsKLSAgICBjb25zdCBjaGFyKiBtZXRob2QgPSAwOwotCi0g
ICAgaWYgKHJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIkdFVCIpCi0gICAgICAgIG1ldGhvZCA9
IFNPVVBfTUVUSE9EX0dFVDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09
ICJQT1NUIikKLSAgICAgICAgbWV0aG9kID0gU09VUF9NRVRIT0RfUE9TVDsKLSAgICBlbHNlIGlm
IChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJIRUFEIikKLSAgICAgICAgbWV0aG9kID0gU09V
UF9NRVRIT0RfSEVBRDsKLSAgICBlbHNlIGlmIChyZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQ
VVQiKQotICAgICAgICBtZXRob2QgPSBTT1VQX01FVEhPRF9QVVQ7Ci0gICAgZWxzZQotICAgICAg
ICBnX2RlYnVnICgiVW5rbm93biBtZXRob2QhIik7Ci0KLSAgICBtc2cgPSBzb3VwX21lc3NhZ2Vf
bmV3KG1ldGhvZD8gbWV0aG9kIDogU09VUF9NRVRIT0RfR0VULCB1cmxTdHJpbmcudXRmOCgpLmRh
dGEoKSk7CisgICAgbXNnID0gc291cF9tZXNzYWdlX25ldyhyZXF1ZXN0KCkuaHR0cE1ldGhvZCgp
LnV0ZjgoKS5kYXRhKCksIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICBnX3NpZ25hbF9j
b25uZWN0KG1zZywgInJlc3RhcnRlZCIsIEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCB0
aGlzKTsKIAogICAgIEhUVFBIZWFkZXJNYXAgY3VzdG9tSGVhZGVycyA9IGQtPm1fcmVxdWVzdC5o
dHRwSGVhZGVyRmllbGRzKCk7CiAgICAgaWYgKCFjdXN0b21IZWFkZXJzLmlzRW1wdHkoKSkgewpA
QCAtMjA5LDggKzI3Myw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFt
ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVBfTUVNT1JZX0NPUFksIGJv
ZHkuZGF0YSgpLCBib2R5LnNpemUoKSk7CiAgICAgfQogCi0gICAgZC0+bV9tc2cgPSAoU291cE1l
c3NhZ2UqKWdfb2JqZWN0X3JlZihtc2cpOwotICAgIGQtPnNlc3Npb24gPSBzZXNzaW9uOworICAg
IGQtPm1fbXNnID0gc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2UqPihnX29iamVjdF9yZWYobXNnKSk7
CiAgICAgc291cF9zZXNzaW9uX3F1ZXVlX21lc3NhZ2Uoc2Vzc2lvbiwgZC0+bV9tc2csIGRhdGFD
YWxsYmFjaywgdGhpcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIxOCwxMCArMjgxLDEyIEBA
IGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KEZyYW1lKiBmcmFtZSkKIAogdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y2FuY2VsKCkKIHsKLSAgICBpZiAoZC0+bV9tc2cpCi0gICAgICAgIHNvdXBfc2Vz
c2lvbl9jYW5jZWxfbWVzc2FnZSAoZC0+c2Vzc2lvbiwgZC0+bV9tc2csIFNPVVBfU1RBVFVTX0NB
TkNFTExFRCk7Ci0KLSAgICBjbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICBk
LT5tX2NhbmNlbGxlZCA9IHRydWU7CisgICAgaWYgKGQtPm1fbXNnKSB7CisgICAgICAgIHNvdXBf
c2Vzc2lvbl9jYW5jZWxfbWVzc2FnZShzZXNzaW9uLCBkLT5tX21zZywgU09VUF9TVEFUVVNfQ0FO
Q0VMTEVEKTsKKyAgICAgICAgLy8gRm9yIHJlLWVudHJhbmN5IHRyb3VibGVzIHdlIGNhbGwgZGlk
RmluaXNoTG9hZGluZyB3aGVuIHRoZSBtZXNzYWdlIGhhc24ndCBiZWVuIGhhbmRsZWQgeWV0Lgor
ICAgICAgICBkLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICB9CiB9CiAK
IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBSZXNvdXJjZUhhbmRsZTo6YnVmZmVyZWREYXRhKCkK
</data>
<flag name="review"
          id="8874"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
      

    </bug>

</bugzilla>