<?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>9577</bug_id>
          
          <creation_ts>2006-06-25 11:25:02 -0700</creation_ts>
          <short_desc>Fallback for &lt;object&gt; not rendered if plug-in unavailable</short_desc>
          <delta_ts>2008-02-01 11:04:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://web.nickshanks.com/typography/sans-serif</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="Nicholas Shanks">nickshanks</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>47121</commentid>
    <comment_count>0</comment_count>
    <who name="Nicholas Shanks">nickshanks</who>
    <bug_when>2006-06-25 11:25:02 -0700</bug_when>
    <thetext>When plug-ins are disabled, &lt;object&gt; elements don&apos;t instead display their fallback HTML code.
See above page for an example</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47128</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-06-25 13:25:05 -0700</bug_when>
    <thetext>Duplicate of bug 3742?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47927</commentid>
    <comment_count>2</comment_count>
      <attachid>9129</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-07-01 15:13:03 -0700</bug_when>
    <thetext>Created attachment 9129
First attempt

The patch fixes the bug for me. I can do testcase(s) if the code gets okayed in the first place :-)
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48033</commentid>
    <comment_count>3</comment_count>
      <attachid>9151</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-07-02 13:09:22 -0700</bug_when>
    <thetext>Created attachment 9151
Improved patch

This patch fixes a problem with the one before, m_hasFallbackContent
has to be determined if plugins are disabled.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48078</commentid>
    <comment_count>4</comment_count>
      <attachid>9166</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-07-03 06:45:11 -0700</bug_when>
    <thetext>Created attachment 9166
improved patch

I am not sure whether the previous patch worked 100%, anyway this one is tested ok
against the testcase and has no regressions. Also it fixes bug 7536, since that one is closely
related. I checked the testcases in FF and IE6 and the patch matches that behaviour.
Let me know if I can start doing the testcases, I think the ones from bug 7536 and this one
are an ok start?
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48125</commentid>
    <comment_count>5</comment_count>
      <attachid>9166</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-03 18:26:54 -0700</bug_when>
    <thetext>Comment on attachment 9166
improved patch

Does Acid2 still pass?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48159</commentid>
    <comment_count>6</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-07-04 00:55:51 -0700</bug_when>
    <thetext>Hi Darin,

(In reply to comment #5)
&gt; (From update of attachment 9166 [edit])
&gt; Does Acid2 still pass?
In my run-webkit-tests runs acid2 works fine. I wonder btw if it takes into
account plugins enabled/disabled? I tried both but didnt spot a difference.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48160</commentid>
    <comment_count>7</comment_count>
      <attachid>9166</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-07-04 01:15:11 -0700</bug_when>
    <thetext>Comment on attachment 9166
improved patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48167</commentid>
    <comment_count>8</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-07-04 03:21:44 -0700</bug_when>
    <thetext>Hi Maciej, Darin,

(In reply to comment #7)
&gt; (From update of attachment 9166 [edit])
&gt; r=me

Nice!
Any advice on the best road to finish the patch? Is it ok
that it may fix two seperate bugs? Does it need a testcase for
both, a combined testcase or are there existing testcases that test
the two bugs?
Cheers,

Rob.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48184</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-04 10:50:48 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Any advice on the best road to finish the patch? Is it ok
&gt; that it may fix two seperate bugs? Does it need a testcase for
&gt; both, a combined testcase or are there existing testcases that test
&gt; the two bugs?

The more test cases the better. Ideally the test cases independently demonstrate each thing you noticed that was broken in the old code, anything you realize you might have gotten wrong if you weren&apos;t such a careful programmer, and anything you&apos;re concerned that later hackers might break in the new code you made.

It doesn&apos;t really matter how many separate bug reports there are. What&apos;s more important is what observable problems there are -- we want to test each of these in case they get screwed up later.

I don&apos;t know the status here about which test cases already exist -- you could make a list of what needs to be tested and then check yourself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48835</commentid>
    <comment_count>10</comment_count>
      <attachid>9166</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-08 09:36:15 -0700</bug_when>
    <thetext>Comment on attachment 9166
improved patch

Clearing the review flag so this doesn&apos;t appear in our patches to be commited list. Please set the review flag again when you have a patch with tests that&apos;s ready to review and land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232</commentid>
    <comment_count>11</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-09-20 10:39:15 -0700</bug_when>
    <thetext>Is the bug still present in TOT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-09-20 10:45:15 -0700</bug_when>
    <thetext>See also Bug 15202.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69071</commentid>
    <comment_count>13</comment_count>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2008-02-01 11:04:55 -0800</bug_when>
    <thetext>Based on other related and fixed bugs and after checking test url I can suppose that this bug is fixed. </thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9129</attachid>
            <date>2006-07-01 15:13:03 -0700</date>
            <delta_ts>2006-07-02 13:09:22 -0700</delta_ts>
            <desc>First attempt</desc>
            <filename>9577.diff</filename>
            <type>text/plain</type>
            <size>12874</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTEyOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDYtMDctMDIgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWd6
aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU3NworICAgICAgICBGYWxsYmFj
ayBmb3IgPG9iamVjdD4gbm90IHJlbmRlcmVkIGlmIHBsdWctaW4gdW5hdmFpbGFibGUKKworICAg
ICAgICBSZXZlcnQgdG8gbm9ybWFsIGNyZWF0ZVJlbmRlcmVySWZOZWVkZWQgYmVoYXZpb3VyIGFu
ZCB0cnkgdG8KKyAgICAgICAgcmVuZGVyIGZhbGxiYWNrIGNvbnRlbnQgaWYgcGx1Z2lucyBhcmUg
ZGlzYWJsZWQuCisKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clBhcnRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGFydE9iamVjdDo6dXBk
YXRlV2lkZ2V0KToKKwogMjAwNi0wNi0zMCAgTWlrZSBFbW1lbCAgPG1pa2UuZW1tZWxAZ21haWwu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGFuZCB3b3JrZWQgb3ZlciBhIGxvdCBieSBEYXJpbi4K
SW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTUxMjkpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTks
MTggKzE1OSw2IEBAIERvY3VtZW50KiBIVE1MT2JqZWN0RWxlbWVudDo6Y29udGVudERvY3UKICAg
ICByZXR1cm4gMDsKIH0KIAotYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRl
ZChSZW5kZXJTdHlsZSAqc3R5bGUpCi17Ci0gICAgaWYgKG1fdXNlRmFsbGJhY2tDb250ZW50IHx8
IGlzSW1hZ2VUeXBlKCkpCi0gICAgICAgIHJldHVybiBIVE1MUGx1Z0luRWxlbWVudDo6cmVuZGVy
ZXJJc05lZWRlZChzdHlsZSk7Ci0KLSAgICBGcmFtZSAqZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFt
ZSgpOwotICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5wbHVnaW5zRW5hYmxlZCgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIFJlbmRlck9iamVj
dCAqSFRNTE9iamVjdEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hICphcmVuYSwg
UmVuZGVyU3R5bGUgKnN0eWxlKQogewogICAgIGlmIChtX3VzZUZhbGxiYWNrQ29udGVudCkKSW5k
ZXg6IFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCShyZXZpc2lvbiAxNTEyOSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0
cmlidXRlKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7Ci0gICAgdmlydHVhbCBib29s
IHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1
YWwgdm9pZCBjbG9zZVJlbmRlcmVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAJKHJldmlzaW9uIDE1MTI5KQor
KysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExMSwxMDggKzExMSwxMTMgQEAgdm9pZCBSZW5kZXJQYXJ0T2JqZWN0Ojp1cGRhdGVXaWRn
ZXQoKQogCiAgICAgICBpZiAoIW8tPmlzQ29tcGxldGUoKSkKICAgICAgICAgcmV0dXJuOwotICAg
ICAgLy8gQ2hlY2sgZm9yIGEgY2hpbGQgRU1CRUQgdGFnLgotICAgICAgSFRNTEVtYmVkRWxlbWVu
dCogZW1iZWQgPSAwOwotICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG8tPmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7KSB7Ci0gICAgICAgICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1lKGVtYmVkVGFnKSkgewot
ICAgICAgICAgICAgICBlbWJlZCA9IHN0YXRpY19jYXN0PEhUTUxFbWJlZEVsZW1lbnQqPihjaGls
ZCk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQtPmhh
c1RhZ05hbWUob2JqZWN0VGFnKSkKLSAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKTsgICAgICAgICAvLyBEb24ndCBkZXNjZW5kIGludG8gbmVzdGVkIE9CSkVDVCB0YWdz
Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT50cmF2ZXJzZU5l
eHROb2RlKG8pOyAgIC8vIE90aGVyd2lzZSBkZXNjZW5kIChFTUJFRHMgbWF5IGJlIGluc2lkZSBD
T01NRU5UIHRhZ3MpCi0gICAgICB9Ci0gICAgICAKLSAgICAgIC8vIFVzZSB0aGUgYXR0cmlidXRl
cyBmcm9tIHRoZSBFTUJFRCB0YWcgaW5zdGVhZCBvZiB0aGUgT0JKRUNUIHRhZyBpbmNsdWRpbmcg
V0lEVEggYW5kIEhFSUdIVC4KLSAgICAgIEhUTUxFbGVtZW50ICplbWJlZE9yT2JqZWN0OwotICAg
ICAgaWYgKGVtYmVkKSB7Ci0gICAgICAgICAgZW1iZWRPck9iamVjdCA9IChIVE1MRWxlbWVudCAq
KWVtYmVkOwotICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGUgPSBlbWJlZE9yT2JqZWN0LT5nZXRB
dHRyaWJ1dGUod2lkdGhBdHRyKTsKLSAgICAgICAgICBpZiAoIWF0dHJpYnV0ZS5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICAgIG8tPnNldEF0dHJpYnV0ZSh3aWR0aEF0dHIsIGF0dHJpYnV0ZSk7Ci0g
ICAgICAgICAgYXR0cmlidXRlID0gZW1iZWRPck9iamVjdC0+Z2V0QXR0cmlidXRlKGhlaWdodEF0
dHIpOwotICAgICAgICAgIGlmICghYXR0cmlidXRlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAg
by0+c2V0QXR0cmlidXRlKGhlaWdodEF0dHIsIGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgdXJsID0g
ZW1iZWQtPnVybDsKLSAgICAgICAgICBzZXJ2aWNlVHlwZSA9IGVtYmVkLT5zZXJ2aWNlVHlwZTsK
LSAgICAgIH0gZWxzZQotICAgICAgICAgIGVtYmVkT3JPYmplY3QgPSAoSFRNTEVsZW1lbnQgKilv
OworCisgICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgIGlmIChmcmFtZS0+cGx1Z2lu
c0VuYWJsZWQoKSkgeworICAgICAgICAgIC8vIENoZWNrIGZvciBhIGNoaWxkIEVNQkVEIHRhZy4K
KyAgICAgICAgICBIVE1MRW1iZWRFbGVtZW50KiBlbWJlZCA9IDA7CisgICAgICAgICAgZm9yIChO
b2RlKiBjaGlsZCA9IG8tPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7KSB7CisgICAgICAgICAgICAgIGlm
IChjaGlsZC0+aGFzVGFnTmFtZShlbWJlZFRhZykpIHsKKyAgICAgICAgICAgICAgICAgIGVtYmVk
ID0gc3RhdGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkLT5oYXNUYWdOYW1lKG9i
amVjdFRhZykpCisgICAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygp
OyAgICAgICAgIC8vIERvbid0IGRlc2NlbmQgaW50byBuZXN0ZWQgT0JKRUNUIHRhZ3MKKyAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+dHJhdmVyc2VO
ZXh0Tm9kZShvKTsgICAvLyBPdGhlcndpc2UgZGVzY2VuZCAoRU1CRURzIG1heSBiZSBpbnNpZGUg
Q09NTUVOVCB0YWdzKQorICAgICAgICAgIH0KICAgICAgIAotICAgICAgLy8gSWYgdGhlcmUgd2Fz
IG5vIFVSTCBvciB0eXBlIGRlZmluZWQgaW4gRU1CRUQsIHRyeSB0aGUgT0JKRUNUIHRhZy4KLSAg
ICAgIGlmICh1cmwuaXNFbXB0eSgpKQotICAgICAgICAgIHVybCA9IG8tPnVybDsKLSAgICAgIGlm
IChzZXJ2aWNlVHlwZS5pc0VtcHR5KCkpCi0gICAgICAgICAgc2VydmljZVR5cGUgPSBvLT5zZXJ2
aWNlVHlwZTsKLSAgICAgIAotICAgICAgSGFzaFNldDxTdHJpbmdJbXBsKiwgQ2FzZUluc2Vuc2l0
aXZlSGFzaD4gdW5pcXVlUGFyYW1OYW1lczsKLSAgICAgIAotICAgICAgLy8gU2NhbiB0aGUgUEFS
QU0gY2hpbGRyZW4uCi0gICAgICAvLyBHZXQgdGhlIFVSTCBhbmQgdHlwZSBmcm9tIHRoZSBwYXJh
bXMgaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIHRoZW0uCi0gICAgICAvLyBHZXQgdGhlIGF0dHJp
YnV0ZXMgZnJvbSB0aGUgcGFyYW1zIGlmIHRoZXJlIGlzIG5vIEVNQkVEIHRhZy4KLSAgICAgIE5v
ZGUgKmNoaWxkID0gby0+Zmlyc3RDaGlsZCgpOwotICAgICAgd2hpbGUgKGNoaWxkICYmICh1cmwu
aXNFbXB0eSgpIHx8IHNlcnZpY2VUeXBlLmlzRW1wdHkoKSB8fCAhZW1iZWQpKSB7Ci0gICAgICAg
ICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1lKHBhcmFtVGFnKSkgewotICAgICAgICAgICAgICBIVE1M
UGFyYW1FbGVtZW50KiBwID0gc3RhdGljX2Nhc3Q8SFRNTFBhcmFtRWxlbWVudCo+KGNoaWxkKTsK
LSAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBwLT5uYW1lKCkubG93ZXIoKTsKLSAgICAgICAg
ICAgICAgaWYgKHVybC5pc0VtcHR5KCkgJiYgKG5hbWUgPT0gInNyYyIgfHwgbmFtZSA9PSAibW92
aWUiIHx8IG5hbWUgPT0gImNvZGUiIHx8IG5hbWUgPT0gInVybCIpKQotICAgICAgICAgICAgICAg
ICAgdXJsID0gcC0+dmFsdWUoKTsKLSAgICAgICAgICAgICAgaWYgKHNlcnZpY2VUeXBlLmlzRW1w
dHkoKSAmJiBuYW1lID09ICJ0eXBlIikgewotICAgICAgICAgICAgICAgICAgc2VydmljZVR5cGUg
PSBwLT52YWx1ZSgpOwotICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IHNlcnZpY2VUeXBlLmZp
bmQoIjsiKTsKLSAgICAgICAgICAgICAgICAgIGlmIChwb3MgIT0gLTEpCi0gICAgICAgICAgICAg
ICAgICAgICAgc2VydmljZVR5cGUgPSBzZXJ2aWNlVHlwZS5sZWZ0KHBvcyk7Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgaWYgKCFlbWJlZCAmJiAhbmFtZS5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgICAgICAgICAgIHVuaXF1ZVBhcmFtTmFtZXMuYWRkKHAtPm5hbWUoKS5pbXBsKCkpOwot
ICAgICAgICAgICAgICAgICAgcGFyYW1OYW1lcy5hcHBlbmQocC0+bmFtZSgpKTsKLSAgICAgICAg
ICAgICAgICAgIHBhcmFtVmFsdWVzLmFwcGVuZChwLT52YWx1ZSgpKTsKKyAgICAgICAgICAvLyBV
c2UgdGhlIGF0dHJpYnV0ZXMgZnJvbSB0aGUgRU1CRUQgdGFnIGluc3RlYWQgb2YgdGhlIE9CSkVD
VCB0YWcgaW5jbHVkaW5nIFdJRFRIIGFuZCBIRUlHSFQuCisgICAgICAgICAgSFRNTEVsZW1lbnQg
KmVtYmVkT3JPYmplY3Q7CisgICAgICAgICAgaWYgKGVtYmVkKSB7CisgICAgICAgICAgICAgIGVt
YmVkT3JPYmplY3QgPSAoSFRNTEVsZW1lbnQgKillbWJlZDsKKyAgICAgICAgICAgICAgU3RyaW5n
IGF0dHJpYnV0ZSA9IGVtYmVkT3JPYmplY3QtPmdldEF0dHJpYnV0ZSh3aWR0aEF0dHIpOworICAg
ICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICBv
LT5zZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCBhdHRyaWJ1dGUpOworICAgICAgICAgICAgICBhdHRy
aWJ1dGUgPSBlbWJlZE9yT2JqZWN0LT5nZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0cik7CisgICAgICAg
ICAgICAgIGlmICghYXR0cmlidXRlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgIG8tPnNl
dEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBhdHRyaWJ1dGUpOworICAgICAgICAgICAgICB1cmwgPSBl
bWJlZC0+dXJsOworICAgICAgICAgICAgICBzZXJ2aWNlVHlwZSA9IGVtYmVkLT5zZXJ2aWNlVHlw
ZTsKKyAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgZW1iZWRPck9iamVjdCA9IChIVE1M
RWxlbWVudCAqKW87CisgICAgICAKKyAgICAgICAgICAvLyBJZiB0aGVyZSB3YXMgbm8gVVJMIG9y
IHR5cGUgZGVmaW5lZCBpbiBFTUJFRCwgdHJ5IHRoZSBPQkpFQ1QgdGFnLgorICAgICAgICAgIGlm
ICh1cmwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICB1cmwgPSBvLT51cmw7CisgICAgICAgICAg
aWYgKHNlcnZpY2VUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgc2VydmljZVR5cGUgPSBv
LT5zZXJ2aWNlVHlwZTsKKyAgICAgIAorICAgICAgICAgIEhhc2hTZXQ8U3RyaW5nSW1wbCosIENh
c2VJbnNlbnNpdGl2ZUhhc2g+IHVuaXF1ZVBhcmFtTmFtZXM7CisgICAgICAKKyAgICAgICAgICAv
LyBTY2FuIHRoZSBQQVJBTSBjaGlsZHJlbi4KKyAgICAgICAgICAvLyBHZXQgdGhlIFVSTCBhbmQg
dHlwZSBmcm9tIHRoZSBwYXJhbXMgaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIHRoZW0uCisgICAg
ICAgICAgLy8gR2V0IHRoZSBhdHRyaWJ1dGVzIGZyb20gdGhlIHBhcmFtcyBpZiB0aGVyZSBpcyBu
byBFTUJFRCB0YWcuCisgICAgICAgICAgTm9kZSAqY2hpbGQgPSBvLT5maXJzdENoaWxkKCk7Cisg
ICAgICAgICAgd2hpbGUgKGNoaWxkICYmICh1cmwuaXNFbXB0eSgpIHx8IHNlcnZpY2VUeXBlLmlz
RW1wdHkoKSB8fCAhZW1iZWQpKSB7CisgICAgICAgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFt
ZShwYXJhbVRhZykpIHsKKyAgICAgICAgICAgICAgICAgIEhUTUxQYXJhbUVsZW1lbnQqIHAgPSBz
dGF0aWNfY2FzdDxIVE1MUGFyYW1FbGVtZW50Kj4oY2hpbGQpOworICAgICAgICAgICAgICAgICAg
U3RyaW5nIG5hbWUgPSBwLT5uYW1lKCkubG93ZXIoKTsKKyAgICAgICAgICAgICAgICAgIGlmICh1
cmwuaXNFbXB0eSgpICYmIChuYW1lID09ICJzcmMiIHx8IG5hbWUgPT0gIm1vdmllIiB8fCBuYW1l
ID09ICJjb2RlIiB8fCBuYW1lID09ICJ1cmwiKSkKKyAgICAgICAgICAgICAgICAgICAgICB1cmwg
PSBwLT52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgaWYgKHNlcnZpY2VUeXBlLmlzRW1wdHko
KSAmJiBuYW1lID09ICJ0eXBlIikgeworICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VUeXBl
ID0gcC0+dmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gc2VydmljZVR5
cGUuZmluZCgiOyIpOworICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgIT0gLTEpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VUeXBlID0gc2VydmljZVR5cGUubGVmdChwb3Mp
OworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgaWYgKCFlbWJlZCAmJiAh
bmFtZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVQYXJhbU5hbWVz
LmFkZChwLT5uYW1lKCkuaW1wbCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICBwYXJhbU5hbWVz
LmFwcGVuZChwLT5uYW1lKCkpOworICAgICAgICAgICAgICAgICAgICAgIHBhcmFtVmFsdWVzLmFw
cGVuZChwLT52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpOwogICAgICAgICAgIH0K
LSAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpOwotICAgICAgfQogICAgICAg
Ci0gICAgICAvLyBXaGVuIE9CSkVDVCBpcyB1c2VkIGZvciBhbiBhcHBsZXQgdmlhIFN1bidzIEph
dmEgcGx1Z2luLCB0aGUgQ09ERUJBU0UgYXR0cmlidXRlIGluIHRoZSB0YWcKLSAgICAgIC8vIHBv
aW50cyB0byB0aGUgSmF2YSBwbHVnaW4gaXRzZWxmIChhbiBBY3RpdmVYIGNvbXBvbmVudCkgd2hp
bGUgdGhlIGFjdHVhbCBhcHBsZXQgQ09ERUJBU0UgaXMKLSAgICAgIC8vIGluIGEgUEFSQU0gdGFn
LiBTZWUgPGh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvcGx1Z2luLzEuMi9kb2NzL3RhZ3Mu
aHRtbD4uIFRoaXMgbWVhbnMKLSAgICAgIC8vIHdlIGhhdmUgdG8gZXhwbGljaXRseSBzdXBwcmVz
cyB0aGUgdGFnJ3MgQ09ERUJBU0UgYXR0cmlidXRlIGlmIHRoZXJlIGlzIG5vbmUgaW4gYSBQQVJB
TSwKLSAgICAgIC8vIGVsc2Ugb3VyIEphdmEgcGx1Z2luIHdpbGwgbWlzaW50ZXJwcmV0IGl0LiBb
NDAwNDUzMV0KLSAgICAgIFN0cmluZyBjb2RlYmFzZTsKLSAgICAgIGlmICghZW1iZWQgJiYgc2Vy
dmljZVR5cGUubG93ZXIoKSA9PSAiYXBwbGljYXRpb24veC1qYXZhLWFwcGxldCIpIHsKLSAgICAg
ICAgICBjb2RlYmFzZSA9ICJjb2RlYmFzZSI7Ci0gICAgICAgICAgdW5pcXVlUGFyYW1OYW1lcy5h
ZGQoY29kZWJhc2UuaW1wbCgpKTsgLy8gcHJldGVuZCB3ZSBmb3VuZCBpdCBpbiBhIFBBUkFNIGFs
cmVhZHkKLSAgICAgIH0KKyAgICAgICAgICAvLyBXaGVuIE9CSkVDVCBpcyB1c2VkIGZvciBhbiBh
cHBsZXQgdmlhIFN1bidzIEphdmEgcGx1Z2luLCB0aGUgQ09ERUJBU0UgYXR0cmlidXRlIGluIHRo
ZSB0YWcKKyAgICAgICAgICAvLyBwb2ludHMgdG8gdGhlIEphdmEgcGx1Z2luIGl0c2VsZiAoYW4g
QWN0aXZlWCBjb21wb25lbnQpIHdoaWxlIHRoZSBhY3R1YWwgYXBwbGV0IENPREVCQVNFIGlzCisg
ICAgICAgICAgLy8gaW4gYSBQQVJBTSB0YWcuIFNlZSA8aHR0cDovL2phdmEuc3VuLmNvbS9wcm9k
dWN0cy9wbHVnaW4vMS4yL2RvY3MvdGFncy5odG1sPi4gVGhpcyBtZWFucworICAgICAgICAgIC8v
IHdlIGhhdmUgdG8gZXhwbGljaXRseSBzdXBwcmVzcyB0aGUgdGFnJ3MgQ09ERUJBU0UgYXR0cmli
dXRlIGlmIHRoZXJlIGlzIG5vbmUgaW4gYSBQQVJBTSwKKyAgICAgICAgICAvLyBlbHNlIG91ciBK
YXZhIHBsdWdpbiB3aWxsIG1pc2ludGVycHJldCBpdC4gWzQwMDQ1MzFdCisgICAgICAgICAgU3Ry
aW5nIGNvZGViYXNlOworICAgICAgICAgIGlmICghZW1iZWQgJiYgc2VydmljZVR5cGUubG93ZXIo
KSA9PSAiYXBwbGljYXRpb24veC1qYXZhLWFwcGxldCIpIHsKKyAgICAgICAgICAgICAgY29kZWJh
c2UgPSAiY29kZWJhc2UiOworICAgICAgICAgICAgICB1bmlxdWVQYXJhbU5hbWVzLmFkZChjb2Rl
YmFzZS5pbXBsKCkpOyAvLyBwcmV0ZW5kIHdlIGZvdW5kIGl0IGluIGEgUEFSQU0gYWxyZWFkeQor
ICAgICAgICAgIH0KICAgICAgIAotICAgICAgLy8gVHVybiB0aGUgYXR0cmlidXRlcyBvZiBlaXRo
ZXIgdGhlIEVNQkVEIHRhZyBvciBPQkpFQ1QgdGFnIGludG8gYXJyYXlzLCBidXQgZG9uJ3Qgb3Zl
cnJpZGUgUEFSQU0gdmFsdWVzLgotICAgICAgTmFtZWRBdHRyTWFwKiBhdHRyaWJ1dGVzID0gZW1i
ZWRPck9iamVjdC0+YXR0cmlidXRlcygpOwotICAgICAgaWYgKGF0dHJpYnV0ZXMpIHsKLSAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXR0cmlidXRlcy0+bGVuZ3RoKCk7ICsraSkg
ewotICAgICAgICAgICAgICBBdHRyaWJ1dGUqIGl0ID0gYXR0cmlidXRlcy0+YXR0cmlidXRlSXRl
bShpKTsKLSAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gaXQtPm5hbWUo
KS5sb2NhbE5hbWUoKTsKLSAgICAgICAgICAgICAgaWYgKGVtYmVkIHx8ICF1bmlxdWVQYXJhbU5h
bWVzLmNvbnRhaW5zKG5hbWUuaW1wbCgpKSkgewotICAgICAgICAgICAgICAgICAgcGFyYW1OYW1l
cy5hcHBlbmQobmFtZS5kb21TdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICBwYXJhbVZhbHVl
cy5hcHBlbmQoaXQtPnZhbHVlKCkuZG9tU3RyaW5nKCkpOworICAgICAgICAgIC8vIFR1cm4gdGhl
IGF0dHJpYnV0ZXMgb2YgZWl0aGVyIHRoZSBFTUJFRCB0YWcgb3IgT0JKRUNUIHRhZyBpbnRvIGFy
cmF5cywgYnV0IGRvbid0IG92ZXJyaWRlIFBBUkFNIHZhbHVlcy4KKyAgICAgICAgICBOYW1lZEF0
dHJNYXAqIGF0dHJpYnV0ZXMgPSBlbWJlZE9yT2JqZWN0LT5hdHRyaWJ1dGVzKCk7CisgICAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMpIHsKKyAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGF0dHJpYnV0ZXMtPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgIEF0dHJp
YnV0ZSogaXQgPSBhdHRyaWJ1dGVzLT5hdHRyaWJ1dGVJdGVtKGkpOworICAgICAgICAgICAgICAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gaXQtPm5hbWUoKS5sb2NhbE5hbWUoKTsKKyAg
ICAgICAgICAgICAgICAgIGlmIChlbWJlZCB8fCAhdW5pcXVlUGFyYW1OYW1lcy5jb250YWlucyhu
YW1lLmltcGwoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICBwYXJhbU5hbWVzLmFwcGVuZChu
YW1lLmRvbVN0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICBwYXJhbVZhbHVlcy5hcHBl
bmQoaXQtPnZhbHVlKCkuZG9tU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgfQotICAgICAgfQotICAgICAgCi0gICAgICAvLyBJZiB3ZSBz
dGlsbCBkb24ndCBoYXZlIGEgdHlwZSwgdHJ5IHRvIG1hcCBmcm9tIGEgc3BlY2lmaWMgQ0xBU1NJ
RCB0byBhIHR5cGUuCi0gICAgICBpZiAoc2VydmljZVR5cGUuaXNFbXB0eSgpICYmICFvLT5jbGFz
c0lkLmlzRW1wdHkoKSkKLSAgICAgICAgICBtYXBDbGFzc0lkVG9TZXJ2aWNlVHlwZShvLT5jbGFz
c0lkLCBzZXJ2aWNlVHlwZSk7CiAgICAgICAKLSAgICAgIC8vIElmIG5vIFVSTCBhbmQgdHlwZSwg
YWJvcnQuCi0gICAgICBpZiAodXJsLmlzRW1wdHkoKSAmJiBzZXJ2aWNlVHlwZS5pc0VtcHR5KCkp
Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgaWYgKCFpc1VSTEFsbG93ZWQoZG9jdW1lbnQoKSwg
dXJsKSkKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgIC8vIEZpbmQgb3V0IGlmIHdlIHN1cHBv
cnQgZmFsbGJhY2sgY29udGVudC4KLSAgICAgIG1faGFzRmFsbGJhY2tDb250ZW50ID0gZmFsc2U7
Ci0gICAgICBmb3IgKE5vZGUgKmNoaWxkID0gby0+Zmlyc3RDaGlsZCgpOyBjaGlsZCAmJiAhbV9o
YXNGYWxsYmFja0NvbnRlbnQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAg
ICAgICBpZiAoKCFjaGlsZC0+aXNUZXh0Tm9kZSgpICYmICFjaGlsZC0+aGFzVGFnTmFtZShlbWJl
ZFRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKHBhcmFtVGFnKSkgfHwgLy8gRGlzY291bnQgPGVt
YmVkPiBhbmQgPHBhcmFtPgotICAgICAgICAgICAgICAoY2hpbGQtPmlzVGV4dE5vZGUoKSAmJiAh
c3RhdGljX2Nhc3Q8VGV4dCo+KGNoaWxkKS0+Y29udGFpbnNPbmx5V2hpdGVzcGFjZSgpKSkKLSAg
ICAgICAgICAgICAgbV9oYXNGYWxsYmFja0NvbnRlbnQgPSB0cnVlOworICAgICAgICAgIC8vIElm
IHdlIHN0aWxsIGRvbid0IGhhdmUgYSB0eXBlLCB0cnkgdG8gbWFwIGZyb20gYSBzcGVjaWZpYyBD
TEFTU0lEIHRvIGEgdHlwZS4KKyAgICAgICAgICBpZiAoc2VydmljZVR5cGUuaXNFbXB0eSgpICYm
ICFvLT5jbGFzc0lkLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgbWFwQ2xhc3NJZFRvU2Vydmlj
ZVR5cGUoby0+Y2xhc3NJZCwgc2VydmljZVR5cGUpOworICAgICAgCisgICAgICAgICAgLy8gSWYg
bm8gVVJMIGFuZCB0eXBlLCBhYm9ydC4KKyAgICAgICAgICBpZiAodXJsLmlzRW1wdHkoKSAmJiBz
ZXJ2aWNlVHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICBp
ZiAoIWlzVVJMQWxsb3dlZChkb2N1bWVudCgpLCB1cmwpKQorICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAvLyBGaW5kIG91dCBpZiB3ZSBzdXBwb3J0IGZhbGxiYWNrIGNvbnRlbnQu
CisgICAgICAgICAgbV9oYXNGYWxsYmFja0NvbnRlbnQgPSBmYWxzZTsKKyAgICAgICAgICBmb3Ig
KE5vZGUgKmNoaWxkID0gby0+Zmlyc3RDaGlsZCgpOyBjaGlsZCAmJiAhbV9oYXNGYWxsYmFja0Nv
bnRlbnQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgICAgaWYg
KCghY2hpbGQtPmlzVGV4dE5vZGUoKSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpICYm
ICFjaGlsZC0+aGFzVGFnTmFtZShwYXJhbVRhZykpIHx8IC8vIERpc2NvdW50IDxlbWJlZD4gYW5k
IDxwYXJhbT4KKyAgICAgICAgICAgICAgICAgIChjaGlsZC0+aXNUZXh0Tm9kZSgpICYmICFzdGF0
aWNfY2FzdDxUZXh0Kj4oY2hpbGQpLT5jb250YWluc09ubHlXaGl0ZXNwYWNlKCkpKQorICAgICAg
ICAgICAgICAgICAgbV9oYXNGYWxsYmFja0NvbnRlbnQgPSB0cnVlOworICAgICAgICAgIH0KICAg
ICAgIH0KLSAgICAgIGJvb2wgc3VjY2VzcyA9IGZyYW1lLT5yZXF1ZXN0T2JqZWN0KHRoaXMsIHVy
bCwgQXRvbWljU3RyaW5nKG8tPm5hbWUoKSksIHNlcnZpY2VUeXBlLCBwYXJhbU5hbWVzLCBwYXJh
bVZhbHVlcyk7CisgICAgICBpZiAoZnJhbWUtPnJlcXVlc3RPYmplY3QodGhpcywgdXJsLCBBdG9t
aWNTdHJpbmcoby0+bmFtZSgpKSwgc2VydmljZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVz
KSkKKyAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTsKICAgICAgIGlmICghc3VjY2VzcyAmJiBtX2hh
c0ZhbGxiYWNrQ29udGVudCkKICAgICAgICAgICBvLT5yZW5kZXJGYWxsYmFja0NvbnRlbnQoKTsK
ICAgfSBlbHNlIGlmIChlbGVtZW50KCktPmhhc1RhZ05hbWUoZW1iZWRUYWcpKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9151</attachid>
            <date>2006-07-02 13:09:22 -0700</date>
            <delta_ts>2006-07-03 06:45:11 -0700</delta_ts>
            <desc>Improved patch</desc>
            <filename>9577-2.diff</filename>
            <type>text/plain</type>
            <size>12313</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTEzOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDYtMDctMDIgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWd6
aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU3NworICAgICAgICBGYWxsYmFj
ayBmb3IgPG9iamVjdD4gbm90IHJlbmRlcmVkIGlmIHBsdWctaW4gdW5hdmFpbGFibGUKKworICAg
ICAgICBSZXZlcnQgdG8gbm9ybWFsIGNyZWF0ZVJlbmRlcmVySWZOZWVkZWQgYmVoYXZpb3VyIGFu
ZCB0cnkgdG8KKyAgICAgICAgcmVuZGVyIGZhbGxiYWNrIGNvbnRlbnQgaWYgcGx1Z2lucyBhcmUg
ZGlzYWJsZWQuCisKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clBhcnRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGFydE9iamVjdDo6dXBk
YXRlV2lkZ2V0KToKKwogMjAwNi0wNy0wMiAgU2hhd24gU3RyaWNrZXIgIDxrYjFpYnRAZ21haWwu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4gIEJ1aWxkIGZpeCBm
b3IgTGludXguCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1
MTM5KQorKysgV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU5LDE4ICsxNTksNiBAQCBEb2N1bWVudCogSFRNTE9iamVjdEVsZW1lbnQ6OmNvbnRl
bnREb2N1CiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgSFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRl
cmVySXNOZWVkZWQoUmVuZGVyU3R5bGUgKnN0eWxlKQotewotICAgIGlmIChtX3VzZUZhbGxiYWNr
Q29udGVudCB8fCBpc0ltYWdlVHlwZSgpKQotICAgICAgICByZXR1cm4gSFRNTFBsdWdJbkVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwotCi0gICAgRnJhbWUgKmZyYW1lID0gZG9jdW1l
bnQoKS0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGx1Z2luc0VuYWJsZWQo
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJldHVybiB0cnVlOwotfQotCiBS
ZW5kZXJPYmplY3QgKkhUTUxPYmplY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSAqYXJlbmEsIFJlbmRlclN0eWxlICpzdHlsZSkKIHsKICAgICBpZiAobV91c2VGYWxsYmFja0Nv
bnRlbnQpCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTUxMzkpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDks
NyArNDksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRl
KE1hcHBlZEF0dHJpYnV0ZSopOwogCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOwotICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCBS
ZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VSZW5kZXJlcigpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRh
Y2goKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwCShyZXZpc2lv
biAxNTEzOSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTEsMTAwICsxMTEsMTA1IEBAIHZvaWQgUmVuZGVyUGFydE9iamVjdDo6
dXBkYXRlV2lkZ2V0KCkKIAogICAgICAgaWYgKCFvLT5pc0NvbXBsZXRlKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICAgIC8vIENoZWNrIGZvciBhIGNoaWxkIEVNQkVEIHRhZy4KLSAgICAgIEhUTUxF
bWJlZEVsZW1lbnQqIGVtYmVkID0gMDsKLSAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBvLT5maXJz
dENoaWxkKCk7IGNoaWxkOykgewotICAgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZShlbWJl
ZFRhZykpIHsKLSAgICAgICAgICAgICAgZW1iZWQgPSBzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVt
ZW50Kj4oY2hpbGQpOwotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9IGVsc2UgaWYg
KGNoaWxkLT5oYXNUYWdOYW1lKG9iamVjdFRhZykpCi0gICAgICAgICAgICAgIGNoaWxkID0gY2hp
bGQtPm5leHRTaWJsaW5nKCk7ICAgICAgICAgLy8gRG9uJ3QgZGVzY2VuZCBpbnRvIG5lc3RlZCBP
QkpFQ1QgdGFncwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+
dHJhdmVyc2VOZXh0Tm9kZShvKTsgICAvLyBPdGhlcndpc2UgZGVzY2VuZCAoRU1CRURzIG1heSBi
ZSBpbnNpZGUgQ09NTUVOVCB0YWdzKQotICAgICAgfQotICAgICAgCi0gICAgICAvLyBVc2UgdGhl
IGF0dHJpYnV0ZXMgZnJvbSB0aGUgRU1CRUQgdGFnIGluc3RlYWQgb2YgdGhlIE9CSkVDVCB0YWcg
aW5jbHVkaW5nIFdJRFRIIGFuZCBIRUlHSFQuCi0gICAgICBIVE1MRWxlbWVudCAqZW1iZWRPck9i
amVjdDsKLSAgICAgIGlmIChlbWJlZCkgewotICAgICAgICAgIGVtYmVkT3JPYmplY3QgPSAoSFRN
TEVsZW1lbnQgKillbWJlZDsKLSAgICAgICAgICBTdHJpbmcgYXR0cmlidXRlID0gZW1iZWRPck9i
amVjdC0+Z2V0QXR0cmlidXRlKHdpZHRoQXR0cik7Ci0gICAgICAgICAgaWYgKCFhdHRyaWJ1dGUu
aXNFbXB0eSgpKQotICAgICAgICAgICAgICBvLT5zZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCBhdHRy
aWJ1dGUpOwotICAgICAgICAgIGF0dHJpYnV0ZSA9IGVtYmVkT3JPYmplY3QtPmdldEF0dHJpYnV0
ZShoZWlnaHRBdHRyKTsKLSAgICAgICAgICBpZiAoIWF0dHJpYnV0ZS5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICAgIG8tPnNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBhdHRyaWJ1dGUpOwotICAgICAg
ICAgIHVybCA9IGVtYmVkLT51cmw7Ci0gICAgICAgICAgc2VydmljZVR5cGUgPSBlbWJlZC0+c2Vy
dmljZVR5cGU7Ci0gICAgICB9IGVsc2UKLSAgICAgICAgICBlbWJlZE9yT2JqZWN0ID0gKEhUTUxF
bGVtZW50ICopbzsKKworICAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAgICBpZiAoZnJh
bWUtPnBsdWdpbnNFbmFibGVkKCkpIHsKKyAgICAgICAgICAvLyBDaGVjayBmb3IgYSBjaGlsZCBF
TUJFRCB0YWcuCisgICAgICAgICAgSFRNTEVtYmVkRWxlbWVudCogZW1iZWQgPSAwOworICAgICAg
ICAgIGZvciAoTm9kZSogY2hpbGQgPSBvLT5maXJzdENoaWxkKCk7IGNoaWxkOykgeworICAgICAg
ICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpKSB7CisgICAgICAgICAgICAg
ICAgICBlbWJlZCA9IHN0YXRpY19jYXN0PEhUTUxFbWJlZEVsZW1lbnQqPihjaGlsZCk7CisgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZC0+aGFz
VGFnTmFtZShvYmplY3RUYWcpKQorICAgICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4
dFNpYmxpbmcoKTsgICAgICAgICAvLyBEb24ndCBkZXNjZW5kIGludG8gbmVzdGVkIE9CSkVDVCB0
YWdzCisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgIGNoaWxkID0gY2hpbGQt
PnRyYXZlcnNlTmV4dE5vZGUobyk7ICAgLy8gT3RoZXJ3aXNlIGRlc2NlbmQgKEVNQkVEcyBtYXkg
YmUgaW5zaWRlIENPTU1FTlQgdGFncykKKyAgICAgICAgICB9CiAgICAgICAKLSAgICAgIC8vIElm
IHRoZXJlIHdhcyBubyBVUkwgb3IgdHlwZSBkZWZpbmVkIGluIEVNQkVELCB0cnkgdGhlIE9CSkVD
VCB0YWcuCi0gICAgICBpZiAodXJsLmlzRW1wdHkoKSkKLSAgICAgICAgICB1cmwgPSBvLT51cmw7
Ci0gICAgICBpZiAoc2VydmljZVR5cGUuaXNFbXB0eSgpKQotICAgICAgICAgIHNlcnZpY2VUeXBl
ID0gby0+c2VydmljZVR5cGU7Ci0gICAgICAKLSAgICAgIEhhc2hTZXQ8U3RyaW5nSW1wbCosIENh
c2VJbnNlbnNpdGl2ZUhhc2g+IHVuaXF1ZVBhcmFtTmFtZXM7Ci0gICAgICAKLSAgICAgIC8vIFNj
YW4gdGhlIFBBUkFNIGNoaWxkcmVuLgotICAgICAgLy8gR2V0IHRoZSBVUkwgYW5kIHR5cGUgZnJv
bSB0aGUgcGFyYW1zIGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSB0aGVtLgotICAgICAgLy8gR2V0
IHRoZSBhdHRyaWJ1dGVzIGZyb20gdGhlIHBhcmFtcyBpZiB0aGVyZSBpcyBubyBFTUJFRCB0YWcu
Ci0gICAgICBOb2RlICpjaGlsZCA9IG8tPmZpcnN0Q2hpbGQoKTsKLSAgICAgIHdoaWxlIChjaGls
ZCAmJiAodXJsLmlzRW1wdHkoKSB8fCBzZXJ2aWNlVHlwZS5pc0VtcHR5KCkgfHwgIWVtYmVkKSkg
ewotICAgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZShwYXJhbVRhZykpIHsKLSAgICAgICAg
ICAgICAgSFRNTFBhcmFtRWxlbWVudCogcCA9IHN0YXRpY19jYXN0PEhUTUxQYXJhbUVsZW1lbnQq
PihjaGlsZCk7Ci0gICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gcC0+bmFtZSgpLmxvd2VyKCk7
Ci0gICAgICAgICAgICAgIGlmICh1cmwuaXNFbXB0eSgpICYmIChuYW1lID09ICJzcmMiIHx8IG5h
bWUgPT0gIm1vdmllIiB8fCBuYW1lID09ICJjb2RlIiB8fCBuYW1lID09ICJ1cmwiKSkKLSAgICAg
ICAgICAgICAgICAgIHVybCA9IHAtPnZhbHVlKCk7Ci0gICAgICAgICAgICAgIGlmIChzZXJ2aWNl
VHlwZS5pc0VtcHR5KCkgJiYgbmFtZSA9PSAidHlwZSIpIHsKLSAgICAgICAgICAgICAgICAgIHNl
cnZpY2VUeXBlID0gcC0+dmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgIGludCBwb3MgPSBzZXJ2
aWNlVHlwZS5maW5kKCI7Iik7Ci0gICAgICAgICAgICAgICAgICBpZiAocG9zICE9IC0xKQotICAg
ICAgICAgICAgICAgICAgICAgIHNlcnZpY2VUeXBlID0gc2VydmljZVR5cGUubGVmdChwb3MpOwot
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmICghZW1iZWQgJiYgIW5hbWUuaXNFbXB0
eSgpKSB7Ci0gICAgICAgICAgICAgICAgICB1bmlxdWVQYXJhbU5hbWVzLmFkZChwLT5uYW1lKCku
aW1wbCgpKTsKLSAgICAgICAgICAgICAgICAgIHBhcmFtTmFtZXMuYXBwZW5kKHAtPm5hbWUoKSk7
Ci0gICAgICAgICAgICAgICAgICBwYXJhbVZhbHVlcy5hcHBlbmQocC0+dmFsdWUoKSk7CisgICAg
ICAgICAgLy8gVXNlIHRoZSBhdHRyaWJ1dGVzIGZyb20gdGhlIEVNQkVEIHRhZyBpbnN0ZWFkIG9m
IHRoZSBPQkpFQ1QgdGFnIGluY2x1ZGluZyBXSURUSCBhbmQgSEVJR0hULgorICAgICAgICAgIEhU
TUxFbGVtZW50ICplbWJlZE9yT2JqZWN0OworICAgICAgICAgIGlmIChlbWJlZCkgeworICAgICAg
ICAgICAgICBlbWJlZE9yT2JqZWN0ID0gKEhUTUxFbGVtZW50ICopZW1iZWQ7CisgICAgICAgICAg
ICAgIFN0cmluZyBhdHRyaWJ1dGUgPSBlbWJlZE9yT2JqZWN0LT5nZXRBdHRyaWJ1dGUod2lkdGhB
dHRyKTsKKyAgICAgICAgICAgICAgaWYgKCFhdHRyaWJ1dGUuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgICAgICAgby0+c2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgYXR0cmlidXRlKTsKKyAgICAgICAg
ICAgICAgYXR0cmlidXRlID0gZW1iZWRPck9iamVjdC0+Z2V0QXR0cmlidXRlKGhlaWdodEF0dHIp
OworICAgICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAg
ICAgICBvLT5zZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgYXR0cmlidXRlKTsKKyAgICAgICAgICAg
ICAgdXJsID0gZW1iZWQtPnVybDsKKyAgICAgICAgICAgICAgc2VydmljZVR5cGUgPSBlbWJlZC0+
c2VydmljZVR5cGU7CisgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgIGVtYmVkT3JPYmpl
Y3QgPSAoSFRNTEVsZW1lbnQgKilvOworICAgICAgCisgICAgICAgICAgLy8gSWYgdGhlcmUgd2Fz
IG5vIFVSTCBvciB0eXBlIGRlZmluZWQgaW4gRU1CRUQsIHRyeSB0aGUgT0JKRUNUIHRhZy4KKyAg
ICAgICAgICBpZiAodXJsLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgdXJsID0gby0+dXJsOwor
ICAgICAgICAgIGlmIChzZXJ2aWNlVHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgIHNlcnZp
Y2VUeXBlID0gby0+c2VydmljZVR5cGU7CisgICAgICAKKyAgICAgICAgICBIYXNoU2V0PFN0cmlu
Z0ltcGwqLCBDYXNlSW5zZW5zaXRpdmVIYXNoPiB1bmlxdWVQYXJhbU5hbWVzOworICAgICAgCisg
ICAgICAgICAgLy8gU2NhbiB0aGUgUEFSQU0gY2hpbGRyZW4uCisgICAgICAgICAgLy8gR2V0IHRo
ZSBVUkwgYW5kIHR5cGUgZnJvbSB0aGUgcGFyYW1zIGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSB0
aGVtLgorICAgICAgICAgIC8vIEdldCB0aGUgYXR0cmlidXRlcyBmcm9tIHRoZSBwYXJhbXMgaWYg
dGhlcmUgaXMgbm8gRU1CRUQgdGFnLgorICAgICAgICAgIE5vZGUgKmNoaWxkID0gby0+Zmlyc3RD
aGlsZCgpOworICAgICAgICAgIHdoaWxlIChjaGlsZCAmJiAodXJsLmlzRW1wdHkoKSB8fCBzZXJ2
aWNlVHlwZS5pc0VtcHR5KCkgfHwgIWVtYmVkKSkgeworICAgICAgICAgICAgICBpZiAoY2hpbGQt
Pmhhc1RhZ05hbWUocGFyYW1UYWcpKSB7CisgICAgICAgICAgICAgICAgICBIVE1MUGFyYW1FbGVt
ZW50KiBwID0gc3RhdGljX2Nhc3Q8SFRNTFBhcmFtRWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAg
ICAgICAgICAgIFN0cmluZyBuYW1lID0gcC0+bmFtZSgpLmxvd2VyKCk7CisgICAgICAgICAgICAg
ICAgICBpZiAodXJsLmlzRW1wdHkoKSAmJiAobmFtZSA9PSAic3JjIiB8fCBuYW1lID09ICJtb3Zp
ZSIgfHwgbmFtZSA9PSAiY29kZSIgfHwgbmFtZSA9PSAidXJsIikpCisgICAgICAgICAgICAgICAg
ICAgICAgdXJsID0gcC0+dmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgIGlmIChzZXJ2aWNlVHlw
ZS5pc0VtcHR5KCkgJiYgbmFtZSA9PSAidHlwZSIpIHsKKyAgICAgICAgICAgICAgICAgICAgICBz
ZXJ2aWNlVHlwZSA9IHAtPnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9
IHNlcnZpY2VUeXBlLmZpbmQoIjsiKTsKKyAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zICE9
IC0xKQorICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlVHlwZSA9IHNlcnZpY2VUeXBl
LmxlZnQocG9zKTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGlmICgh
ZW1iZWQgJiYgIW5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgdW5pcXVl
UGFyYW1OYW1lcy5hZGQocC0+bmFtZSgpLmltcGwoKSk7CisgICAgICAgICAgICAgICAgICAgICAg
cGFyYW1OYW1lcy5hcHBlbmQocC0+bmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICBwYXJh
bVZhbHVlcy5hcHBlbmQocC0+dmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKTsKICAg
ICAgICAgICB9Ci0gICAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKTsKLSAgICAg
IH0KICAgICAgIAotICAgICAgLy8gV2hlbiBPQkpFQ1QgaXMgdXNlZCBmb3IgYW4gYXBwbGV0IHZp
YSBTdW4ncyBKYXZhIHBsdWdpbiwgdGhlIENPREVCQVNFIGF0dHJpYnV0ZSBpbiB0aGUgdGFnCi0g
ICAgICAvLyBwb2ludHMgdG8gdGhlIEphdmEgcGx1Z2luIGl0c2VsZiAoYW4gQWN0aXZlWCBjb21w
b25lbnQpIHdoaWxlIHRoZSBhY3R1YWwgYXBwbGV0IENPREVCQVNFIGlzCi0gICAgICAvLyBpbiBh
IFBBUkFNIHRhZy4gU2VlIDxodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL3BsdWdpbi8xLjIv
ZG9jcy90YWdzLmh0bWw+LiBUaGlzIG1lYW5zCi0gICAgICAvLyB3ZSBoYXZlIHRvIGV4cGxpY2l0
bHkgc3VwcHJlc3MgdGhlIHRhZydzIENPREVCQVNFIGF0dHJpYnV0ZSBpZiB0aGVyZSBpcyBub25l
IGluIGEgUEFSQU0sCi0gICAgICAvLyBlbHNlIG91ciBKYXZhIHBsdWdpbiB3aWxsIG1pc2ludGVy
cHJldCBpdC4gWzQwMDQ1MzFdCi0gICAgICBTdHJpbmcgY29kZWJhc2U7Ci0gICAgICBpZiAoIWVt
YmVkICYmIHNlcnZpY2VUeXBlLmxvd2VyKCkgPT0gImFwcGxpY2F0aW9uL3gtamF2YS1hcHBsZXQi
KSB7Ci0gICAgICAgICAgY29kZWJhc2UgPSAiY29kZWJhc2UiOwotICAgICAgICAgIHVuaXF1ZVBh
cmFtTmFtZXMuYWRkKGNvZGViYXNlLmltcGwoKSk7IC8vIHByZXRlbmQgd2UgZm91bmQgaXQgaW4g
YSBQQVJBTSBhbHJlYWR5Ci0gICAgICB9CisgICAgICAgICAgLy8gV2hlbiBPQkpFQ1QgaXMgdXNl
ZCBmb3IgYW4gYXBwbGV0IHZpYSBTdW4ncyBKYXZhIHBsdWdpbiwgdGhlIENPREVCQVNFIGF0dHJp
YnV0ZSBpbiB0aGUgdGFnCisgICAgICAgICAgLy8gcG9pbnRzIHRvIHRoZSBKYXZhIHBsdWdpbiBp
dHNlbGYgKGFuIEFjdGl2ZVggY29tcG9uZW50KSB3aGlsZSB0aGUgYWN0dWFsIGFwcGxldCBDT0RF
QkFTRSBpcworICAgICAgICAgIC8vIGluIGEgUEFSQU0gdGFnLiBTZWUgPGh0dHA6Ly9qYXZhLnN1
bi5jb20vcHJvZHVjdHMvcGx1Z2luLzEuMi9kb2NzL3RhZ3MuaHRtbD4uIFRoaXMgbWVhbnMKKyAg
ICAgICAgICAvLyB3ZSBoYXZlIHRvIGV4cGxpY2l0bHkgc3VwcHJlc3MgdGhlIHRhZydzIENPREVC
QVNFIGF0dHJpYnV0ZSBpZiB0aGVyZSBpcyBub25lIGluIGEgUEFSQU0sCisgICAgICAgICAgLy8g
ZWxzZSBvdXIgSmF2YSBwbHVnaW4gd2lsbCBtaXNpbnRlcnByZXQgaXQuIFs0MDA0NTMxXQorICAg
ICAgICAgIFN0cmluZyBjb2RlYmFzZTsKKyAgICAgICAgICBpZiAoIWVtYmVkICYmIHNlcnZpY2VU
eXBlLmxvd2VyKCkgPT0gImFwcGxpY2F0aW9uL3gtamF2YS1hcHBsZXQiKSB7CisgICAgICAgICAg
ICAgIGNvZGViYXNlID0gImNvZGViYXNlIjsKKyAgICAgICAgICAgICAgdW5pcXVlUGFyYW1OYW1l
cy5hZGQoY29kZWJhc2UuaW1wbCgpKTsgLy8gcHJldGVuZCB3ZSBmb3VuZCBpdCBpbiBhIFBBUkFN
IGFscmVhZHkKKyAgICAgICAgICB9CiAgICAgICAKLSAgICAgIC8vIFR1cm4gdGhlIGF0dHJpYnV0
ZXMgb2YgZWl0aGVyIHRoZSBFTUJFRCB0YWcgb3IgT0JKRUNUIHRhZyBpbnRvIGFycmF5cywgYnV0
IGRvbid0IG92ZXJyaWRlIFBBUkFNIHZhbHVlcy4KLSAgICAgIE5hbWVkQXR0ck1hcCogYXR0cmli
dXRlcyA9IGVtYmVkT3JPYmplY3QtPmF0dHJpYnV0ZXMoKTsKLSAgICAgIGlmIChhdHRyaWJ1dGVz
KSB7Ci0gICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF0dHJpYnV0ZXMtPmxlbmd0
aCgpOyArK2kpIHsKLSAgICAgICAgICAgICAgQXR0cmlidXRlKiBpdCA9IGF0dHJpYnV0ZXMtPmF0
dHJpYnV0ZUl0ZW0oaSk7Ci0gICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9
IGl0LT5uYW1lKCkubG9jYWxOYW1lKCk7Ci0gICAgICAgICAgICAgIGlmIChlbWJlZCB8fCAhdW5p
cXVlUGFyYW1OYW1lcy5jb250YWlucyhuYW1lLmltcGwoKSkpIHsKLSAgICAgICAgICAgICAgICAg
IHBhcmFtTmFtZXMuYXBwZW5kKG5hbWUuZG9tU3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAg
cGFyYW1WYWx1ZXMuYXBwZW5kKGl0LT52YWx1ZSgpLmRvbVN0cmluZygpKTsKKyAgICAgICAgICAv
LyBUdXJuIHRoZSBhdHRyaWJ1dGVzIG9mIGVpdGhlciB0aGUgRU1CRUQgdGFnIG9yIE9CSkVDVCB0
YWcgaW50byBhcnJheXMsIGJ1dCBkb24ndCBvdmVycmlkZSBQQVJBTSB2YWx1ZXMuCisgICAgICAg
ICAgTmFtZWRBdHRyTWFwKiBhdHRyaWJ1dGVzID0gZW1iZWRPck9iamVjdC0+YXR0cmlidXRlcygp
OworICAgICAgICAgIGlmIChhdHRyaWJ1dGVzKSB7CisgICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAg
ICAgICBBdHRyaWJ1dGUqIGl0ID0gYXR0cmlidXRlcy0+YXR0cmlidXRlSXRlbShpKTsKKyAgICAg
ICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGl0LT5uYW1lKCkubG9jYWxO
YW1lKCk7CisgICAgICAgICAgICAgICAgICBpZiAoZW1iZWQgfHwgIXVuaXF1ZVBhcmFtTmFtZXMu
Y29udGFpbnMobmFtZS5pbXBsKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgcGFyYW1OYW1l
cy5hcHBlbmQobmFtZS5kb21TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgcGFyYW1W
YWx1ZXMuYXBwZW5kKGl0LT52YWx1ZSgpLmRvbVN0cmluZygpKTsKKyAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgfQogICAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIAotICAgICAg
Ly8gSWYgd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBhIHR5cGUsIHRyeSB0byBtYXAgZnJvbSBhIHNwZWNp
ZmljIENMQVNTSUQgdG8gYSB0eXBlLgotICAgICAgaWYgKHNlcnZpY2VUeXBlLmlzRW1wdHkoKSAm
JiAhby0+Y2xhc3NJZC5pc0VtcHR5KCkpCi0gICAgICAgICAgbWFwQ2xhc3NJZFRvU2VydmljZVR5
cGUoby0+Y2xhc3NJZCwgc2VydmljZVR5cGUpOwogICAgICAgCi0gICAgICAvLyBJZiBubyBVUkwg
YW5kIHR5cGUsIGFib3J0LgotICAgICAgaWYgKHVybC5pc0VtcHR5KCkgJiYgc2VydmljZVR5cGUu
aXNFbXB0eSgpKQotICAgICAgICAgIHJldHVybjsKLSAgICAgIGlmICghaXNVUkxBbGxvd2VkKGRv
Y3VtZW50KCksIHVybCkpCi0gICAgICAgICAgcmV0dXJuOwotCisgICAgICAgICAgLy8gSWYgd2Ug
c3RpbGwgZG9uJ3QgaGF2ZSBhIHR5cGUsIHRyeSB0byBtYXAgZnJvbSBhIHNwZWNpZmljIENMQVNT
SUQgdG8gYSB0eXBlLgorICAgICAgICAgIGlmIChzZXJ2aWNlVHlwZS5pc0VtcHR5KCkgJiYgIW8t
PmNsYXNzSWQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICBtYXBDbGFzc0lkVG9TZXJ2aWNlVHlw
ZShvLT5jbGFzc0lkLCBzZXJ2aWNlVHlwZSk7CisgICAgICAKKyAgICAgICAgICAvLyBJZiBubyBV
UkwgYW5kIHR5cGUsIGFib3J0LgorICAgICAgICAgIGlmICh1cmwuaXNFbXB0eSgpICYmIHNlcnZp
Y2VUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIGlmICgh
aXNVUkxBbGxvd2VkKGRvY3VtZW50KCksIHVybCkpCisgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICBpZiAoZnJhbWUtPnJlcXVlc3RPYmplY3QodGhpcywgdXJsLCBBdG9taWNTdHJpbmco
by0+bmFtZSgpKSwgc2VydmljZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKSkKKyAgICAg
ICAgICAgICAgc3VjY2VzcyA9IHRydWU7CisgICAgICB9CiAgICAgICAvLyBGaW5kIG91dCBpZiB3
ZSBzdXBwb3J0IGZhbGxiYWNrIGNvbnRlbnQuCiAgICAgICBtX2hhc0ZhbGxiYWNrQ29udGVudCA9
IGZhbHNlOwogICAgICAgZm9yIChOb2RlICpjaGlsZCA9IG8tPmZpcnN0Q2hpbGQoKTsgY2hpbGQg
JiYgIW1faGFzRmFsbGJhY2tDb250ZW50OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7
CkBAIC0yMTIsNyArMjE3LDYgQEAgdm9pZCBSZW5kZXJQYXJ0T2JqZWN0Ojp1cGRhdGVXaWRnZXQo
KQogICAgICAgICAgICAgICAoY2hpbGQtPmlzVGV4dE5vZGUoKSAmJiAhc3RhdGljX2Nhc3Q8VGV4
dCo+KGNoaWxkKS0+Y29udGFpbnNPbmx5V2hpdGVzcGFjZSgpKSkKICAgICAgICAgICAgICAgbV9o
YXNGYWxsYmFja0NvbnRlbnQgPSB0cnVlOwogICAgICAgfQotICAgICAgYm9vbCBzdWNjZXNzID0g
ZnJhbWUtPnJlcXVlc3RPYmplY3QodGhpcywgdXJsLCBBdG9taWNTdHJpbmcoby0+bmFtZSgpKSwg
c2VydmljZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKICAgICAgIGlmICghc3VjY2Vz
cyAmJiBtX2hhc0ZhbGxiYWNrQ29udGVudCkKICAgICAgICAgICBvLT5yZW5kZXJGYWxsYmFja0Nv
bnRlbnQoKTsKICAgfSBlbHNlIGlmIChlbGVtZW50KCktPmhhc1RhZ05hbWUoZW1iZWRUYWcpKSB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9166</attachid>
            <date>2006-07-03 06:45:11 -0700</date>
            <delta_ts>2006-07-08 09:36:15 -0700</delta_ts>
            <desc>improved patch</desc>
            <filename>9577-3.diff</filename>
            <type>text/plain</type>
            <size>12572</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTE0NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDYtMDctMDMgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWd6
aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU3NworICAgICAgICBGYWxsYmFj
ayBmb3IgPG9iamVjdD4gbm90IHJlbmRlcmVkIGlmIHBsdWctaW4gdW5hdmFpbGFibGUKKyAgICAg
ICAgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM2Cisg
ICAgICAgIDxwPiBlbGVtZW50cyB3aXRoaW4gPG9iamVjdD4gYXJlIG5vdCByZW5kZXJlZAorCisg
ICAgICAgIFJldmVydCB0byBub3JtYWwgY3JlYXRlUmVuZGVyZXJJZk5lZWRlZCBiZWhhdmlvdXIg
YW5kIHRyeSB0bworICAgICAgICByZW5kZXIgZmFsbGJhY2sgY29udGVudCBpZiBwbHVnaW5zIGFy
ZSBkaXNhYmxlZCwgdGhlIG9iamVjdAorICAgICAgICBsYWNrcyB1cmwgYW5kIHNlcnZpY2V0eXBl
LCBvciB0aGUgcmVxdWVzdCBmb3IgdGhlIHJlc291cmNlIGZhaWxzLgorCisgICAgICAgICogaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclBhcnRPYmplY3Q6OnVwZGF0ZVdpZGdldCk6CisKIDIwMDYtMDctMDIg
IE1pa2UgRW1tZWwgIDxtaWtlLmVtbWVsQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBh
bmQgbGFuZGVkIGJ5IGdnYXJlbi4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAko
cmV2aXNpb24gMTUxNDUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTksMTggKzE1OSw2IEBAIERvY3VtZW50KiBIVE1MT2JqZWN0RWxl
bWVudDo6Y29udGVudERvY3UKICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBIVE1MT2JqZWN0RWxl
bWVudDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSAqc3R5bGUpCi17Ci0gICAgaWYgKG1f
dXNlRmFsbGJhY2tDb250ZW50IHx8IGlzSW1hZ2VUeXBlKCkpCi0gICAgICAgIHJldHVybiBIVE1M
UGx1Z0luRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7Ci0KLSAgICBGcmFtZSAqZnJh
bWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOwotICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5wbHVn
aW5zRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcmV0dXJuIHRy
dWU7Ci19Ci0KIFJlbmRlck9iamVjdCAqSFRNTE9iamVjdEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hICphcmVuYSwgUmVuZGVyU3R5bGUgKnN0eWxlKQogewogICAgIGlmIChtX3Vz
ZUZhbGxiYWNrQ29udGVudCkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCShyZXZpc2lv
biAxNTE0NSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00OSw3ICs0OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCk7Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKICAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5k
ZXJTdHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZVJlbmRlcmVyKCk7CiAgICAgdmlydHVh
bCB2b2lkIGRldGFjaCgpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5j
cHAJKHJldmlzaW9uIDE1MTQ1KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSwxMDAgKzExMSw5OCBAQCB2b2lkIFJlbmRlclBh
cnRPYmplY3Q6OnVwZGF0ZVdpZGdldCgpCiAKICAgICAgIGlmICghby0+aXNDb21wbGV0ZSgpKQog
ICAgICAgICByZXR1cm47Ci0gICAgICAvLyBDaGVjayBmb3IgYSBjaGlsZCBFTUJFRCB0YWcuCi0g
ICAgICBIVE1MRW1iZWRFbGVtZW50KiBlbWJlZCA9IDA7Ci0gICAgICBmb3IgKE5vZGUqIGNoaWxk
ID0gby0+Zmlyc3RDaGlsZCgpOyBjaGlsZDspIHsKLSAgICAgICAgICBpZiAoY2hpbGQtPmhhc1Rh
Z05hbWUoZW1iZWRUYWcpKSB7Ci0gICAgICAgICAgICAgIGVtYmVkID0gc3RhdGljX2Nhc3Q8SFRN
TEVtYmVkRWxlbWVudCo+KGNoaWxkKTsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
fSBlbHNlIGlmIChjaGlsZC0+aGFzVGFnTmFtZShvYmplY3RUYWcpKQotICAgICAgICAgICAgICBj
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpOyAgICAgICAgIC8vIERvbid0IGRlc2NlbmQgaW50
byBuZXN0ZWQgT0JKRUNUIHRhZ3MKLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIGNoaWxk
ID0gY2hpbGQtPnRyYXZlcnNlTmV4dE5vZGUobyk7ICAgLy8gT3RoZXJ3aXNlIGRlc2NlbmQgKEVN
QkVEcyBtYXkgYmUgaW5zaWRlIENPTU1FTlQgdGFncykKLSAgICAgIH0KLSAgICAgIAotICAgICAg
Ly8gVXNlIHRoZSBhdHRyaWJ1dGVzIGZyb20gdGhlIEVNQkVEIHRhZyBpbnN0ZWFkIG9mIHRoZSBP
QkpFQ1QgdGFnIGluY2x1ZGluZyBXSURUSCBhbmQgSEVJR0hULgotICAgICAgSFRNTEVsZW1lbnQg
KmVtYmVkT3JPYmplY3Q7Ci0gICAgICBpZiAoZW1iZWQpIHsKLSAgICAgICAgICBlbWJlZE9yT2Jq
ZWN0ID0gKEhUTUxFbGVtZW50ICopZW1iZWQ7Ci0gICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZSA9
IGVtYmVkT3JPYmplY3QtPmdldEF0dHJpYnV0ZSh3aWR0aEF0dHIpOwotICAgICAgICAgIGlmICgh
YXR0cmlidXRlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgby0+c2V0QXR0cmlidXRlKHdpZHRo
QXR0ciwgYXR0cmlidXRlKTsKLSAgICAgICAgICBhdHRyaWJ1dGUgPSBlbWJlZE9yT2JqZWN0LT5n
ZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0cik7Ci0gICAgICAgICAgaWYgKCFhdHRyaWJ1dGUuaXNFbXB0
eSgpKQotICAgICAgICAgICAgICBvLT5zZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgYXR0cmlidXRl
KTsKLSAgICAgICAgICB1cmwgPSBlbWJlZC0+dXJsOwotICAgICAgICAgIHNlcnZpY2VUeXBlID0g
ZW1iZWQtPnNlcnZpY2VUeXBlOwotICAgICAgfSBlbHNlCi0gICAgICAgICAgZW1iZWRPck9iamVj
dCA9IChIVE1MRWxlbWVudCAqKW87CisgICAgICBpZiAoZnJhbWUtPnBsdWdpbnNFbmFibGVkKCkp
IHsKKyAgICAgICAgICAvLyBDaGVjayBmb3IgYSBjaGlsZCBFTUJFRCB0YWcuCisgICAgICAgICAg
SFRNTEVtYmVkRWxlbWVudCogZW1iZWQgPSAwOworICAgICAgICAgIGZvciAoTm9kZSogY2hpbGQg
PSBvLT5maXJzdENoaWxkKCk7IGNoaWxkOykgeworICAgICAgICAgICAgICBpZiAoY2hpbGQtPmhh
c1RhZ05hbWUoZW1iZWRUYWcpKSB7CisgICAgICAgICAgICAgICAgICBlbWJlZCA9IHN0YXRpY19j
YXN0PEhUTUxFbWJlZEVsZW1lbnQqPihjaGlsZCk7CisgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZC0+aGFzVGFnTmFtZShvYmplY3RUYWcpKQor
ICAgICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKTsgICAgICAgICAv
LyBEb24ndCBkZXNjZW5kIGludG8gbmVzdGVkIE9CSkVDVCB0YWdzCisgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgIGNoaWxkID0gY2hpbGQtPnRyYXZlcnNlTmV4dE5vZGUobyk7
ICAgLy8gT3RoZXJ3aXNlIGRlc2NlbmQgKEVNQkVEcyBtYXkgYmUgaW5zaWRlIENPTU1FTlQgdGFn
cykKKyAgICAgICAgICB9CiAgICAgICAKLSAgICAgIC8vIElmIHRoZXJlIHdhcyBubyBVUkwgb3Ig
dHlwZSBkZWZpbmVkIGluIEVNQkVELCB0cnkgdGhlIE9CSkVDVCB0YWcuCi0gICAgICBpZiAodXJs
LmlzRW1wdHkoKSkKLSAgICAgICAgICB1cmwgPSBvLT51cmw7Ci0gICAgICBpZiAoc2VydmljZVR5
cGUuaXNFbXB0eSgpKQotICAgICAgICAgIHNlcnZpY2VUeXBlID0gby0+c2VydmljZVR5cGU7Ci0g
ICAgICAKLSAgICAgIEhhc2hTZXQ8U3RyaW5nSW1wbCosIENhc2VJbnNlbnNpdGl2ZUhhc2g+IHVu
aXF1ZVBhcmFtTmFtZXM7Ci0gICAgICAKLSAgICAgIC8vIFNjYW4gdGhlIFBBUkFNIGNoaWxkcmVu
LgotICAgICAgLy8gR2V0IHRoZSBVUkwgYW5kIHR5cGUgZnJvbSB0aGUgcGFyYW1zIGlmIHdlIGRv
bid0IGFscmVhZHkgaGF2ZSB0aGVtLgotICAgICAgLy8gR2V0IHRoZSBhdHRyaWJ1dGVzIGZyb20g
dGhlIHBhcmFtcyBpZiB0aGVyZSBpcyBubyBFTUJFRCB0YWcuCi0gICAgICBOb2RlICpjaGlsZCA9
IG8tPmZpcnN0Q2hpbGQoKTsKLSAgICAgIHdoaWxlIChjaGlsZCAmJiAodXJsLmlzRW1wdHkoKSB8
fCBzZXJ2aWNlVHlwZS5pc0VtcHR5KCkgfHwgIWVtYmVkKSkgewotICAgICAgICAgIGlmIChjaGls
ZC0+aGFzVGFnTmFtZShwYXJhbVRhZykpIHsKLSAgICAgICAgICAgICAgSFRNTFBhcmFtRWxlbWVu
dCogcCA9IHN0YXRpY19jYXN0PEhUTUxQYXJhbUVsZW1lbnQqPihjaGlsZCk7Ci0gICAgICAgICAg
ICAgIFN0cmluZyBuYW1lID0gcC0+bmFtZSgpLmxvd2VyKCk7Ci0gICAgICAgICAgICAgIGlmICh1
cmwuaXNFbXB0eSgpICYmIChuYW1lID09ICJzcmMiIHx8IG5hbWUgPT0gIm1vdmllIiB8fCBuYW1l
ID09ICJjb2RlIiB8fCBuYW1lID09ICJ1cmwiKSkKLSAgICAgICAgICAgICAgICAgIHVybCA9IHAt
PnZhbHVlKCk7Ci0gICAgICAgICAgICAgIGlmIChzZXJ2aWNlVHlwZS5pc0VtcHR5KCkgJiYgbmFt
ZSA9PSAidHlwZSIpIHsKLSAgICAgICAgICAgICAgICAgIHNlcnZpY2VUeXBlID0gcC0+dmFsdWUo
KTsKLSAgICAgICAgICAgICAgICAgIGludCBwb3MgPSBzZXJ2aWNlVHlwZS5maW5kKCI7Iik7Ci0g
ICAgICAgICAgICAgICAgICBpZiAocG9zICE9IC0xKQotICAgICAgICAgICAgICAgICAgICAgIHNl
cnZpY2VUeXBlID0gc2VydmljZVR5cGUubGVmdChwb3MpOwotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIGlmICghZW1iZWQgJiYgIW5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAg
ICAgICB1bmlxdWVQYXJhbU5hbWVzLmFkZChwLT5uYW1lKCkuaW1wbCgpKTsKLSAgICAgICAgICAg
ICAgICAgIHBhcmFtTmFtZXMuYXBwZW5kKHAtPm5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgICBw
YXJhbVZhbHVlcy5hcHBlbmQocC0+dmFsdWUoKSk7CisgICAgICAgICAgLy8gVXNlIHRoZSBhdHRy
aWJ1dGVzIGZyb20gdGhlIEVNQkVEIHRhZyBpbnN0ZWFkIG9mIHRoZSBPQkpFQ1QgdGFnIGluY2x1
ZGluZyBXSURUSCBhbmQgSEVJR0hULgorICAgICAgICAgIEhUTUxFbGVtZW50ICplbWJlZE9yT2Jq
ZWN0OworICAgICAgICAgIGlmIChlbWJlZCkgeworICAgICAgICAgICAgICBlbWJlZE9yT2JqZWN0
ID0gKEhUTUxFbGVtZW50ICopZW1iZWQ7CisgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGUg
PSBlbWJlZE9yT2JqZWN0LT5nZXRBdHRyaWJ1dGUod2lkdGhBdHRyKTsKKyAgICAgICAgICAgICAg
aWYgKCFhdHRyaWJ1dGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgby0+c2V0QXR0cmli
dXRlKHdpZHRoQXR0ciwgYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgYXR0cmlidXRlID0gZW1i
ZWRPck9iamVjdC0+Z2V0QXR0cmlidXRlKGhlaWdodEF0dHIpOworICAgICAgICAgICAgICBpZiAo
IWF0dHJpYnV0ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICBvLT5zZXRBdHRyaWJ1dGUo
aGVpZ2h0QXR0ciwgYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgdXJsID0gZW1iZWQtPnVybDsK
KyAgICAgICAgICAgICAgc2VydmljZVR5cGUgPSBlbWJlZC0+c2VydmljZVR5cGU7CisgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgIGVtYmVkT3JPYmplY3QgPSAoSFRNTEVsZW1lbnQgKilv
OworICAgICAgICAgIAorICAgICAgICAgIC8vIElmIHRoZXJlIHdhcyBubyBVUkwgb3IgdHlwZSBk
ZWZpbmVkIGluIEVNQkVELCB0cnkgdGhlIE9CSkVDVCB0YWcuCisgICAgICAgICAgaWYgKHVybC5p
c0VtcHR5KCkpCisgICAgICAgICAgICAgIHVybCA9IG8tPnVybDsKKyAgICAgICAgICBpZiAoc2Vy
dmljZVR5cGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICBzZXJ2aWNlVHlwZSA9IG8tPnNlcnZp
Y2VUeXBlOworICAgICAgCisgICAgICAgICAgSGFzaFNldDxTdHJpbmdJbXBsKiwgQ2FzZUluc2Vu
c2l0aXZlSGFzaD4gdW5pcXVlUGFyYW1OYW1lczsKKyAgICAgIAorICAgICAgICAgIC8vIFNjYW4g
dGhlIFBBUkFNIGNoaWxkcmVuLgorICAgICAgICAgIC8vIEdldCB0aGUgVVJMIGFuZCB0eXBlIGZy
b20gdGhlIHBhcmFtcyBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgdGhlbS4KKyAgICAgICAgICAv
LyBHZXQgdGhlIGF0dHJpYnV0ZXMgZnJvbSB0aGUgcGFyYW1zIGlmIHRoZXJlIGlzIG5vIEVNQkVE
IHRhZy4KKyAgICAgICAgICBOb2RlICpjaGlsZCA9IG8tPmZpcnN0Q2hpbGQoKTsKKyAgICAgICAg
ICB3aGlsZSAoY2hpbGQgJiYgKHVybC5pc0VtcHR5KCkgfHwgc2VydmljZVR5cGUuaXNFbXB0eSgp
IHx8ICFlbWJlZCkpIHsKKyAgICAgICAgICAgICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1lKHBhcmFt
VGFnKSkgeworICAgICAgICAgICAgICAgICAgSFRNTFBhcmFtRWxlbWVudCogcCA9IHN0YXRpY19j
YXN0PEhUTUxQYXJhbUVsZW1lbnQqPihjaGlsZCk7CisgICAgICAgICAgICAgICAgICBTdHJpbmcg
bmFtZSA9IHAtPm5hbWUoKS5sb3dlcigpOworICAgICAgICAgICAgICAgICAgaWYgKHVybC5pc0Vt
cHR5KCkgJiYgKG5hbWUgPT0gInNyYyIgfHwgbmFtZSA9PSAibW92aWUiIHx8IG5hbWUgPT0gImNv
ZGUiIHx8IG5hbWUgPT0gInVybCIpKQorICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHAtPnZh
bHVlKCk7CisgICAgICAgICAgICAgICAgICBpZiAoc2VydmljZVR5cGUuaXNFbXB0eSgpICYmIG5h
bWUgPT0gInR5cGUiKSB7CisgICAgICAgICAgICAgICAgICAgICAgc2VydmljZVR5cGUgPSBwLT52
YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSBzZXJ2aWNlVHlwZS5maW5k
KCI7Iik7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyAhPSAtMSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VydmljZVR5cGUgPSBzZXJ2aWNlVHlwZS5sZWZ0KHBvcyk7CisgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBpZiAoIWVtYmVkICYmICFuYW1lLmlz
RW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZVBhcmFtTmFtZXMuYWRkKHAt
Pm5hbWUoKS5pbXBsKCkpOworICAgICAgICAgICAgICAgICAgICAgIHBhcmFtTmFtZXMuYXBwZW5k
KHAtPm5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgcGFyYW1WYWx1ZXMuYXBwZW5kKHAt
PnZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCk7CiAgICAgICAgICAgfQotICAgICAg
ICAgIGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCk7Ci0gICAgICB9CiAgICAgICAKLSAgICAg
IC8vIFdoZW4gT0JKRUNUIGlzIHVzZWQgZm9yIGFuIGFwcGxldCB2aWEgU3VuJ3MgSmF2YSBwbHVn
aW4sIHRoZSBDT0RFQkFTRSBhdHRyaWJ1dGUgaW4gdGhlIHRhZwotICAgICAgLy8gcG9pbnRzIHRv
IHRoZSBKYXZhIHBsdWdpbiBpdHNlbGYgKGFuIEFjdGl2ZVggY29tcG9uZW50KSB3aGlsZSB0aGUg
YWN0dWFsIGFwcGxldCBDT0RFQkFTRSBpcwotICAgICAgLy8gaW4gYSBQQVJBTSB0YWcuIFNlZSA8
aHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9wbHVnaW4vMS4yL2RvY3MvdGFncy5odG1sPi4g
VGhpcyBtZWFucwotICAgICAgLy8gd2UgaGF2ZSB0byBleHBsaWNpdGx5IHN1cHByZXNzIHRoZSB0
YWcncyBDT0RFQkFTRSBhdHRyaWJ1dGUgaWYgdGhlcmUgaXMgbm9uZSBpbiBhIFBBUkFNLAotICAg
ICAgLy8gZWxzZSBvdXIgSmF2YSBwbHVnaW4gd2lsbCBtaXNpbnRlcnByZXQgaXQuIFs0MDA0NTMx
XQotICAgICAgU3RyaW5nIGNvZGViYXNlOwotICAgICAgaWYgKCFlbWJlZCAmJiBzZXJ2aWNlVHlw
ZS5sb3dlcigpID09ICJhcHBsaWNhdGlvbi94LWphdmEtYXBwbGV0IikgewotICAgICAgICAgIGNv
ZGViYXNlID0gImNvZGViYXNlIjsKLSAgICAgICAgICB1bmlxdWVQYXJhbU5hbWVzLmFkZChjb2Rl
YmFzZS5pbXBsKCkpOyAvLyBwcmV0ZW5kIHdlIGZvdW5kIGl0IGluIGEgUEFSQU0gYWxyZWFkeQot
ICAgICAgfQorICAgICAgICAgIC8vIFdoZW4gT0JKRUNUIGlzIHVzZWQgZm9yIGFuIGFwcGxldCB2
aWEgU3VuJ3MgSmF2YSBwbHVnaW4sIHRoZSBDT0RFQkFTRSBhdHRyaWJ1dGUgaW4gdGhlIHRhZwor
ICAgICAgICAgIC8vIHBvaW50cyB0byB0aGUgSmF2YSBwbHVnaW4gaXRzZWxmIChhbiBBY3RpdmVY
IGNvbXBvbmVudCkgd2hpbGUgdGhlIGFjdHVhbCBhcHBsZXQgQ09ERUJBU0UgaXMKKyAgICAgICAg
ICAvLyBpbiBhIFBBUkFNIHRhZy4gU2VlIDxodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL3Bs
dWdpbi8xLjIvZG9jcy90YWdzLmh0bWw+LiBUaGlzIG1lYW5zCisgICAgICAgICAgLy8gd2UgaGF2
ZSB0byBleHBsaWNpdGx5IHN1cHByZXNzIHRoZSB0YWcncyBDT0RFQkFTRSBhdHRyaWJ1dGUgaWYg
dGhlcmUgaXMgbm9uZSBpbiBhIFBBUkFNLAorICAgICAgICAgIC8vIGVsc2Ugb3VyIEphdmEgcGx1
Z2luIHdpbGwgbWlzaW50ZXJwcmV0IGl0LiBbNDAwNDUzMV0KKyAgICAgICAgICBTdHJpbmcgY29k
ZWJhc2U7CisgICAgICAgICAgaWYgKCFlbWJlZCAmJiBzZXJ2aWNlVHlwZS5sb3dlcigpID09ICJh
cHBsaWNhdGlvbi94LWphdmEtYXBwbGV0IikgeworICAgICAgICAgICAgICBjb2RlYmFzZSA9ICJj
b2RlYmFzZSI7CisgICAgICAgICAgICAgIHVuaXF1ZVBhcmFtTmFtZXMuYWRkKGNvZGViYXNlLmlt
cGwoKSk7IC8vIHByZXRlbmQgd2UgZm91bmQgaXQgaW4gYSBQQVJBTSBhbHJlYWR5CisgICAgICAg
ICAgfQogICAgICAgCi0gICAgICAvLyBUdXJuIHRoZSBhdHRyaWJ1dGVzIG9mIGVpdGhlciB0aGUg
RU1CRUQgdGFnIG9yIE9CSkVDVCB0YWcgaW50byBhcnJheXMsIGJ1dCBkb24ndCBvdmVycmlkZSBQ
QVJBTSB2YWx1ZXMuCi0gICAgICBOYW1lZEF0dHJNYXAqIGF0dHJpYnV0ZXMgPSBlbWJlZE9yT2Jq
ZWN0LT5hdHRyaWJ1dGVzKCk7Ci0gICAgICBpZiAoYXR0cmlidXRlcykgewotICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLT5sZW5ndGgoKTsgKytpKSB7Ci0gICAg
ICAgICAgICAgIEF0dHJpYnV0ZSogaXQgPSBhdHRyaWJ1dGVzLT5hdHRyaWJ1dGVJdGVtKGkpOwot
ICAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBpdC0+bmFtZSgpLmxvY2Fs
TmFtZSgpOwotICAgICAgICAgICAgICBpZiAoZW1iZWQgfHwgIXVuaXF1ZVBhcmFtTmFtZXMuY29u
dGFpbnMobmFtZS5pbXBsKCkpKSB7Ci0gICAgICAgICAgICAgICAgICBwYXJhbU5hbWVzLmFwcGVu
ZChuYW1lLmRvbVN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgIHBhcmFtVmFsdWVzLmFwcGVu
ZChpdC0+dmFsdWUoKS5kb21TdHJpbmcoKSk7CisgICAgICAgICAgLy8gVHVybiB0aGUgYXR0cmli
dXRlcyBvZiBlaXRoZXIgdGhlIEVNQkVEIHRhZyBvciBPQkpFQ1QgdGFnIGludG8gYXJyYXlzLCBi
dXQgZG9uJ3Qgb3ZlcnJpZGUgUEFSQU0gdmFsdWVzLgorICAgICAgICAgIE5hbWVkQXR0ck1hcCog
YXR0cmlidXRlcyA9IGVtYmVkT3JPYmplY3QtPmF0dHJpYnV0ZXMoKTsKKyAgICAgICAgICBpZiAo
YXR0cmlidXRlcykgeworICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXR0
cmlidXRlcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgQXR0cmlidXRlKiBp
dCA9IGF0dHJpYnV0ZXMtPmF0dHJpYnV0ZUl0ZW0oaSk7CisgICAgICAgICAgICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUgPSBpdC0+bmFtZSgpLmxvY2FsTmFtZSgpOworICAgICAgICAg
ICAgICAgICAgaWYgKGVtYmVkIHx8ICF1bmlxdWVQYXJhbU5hbWVzLmNvbnRhaW5zKG5hbWUuaW1w
bCgpKSkgeworICAgICAgICAgICAgICAgICAgICAgIHBhcmFtTmFtZXMuYXBwZW5kKG5hbWUuZG9t
U3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgIHBhcmFtVmFsdWVzLmFwcGVuZChpdC0+
dmFsdWUoKS5kb21TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
IH0KICAgICAgICAgICB9Ci0gICAgICB9CiAgICAgICAKLSAgICAgIC8vIElmIHdlIHN0aWxsIGRv
bid0IGhhdmUgYSB0eXBlLCB0cnkgdG8gbWFwIGZyb20gYSBzcGVjaWZpYyBDTEFTU0lEIHRvIGEg
dHlwZS4KLSAgICAgIGlmIChzZXJ2aWNlVHlwZS5pc0VtcHR5KCkgJiYgIW8tPmNsYXNzSWQuaXNF
bXB0eSgpKQotICAgICAgICAgIG1hcENsYXNzSWRUb1NlcnZpY2VUeXBlKG8tPmNsYXNzSWQsIHNl
cnZpY2VUeXBlKTsKKyAgICAgICAgICAvLyBJZiB3ZSBzdGlsbCBkb24ndCBoYXZlIGEgdHlwZSwg
dHJ5IHRvIG1hcCBmcm9tIGEgc3BlY2lmaWMgQ0xBU1NJRCB0byBhIHR5cGUuCisgICAgICAgICAg
aWYgKHNlcnZpY2VUeXBlLmlzRW1wdHkoKSAmJiAhby0+Y2xhc3NJZC5pc0VtcHR5KCkpCisgICAg
ICAgICAgICAgIG1hcENsYXNzSWRUb1NlcnZpY2VUeXBlKG8tPmNsYXNzSWQsIHNlcnZpY2VUeXBl
KTsKICAgICAgIAotICAgICAgLy8gSWYgbm8gVVJMIGFuZCB0eXBlLCBhYm9ydC4KLSAgICAgIGlm
ICh1cmwuaXNFbXB0eSgpICYmIHNlcnZpY2VUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgICByZXR1
cm47Ci0gICAgICBpZiAoIWlzVVJMQWxsb3dlZChkb2N1bWVudCgpLCB1cmwpKQotICAgICAgICAg
IHJldHVybjsKLQorICAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSAmJiAhaXNVUkxBbGxvd2Vk
KGRvY3VtZW50KCksIHVybCkpCisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgIH0KICAgICAg
IC8vIEZpbmQgb3V0IGlmIHdlIHN1cHBvcnQgZmFsbGJhY2sgY29udGVudC4KICAgICAgIG1faGFz
RmFsbGJhY2tDb250ZW50ID0gZmFsc2U7CiAgICAgICBmb3IgKE5vZGUgKmNoaWxkID0gby0+Zmly
c3RDaGlsZCgpOyBjaGlsZCAmJiAhbV9oYXNGYWxsYmFja0NvbnRlbnQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpIHsKQEAgLTIxMiw4ICsyMTAsMTIgQEAgdm9pZCBSZW5kZXJQYXJ0T2Jq
ZWN0Ojp1cGRhdGVXaWRnZXQoKQogICAgICAgICAgICAgICAoY2hpbGQtPmlzVGV4dE5vZGUoKSAm
JiAhc3RhdGljX2Nhc3Q8VGV4dCo+KGNoaWxkKS0+Y29udGFpbnNPbmx5V2hpdGVzcGFjZSgpKSkK
ICAgICAgICAgICAgICAgbV9oYXNGYWxsYmFja0NvbnRlbnQgPSB0cnVlOwogICAgICAgfQotICAg
ICAgYm9vbCBzdWNjZXNzID0gZnJhbWUtPnJlcXVlc3RPYmplY3QodGhpcywgdXJsLCBBdG9taWNT
dHJpbmcoby0+bmFtZSgpKSwgc2VydmljZVR5cGUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsK
LSAgICAgIGlmICghc3VjY2VzcyAmJiBtX2hhc0ZhbGxiYWNrQ29udGVudCkKKyAgICAgIC8vIElm
IG5vIFVSTCBhbmQgdHlwZSwgdHJ5IGZhbGxiYWNrIGNvbnRlbnQKKyAgICAgIGlmICghKHVybC5p
c0VtcHR5KCkgJiYgc2VydmljZVR5cGUuaXNFbXB0eSgpKSkgeworICAgICAgICAgIGlmIChmcmFt
ZS0+cmVxdWVzdE9iamVjdCh0aGlzLCB1cmwsIEF0b21pY1N0cmluZyhvLT5uYW1lKCkpLCBzZXJ2
aWNlVHlwZSwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpKQorICAgICAgICAgICAgICByZXR1cm47
CisgICAgICB9CisgICAgICBpZiAobV9oYXNGYWxsYmFja0NvbnRlbnQpCiAgICAgICAgICAgby0+
cmVuZGVyRmFsbGJhY2tDb250ZW50KCk7CiAgIH0gZWxzZSBpZiAoZWxlbWVudCgpLT5oYXNUYWdO
YW1lKGVtYmVkVGFnKSkgewogICAgICAgSFRNTEVtYmVkRWxlbWVudCAqbyA9IHN0YXRpY19jYXN0
PEhUTUxFbWJlZEVsZW1lbnQqPihlbGVtZW50KCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>