<?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>22524</bug_id>
          
          <creation_ts>2008-11-26 20:41:45 -0800</creation_ts>
          <short_desc>XMLHttpRequest needs to have the static defines made threadsafe.</short_desc>
          <delta_ts>2008-11-28 02:24:35 -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>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>100505</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2008-11-26 20:41:45 -0800</bug_when>
    <thetext>This is part of making XHR available to workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100506</commentid>
    <comment_count>1</comment_count>
      <attachid>25548</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2008-11-26 20:47:52 -0800</bug_when>
    <thetext>Created attachment 25548
Removes the non-thread safe static initializations in  XMLHttpRequest.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100523</commentid>
    <comment_count>2</comment_count>
      <attachid>25555</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2008-11-27 01:00:32 -0800</bug_when>
    <thetext>Created attachment 25555
Very minor adjustment to the last patch (-- moves one brace for style purposes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100537</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-27 07:33:42 -0800</bug_when>
    <thetext>Hmm... The patch is executed perfectly, but I think that it may be over-engineered a bit. I don&apos;t see how having classes for each function helps - is it better than just protecting initialization parts of these functions with a mutex?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100579</commentid>
    <comment_count>4</comment_count>
      <attachid>25566</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2008-11-27 23:13:35 -0800</bug_when>
    <thetext>Created attachment 25566
Changed the static initialization to happen in the XHR constructor.

I didn&apos;t like doing a mutex in the functions due to one of them being called inside of a loop.   As discussed, I&apos;ve tried out a solution that initializes the static variables in the constructor.  I looked at a few ways of doing this.  The reason I put the variables in a struct and then initialized into a local static was to take advantage of AtomicallyInitializedStatic.

If this doesn&apos;t seem that great, one alternative I can think of is to create another macro like AtomicallyInitializedStatic (in threading.h) that allowed me to call a function inside of this same mutex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100587</commentid>
    <comment_count>5</comment_count>
      <attachid>25568</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2008-11-28 01:14:29 -0800</bug_when>
    <thetext>Created attachment 25568
Another revision.  I think it is close.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100588</commentid>
    <comment_count>6</comment_count>
      <attachid>25568</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-28 01:22:58 -0800</bug_when>
    <thetext>Comment on attachment 25568
Another revision.  I think it is close.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100590</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-28 02:24:35 -0800</bug_when>
    <thetext>Committed revision 38827.

I made a slight tweak I didn&apos;t think about earlier: made the global const.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25548</attachid>
            <date>2008-11-26 20:47:52 -0800</date>
            <delta_ts>2008-11-27 01:00:32 -0800</delta_ts>
            <desc>Removes the non-thread safe static initializations in  XMLHttpRequest.cpp</desc>
            <filename>RemoveStaticFromXHR-rev2.txt</filename>
            <type>text/plain</type>
            <size>9646</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODgxNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDgtMTEtMjYgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI0CisKKyAgICAgICAgTWFk
ZSBzdGF0aWMgaW5pdGlhbGl6YXRpb25zIGluIFhNTEh0dHBSZXF1ZXN0LmNwcCB0aHJlYWQtc2Fm
ZSBpbiBwcmVwYXJhdGlvbiBmb3IgdXNhZ2UKKyAgICAgICAgb2YgWE1MSHR0cFJlcXVlc3QgYnkg
V29ya2VycyAob24gdGhyZWFkcykuCisKKyAgICAgICAgTm8gb2JzZXJ2YWJsZSBjaGFuZ2UgaW4g
YmVoYXZpb3IsIHNvIG5vIHRlc3QuCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2FmZVJlcXVlc3RIZWFkZXJzOjpzaGFyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2FmZVJlcXVlc3RIZWFkZXJzOjpTYWZlUmVxdWVzdEhlYWRlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6U2FmZVJlcXVlc3RIZWFkZXJzOjppc1NhZmUpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0Ojppc0FsbG93ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0Ojpz
aGFyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hp
dGVsaXN0OjpBY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QpOgorICAgICAgICAo
V2ViQ29yZTo6aXNPbkFjY2Vzc0NvbnRyb2xTaW1wbGVSZXF1ZXN0SGVhZGVyV2hpdGVsaXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzQ3Jvc3NT
aXRlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OlByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6
YWxsb3dzQ3Jvc3NTaXRlSGVhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpQcmVmbGlnaHRSZXN1
bHRDYWNoZUl0ZW06OmFsbG93c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJl
cXVlc3Q6OnNldFJlcXVlc3RIZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6OmdldEFsbFJlc3BvbnNlSGVhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIpOgorCiAyMDA4LTExLTEwICBHbGVubiBXaWxzb24gIDxn
d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gMzg3ODUpCisrKyBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3LDkgQEAg
cHVibGljOgogICAgIH0KIAogICAgIGJvb2wgcGFyc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OwotICAgIGJvb2wgYWxsb3dzQ3Jvc3NTaXRlTWV0aG9kKGNvbnN0IFN0cmluZyYpOwotICAgIGJv
b2wgYWxsb3dzQ3Jvc3NTaXRlSGVhZGVycyhjb25zdCBIVFRQSGVhZGVyTWFwJik7Ci0gICAgYm9v
bCBhbGxvd3NSZXF1ZXN0KGJvb2wgaW5jbHVkZUNyZWRlbnRpYWxzLCBjb25zdCBTdHJpbmcmIG1l
dGhvZCwgY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpOworICAgIGJvb2wgYWxs
b3dzQ3Jvc3NTaXRlTWV0aG9kKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIGJvb2wgYWxsb3dz
Q3Jvc3NTaXRlSGVhZGVycyhjb25zdCBIVFRQSGVhZGVyTWFwJikgY29uc3Q7CisgICAgYm9vbCBh
bGxvd3NSZXF1ZXN0KGJvb2wgaW5jbHVkZUNyZWRlbnRpYWxzLCBjb25zdCBTdHJpbmcmIG1ldGhv
ZCwgY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpIGNvbnN0OwogCiBwcml2YXRl
OgogICAgIHRlbXBsYXRlPGNsYXNzIEhhc2hUeXBlPgpAQCAtMTAzLDUyICsxMDMsODAgQEAgcHJp
dmF0ZToKICAgICBNdXRleCBtX211dGV4OwogfTsKIAotc3RhdGljIGJvb2wgaXNTYWZlUmVxdWVz
dEhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUpCitjbGFzcyBTYWZlUmVxdWVzdEhlYWRlcnMgOiBO
b25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFNhZmVSZXF1ZXN0SGVhZGVycyYgc2hh
cmVkKCk7CisgICAgYm9vbCBpc1NhZmUoY29uc3QgU3RyaW5nJikgY29uc3Q7Citwcml2YXRlOgor
ICAgIFNhZmVSZXF1ZXN0SGVhZGVycygpOworICAgIFN0cmluZyBtX3Byb3h5U3RyaW5nOworICAg
IFN0cmluZyBtX3NlY1N0cmluZzsKKyAgICBIZWFkZXJzU2V0IG1fZm9yYmlkZGVuSGVhZGVyczsK
K307CisKK1NhZmVSZXF1ZXN0SGVhZGVycyYgU2FmZVJlcXVlc3RIZWFkZXJzOjpzaGFyZWQoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGVhZGVyc1NldCwgZm9yYmlkZGVuSGVhZGVycywg
KCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwcm94eVN0cmluZywgKCJwcm94
eS0iKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNlY1N0cmluZywgKCJzZWMt
IikpOwotICAgIAotICAgIGlmIChmb3JiaWRkZW5IZWFkZXJzLmlzRW1wdHkoKSkgewotICAgICAg
ICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgiYWNjZXB0LWNoYXJzZXQiKTsKLSAgICAgICAgZm9yYmlk
ZGVuSGVhZGVycy5hZGQoImFjY2VwdC1lbmNvZGluZyIpOwotICAgICAgICBmb3JiaWRkZW5IZWFk
ZXJzLmFkZCgiY29ubmVjdGlvbiIpOwotICAgICAgICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgiY29u
dGVudC1sZW5ndGgiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImNvbnRlbnQtdHJh
bnNmZXItZW5jb2RpbmciKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImRhdGUiKTsK
LSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImV4cGVjdCIpOwotICAgICAgICBmb3JiaWRk
ZW5IZWFkZXJzLmFkZCgiaG9zdCIpOwotICAgICAgICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgia2Vl
cC1hbGl2ZSIpOwotICAgICAgICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgicmVmZXJlciIpOwotICAg
ICAgICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgidGUiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVy
cy5hZGQoInRyYWlsZXIiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoInRyYW5zZmVy
LWVuY29kaW5nIik7Ci0gICAgICAgIGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ1cGdyYWRlIik7Ci0g
ICAgICAgIGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ2aWEiKTsKLSAgICB9Ci0gICAgCi0gICAgcmV0
dXJuICFmb3JiaWRkZW5IZWFkZXJzLmNvbnRhaW5zKG5hbWUpICYmICFuYW1lLnN0YXJ0c1dpdGgo
cHJveHlTdHJpbmcsIGZhbHNlKSAmJgotICAgICAgICAgICAhbmFtZS5zdGFydHNXaXRoKHNlY1N0
cmluZywgZmFsc2UpOworICAgIEF0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpYyhTYWZlUmVxdWVz
dEhlYWRlcnMmLCBzYWZlUmVxdWVzdEhlYWRlcnMgPSAqbmV3IFNhZmVSZXF1ZXN0SGVhZGVycyk7
CisgICAgcmV0dXJuIHNhZmVSZXF1ZXN0SGVhZGVyczsKIH0KIAotc3RhdGljIGJvb2wgaXNPbkFj
Y2Vzc0NvbnRyb2xTaW1wbGVSZXF1ZXN0SGVhZGVyV2hpdGVsaXN0KGNvbnN0IFN0cmluZyYgbmFt
ZSkKK1NhZmVSZXF1ZXN0SGVhZGVyczo6U2FmZVJlcXVlc3RIZWFkZXJzKCkKKyAgICA6IG1fcHJv
eHlTdHJpbmcoInByb3h5LSIpCisgICAgLCBtX3NlY1N0cmluZygic2VjLSIpCiB7Ci0gICAgcmV0
dXJuIGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJhY2NlcHQiKSB8fCBlcXVhbElnbm9yaW5nQ2Fz
ZShuYW1lLCAiYWNjZXB0LWxhbmd1YWdlIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgImNv
bnRlbnQtdHlwZSIpOworICAgIG1fZm9yYmlkZGVuSGVhZGVycy5hZGQoImFjY2VwdC1jaGFyc2V0
Iik7CisgICAgbV9mb3JiaWRkZW5IZWFkZXJzLmFkZCgiYWNjZXB0LWVuY29kaW5nIik7CisgICAg
bV9mb3JiaWRkZW5IZWFkZXJzLmFkZCgiY29ubmVjdGlvbiIpOworICAgIG1fZm9yYmlkZGVuSGVh
ZGVycy5hZGQoImNvbnRlbnQtbGVuZ3RoIik7CisgICAgbV9mb3JiaWRkZW5IZWFkZXJzLmFkZCgi
Y29udGVudC10cmFuc2Zlci1lbmNvZGluZyIpOworICAgIG1fZm9yYmlkZGVuSGVhZGVycy5hZGQo
ImRhdGUiKTsKKyAgICBtX2ZvcmJpZGRlbkhlYWRlcnMuYWRkKCJleHBlY3QiKTsKKyAgICBtX2Zv
cmJpZGRlbkhlYWRlcnMuYWRkKCJob3N0Iik7CisgICAgbV9mb3JiaWRkZW5IZWFkZXJzLmFkZCgi
a2VlcC1hbGl2ZSIpOworICAgIG1fZm9yYmlkZGVuSGVhZGVycy5hZGQoInJlZmVyZXIiKTsKKyAg
ICBtX2ZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ0ZSIpOworICAgIG1fZm9yYmlkZGVuSGVhZGVycy5h
ZGQoInRyYWlsZXIiKTsKKyAgICBtX2ZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ0cmFuc2Zlci1lbmNv
ZGluZyIpOworICAgIG1fZm9yYmlkZGVuSGVhZGVycy5hZGQoInVwZ3JhZGUiKTsKKyAgICBtX2Zv
cmJpZGRlbkhlYWRlcnMuYWRkKCJ2aWEiKTsKIH0KIAotc3RhdGljIGJvb2wgaXNPbkFjY2Vzc0Nv
bnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdChjb25zdCBTdHJpbmcmIG5hbWUpCitib29sIFNh
ZmVSZXF1ZXN0SGVhZGVyczo6aXNTYWZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEhlYWRlcnNTZXQsIGFsbG93ZWRIZWFkZXJzLCAoKSk7Ci0g
ICAgaWYgKGFsbG93ZWRIZWFkZXJzLmlzRW1wdHkoKSkgewotICAgICAgICBhbGxvd2VkSGVhZGVy
cy5hZGQoImNhY2hlLWNvbnRyb2wiKTsKLSAgICAgICAgYWxsb3dlZEhlYWRlcnMuYWRkKCJjb250
ZW50LWxhbmd1YWdlIik7Ci0gICAgICAgIGFsbG93ZWRIZWFkZXJzLmFkZCgiY29udGVudC10eXBl
Iik7Ci0gICAgICAgIGFsbG93ZWRIZWFkZXJzLmFkZCgiZXhwaXJlcyIpOwotICAgICAgICBhbGxv
d2VkSGVhZGVycy5hZGQoImxhc3QtbW9kaWZpZWQiKTsKLSAgICAgICAgYWxsb3dlZEhlYWRlcnMu
YWRkKCJwcmFnbWEiKTsKKyAgICByZXR1cm4gIW1fZm9yYmlkZGVuSGVhZGVycy5jb250YWlucyhu
YW1lKSAmJiAhbmFtZS5zdGFydHNXaXRoKG1fcHJveHlTdHJpbmcsIGZhbHNlKQorICAgICAgICAm
JiAhbmFtZS5zdGFydHNXaXRoKG1fc2VjU3RyaW5nLCBmYWxzZSk7Cit9CisKK2NsYXNzIEFjY2Vz
c0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdCA6IE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgQWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0JiBzaGFyZWQo
KTsKKyAgICBib29sIGlzQWxsb3dlZChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0IHsKKyAgICAg
ICAgcmV0dXJuIG1fYWxsb3dlZEhlYWRlcnMuY29udGFpbnMobmFtZSk7CiAgICAgfQorcHJpdmF0
ZToKKyAgICBBY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QoKTsKKyAgICBIZWFk
ZXJzU2V0IG1fYWxsb3dlZEhlYWRlcnM7Cit9OworCitBY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFk
ZXJXaGl0ZWxpc3QmIEFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdDo6c2hhcmVk
KCkKK3sKKyAgICBBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWMoQWNjZXNzQ29udHJvbFJlc3Bv
bnNlSGVhZGVyV2hpdGVsaXN0Jiwgd2hpdGVsaXN0ID0gKm5ldyBBY2Nlc3NDb250cm9sUmVzcG9u
c2VIZWFkZXJXaGl0ZWxpc3QpOworICAgIHJldHVybiB3aGl0ZWxpc3Q7Cit9CiAKLSAgICByZXR1
cm4gYWxsb3dlZEhlYWRlcnMuY29udGFpbnMobmFtZSk7CitBY2Nlc3NDb250cm9sUmVzcG9uc2VI
ZWFkZXJXaGl0ZWxpc3Q6OkFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdCgpCit7
CisgICAgbV9hbGxvd2VkSGVhZGVycy5hZGQoImNhY2hlLWNvbnRyb2wiKTsKKyAgICBtX2FsbG93
ZWRIZWFkZXJzLmFkZCgiY29udGVudC1sYW5ndWFnZSIpOworICAgIG1fYWxsb3dlZEhlYWRlcnMu
YWRkKCJjb250ZW50LXR5cGUiKTsKKyAgICBtX2FsbG93ZWRIZWFkZXJzLmFkZCgiZXhwaXJlcyIp
OworICAgIG1fYWxsb3dlZEhlYWRlcnMuYWRkKCJsYXN0LW1vZGlmaWVkIik7CisgICAgbV9hbGxv
d2VkSGVhZGVycy5hZGQoInByYWdtYSIpOworfQorCitzdGF0aWMgYm9vbCBpc09uQWNjZXNzQ29u
dHJvbFNpbXBsZVJlcXVlc3RIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJiBuYW1lKQorewor
ICAgIHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiYWNjZXB0IikgfHwgZXF1YWxJZ25v
cmluZ0Nhc2UobmFtZSwgImFjY2VwdC1sYW5ndWFnZSIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKG5h
bWUsICJjb250ZW50LXR5cGUiKTsKIH0KIAogLy8gRGV0ZXJtaW5lcyBpZiBhIHN0cmluZyBpcyBh
IHZhbGlkIHRva2VuLCBhcyBkZWZpbmVkIGJ5CkBAIC0yNTMsMTIgKzI4MSwxMiBAQCBib29sIFBy
ZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6cGFyc2UoY29uCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NDcm9zc1NpdGVNZXRob2QoY29u
c3QgU3RyaW5nJiBtZXRob2QpCitib29sIFByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dz
Q3Jvc3NTaXRlTWV0aG9kKGNvbnN0IFN0cmluZyYgbWV0aG9kKSBjb25zdAogewogICAgIHJldHVy
biBtX21ldGhvZHMuY29udGFpbnMobWV0aG9kKSB8fCBtZXRob2QgPT0gIkdFVCIgfHwgbWV0aG9k
ID09ICJQT1NUIjsKIH0KIAotYm9vbCBQcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OmFsbG93c0Ny
b3NzU2l0ZUhlYWRlcnMoY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpCitib29s
IFByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzQ3Jvc3NTaXRlSGVhZGVycyhjb25zdCBI
VFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycykgY29uc3QKIHsKICAgICBIVFRQSGVhZGVyTWFw
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSByZXF1ZXN0SGVhZGVycy5lbmQoKTsKICAgICBmb3IgKEhU
VFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gcmVxdWVzdEhlYWRlcnMuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KSB7CkBAIC0yNjgsNyArMjk2LDcgQEAgYm9vbCBQcmVmbGlnaHRSZXN1
bHRDYWNoZUl0ZW06OmFsbG93c0NybwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFByZWZs
aWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzUmVxdWVzdChib29sIGluY2x1ZGVDcmVkZW50aWFs
cywgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFk
ZXJzKQorYm9vbCBQcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OmFsbG93c1JlcXVlc3QoYm9vbCBp
bmNsdWRlQ3JlZGVudGlhbHMsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBIVFRQSGVhZGVy
TWFwJiByZXF1ZXN0SGVhZGVycykgY29uc3QKIHsKICAgICBpZiAobV9hYnNvbHV0ZUV4cGlyeVRp
bWUgPCBjdXJyZW50VGltZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC05ODYsNyArMTAx
NCw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFJlcXVlc3RIZWFkZXIoY28KICAgICB9CiAK
ICAgICAvLyBBIHByaXZpbGVnZWQgc2NyaXB0IChlLmcuIGEgRGFzaGJvYXJkIHdpZGdldCkgY2Fu
IHNldCBhbnkgaGVhZGVycy4KLSAgICBpZiAoIWRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkt
PmNhbkxvYWRMb2NhbFJlc291cmNlcygpICYmICFpc1NhZmVSZXF1ZXN0SGVhZGVyKG5hbWUpKSB7
CisgICAgaWYgKCFkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5Mb2FkTG9jYWxSZXNv
dXJjZXMoKSAmJiAhU2FmZVJlcXVlc3RIZWFkZXJzOjpzaGFyZWQoKS5pc1NhZmUobmFtZSkpIHsK
ICAgICAgICAgcmVwb3J0VW5zYWZlVXNhZ2UoZG9jdW1lbnQoKSwgIlJlZnVzZWQgdG8gc2V0IHVu
c2FmZSBoZWFkZXIgXCIiICsgbmFtZSArICJcIiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMTAxNSw2ICsxMDQzLDcgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25z
ZUhlYQogCiAgICAgVmVjdG9yPFVDaGFyPiBzdHJpbmdCdWlsZGVyOwogCisgICAgQWNjZXNzQ29u
dHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0JiBhY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJX
aGl0ZWxpc3QgPSBBY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3Q6OnNoYXJlZCgp
OwogICAgIEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcmVzcG9uc2UuaHR0
cEhlYWRlckZpZWxkcygpLmVuZCgpOwogICAgIGZvciAoSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtX3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKS5iZWdpbigpOyBpdCE9IGVu
ZDsgKytpdCkgewogICAgICAgICAvLyBIaWRlIFNldC1Db29raWUgaGVhZGVyIGZpZWxkcyBmcm9t
IHRoZSBYTUxIdHRwUmVxdWVzdCBjbGllbnQgZm9yIHRoZXNlIHJlYXNvbnM6CkBAIC0xMDI2LDcg
KzEwNTUsNyBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldEFsbFJlc3BvbnNlSGVhCiAgICAg
ICAgIGlmIChpc1NldENvb2tpZUhlYWRlcihpdC0+Zmlyc3QpICYmICFkb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpLT5jYW5Mb2FkTG9jYWxSZXNvdXJjZXMoKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIGlmICghbV9zYW1lT3JpZ2luUmVxdWVzdCAmJiAhaXNPbkFjY2Vzc0Nv
bnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdChpdC0+Zmlyc3QpKQorICAgICAgICBpZiAoIW1f
c2FtZU9yaWdpblJlcXVlc3QgJiYgIWFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlz
dC5pc0FsbG93ZWQoaXQtPmZpcnN0KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKGl0LT5maXJzdC5jaGFyYWN0ZXJzKCksIGl0LT5maXJzdC5s
ZW5ndGgoKSk7CkBAIC0xMDU2LDcgKzEwODUsOCBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6Omdl
dFJlc3BvbnNlSGVhZGVyCiAgICAgICAgIHJldHVybiAiIjsKICAgICB9CiAKLSAgICBpZiAoIW1f
c2FtZU9yaWdpblJlcXVlc3QgJiYgIWlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0
ZWxpc3QobmFtZSkpIHsKKyAgICBpZiAoIW1fc2FtZU9yaWdpblJlcXVlc3QgCisgICAgICAgICYm
ICFBY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3Q6OnNoYXJlZCgpLmlzQWxsb3dl
ZChuYW1lKSkgewogICAgICAgICByZXBvcnRVbnNhZmVVc2FnZShkb2N1bWVudCgpLCAiUmVmdXNl
ZCB0byBnZXQgdW5zYWZlIGhlYWRlciBcIiIgKyBuYW1lICsgIlwiIik7CiAgICAgICAgIHJldHVy
biAiIjsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25555</attachid>
            <date>2008-11-27 01:00:32 -0800</date>
            <delta_ts>2008-11-27 23:13:35 -0800</delta_ts>
            <desc>Very minor adjustment to the last patch (-- moves one brace for style purposes).</desc>
            <filename>RemoveStaticFromXHR-rev3.txt</filename>
            <type>text/plain</type>
            <size>9651</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODgxNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDgtMTEtMjYgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI0CisKKyAgICAgICAgTWFk
ZSBzdGF0aWMgaW5pdGlhbGl6YXRpb25zIGluIFhNTEh0dHBSZXF1ZXN0LmNwcCB0aHJlYWQtc2Fm
ZSBpbiBwcmVwYXJhdGlvbiBmb3IgdXNhZ2UKKyAgICAgICAgb2YgWE1MSHR0cFJlcXVlc3QgYnkg
V29ya2VycyAob24gdGhyZWFkcykuCisKKyAgICAgICAgTm8gb2JzZXJ2YWJsZSBjaGFuZ2UgaW4g
YmVoYXZpb3IsIHNvIG5vIHRlc3QuCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2FmZVJlcXVlc3RIZWFkZXJzOjpzaGFyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2FmZVJlcXVlc3RIZWFkZXJzOjpTYWZlUmVxdWVzdEhlYWRlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6U2FmZVJlcXVlc3RIZWFkZXJzOjppc1NhZmUpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0Ojppc0FsbG93ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0Ojpz
aGFyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hp
dGVsaXN0OjpBY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QpOgorICAgICAgICAo
V2ViQ29yZTo6aXNPbkFjY2Vzc0NvbnRyb2xTaW1wbGVSZXF1ZXN0SGVhZGVyV2hpdGVsaXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzQ3Jvc3NT
aXRlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OlByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6
YWxsb3dzQ3Jvc3NTaXRlSGVhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpQcmVmbGlnaHRSZXN1
bHRDYWNoZUl0ZW06OmFsbG93c1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJl
cXVlc3Q6OnNldFJlcXVlc3RIZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6OmdldEFsbFJlc3BvbnNlSGVhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIpOgorCiAyMDA4LTExLTEwICBHbGVubiBXaWxzb24gIDxn
d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gMzg3ODUpCisrKyBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3LDkgQEAg
cHVibGljOgogICAgIH0KIAogICAgIGJvb2wgcGFyc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OwotICAgIGJvb2wgYWxsb3dzQ3Jvc3NTaXRlTWV0aG9kKGNvbnN0IFN0cmluZyYpOwotICAgIGJv
b2wgYWxsb3dzQ3Jvc3NTaXRlSGVhZGVycyhjb25zdCBIVFRQSGVhZGVyTWFwJik7Ci0gICAgYm9v
bCBhbGxvd3NSZXF1ZXN0KGJvb2wgaW5jbHVkZUNyZWRlbnRpYWxzLCBjb25zdCBTdHJpbmcmIG1l
dGhvZCwgY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpOworICAgIGJvb2wgYWxs
b3dzQ3Jvc3NTaXRlTWV0aG9kKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIGJvb2wgYWxsb3dz
Q3Jvc3NTaXRlSGVhZGVycyhjb25zdCBIVFRQSGVhZGVyTWFwJikgY29uc3Q7CisgICAgYm9vbCBh
bGxvd3NSZXF1ZXN0KGJvb2wgaW5jbHVkZUNyZWRlbnRpYWxzLCBjb25zdCBTdHJpbmcmIG1ldGhv
ZCwgY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpIGNvbnN0OwogCiBwcml2YXRl
OgogICAgIHRlbXBsYXRlPGNsYXNzIEhhc2hUeXBlPgpAQCAtMTAzLDUyICsxMDMsODEgQEAgcHJp
dmF0ZToKICAgICBNdXRleCBtX211dGV4OwogfTsKIAotc3RhdGljIGJvb2wgaXNTYWZlUmVxdWVz
dEhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUpCitjbGFzcyBTYWZlUmVxdWVzdEhlYWRlcnMgOiBO
b25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFNhZmVSZXF1ZXN0SGVhZGVycyYgc2hh
cmVkKCk7CisgICAgYm9vbCBpc1NhZmUoY29uc3QgU3RyaW5nJikgY29uc3Q7Citwcml2YXRlOgor
ICAgIFNhZmVSZXF1ZXN0SGVhZGVycygpOworICAgIFN0cmluZyBtX3Byb3h5U3RyaW5nOworICAg
IFN0cmluZyBtX3NlY1N0cmluZzsKKyAgICBIZWFkZXJzU2V0IG1fZm9yYmlkZGVuSGVhZGVyczsK
K307CisKK1NhZmVSZXF1ZXN0SGVhZGVycyYgU2FmZVJlcXVlc3RIZWFkZXJzOjpzaGFyZWQoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGVhZGVyc1NldCwgZm9yYmlkZGVuSGVhZGVycywg
KCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwcm94eVN0cmluZywgKCJwcm94
eS0iKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNlY1N0cmluZywgKCJzZWMt
IikpOwotICAgIAotICAgIGlmIChmb3JiaWRkZW5IZWFkZXJzLmlzRW1wdHkoKSkgewotICAgICAg
ICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgiYWNjZXB0LWNoYXJzZXQiKTsKLSAgICAgICAgZm9yYmlk
ZGVuSGVhZGVycy5hZGQoImFjY2VwdC1lbmNvZGluZyIpOwotICAgICAgICBmb3JiaWRkZW5IZWFk
ZXJzLmFkZCgiY29ubmVjdGlvbiIpOwotICAgICAgICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgiY29u
dGVudC1sZW5ndGgiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImNvbnRlbnQtdHJh
bnNmZXItZW5jb2RpbmciKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImRhdGUiKTsK
LSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImV4cGVjdCIpOwotICAgICAgICBmb3JiaWRk
ZW5IZWFkZXJzLmFkZCgiaG9zdCIpOwotICAgICAgICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgia2Vl
cC1hbGl2ZSIpOwotICAgICAgICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgicmVmZXJlciIpOwotICAg
ICAgICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgidGUiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVy
cy5hZGQoInRyYWlsZXIiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoInRyYW5zZmVy
LWVuY29kaW5nIik7Ci0gICAgICAgIGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ1cGdyYWRlIik7Ci0g
ICAgICAgIGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ2aWEiKTsKLSAgICB9Ci0gICAgCi0gICAgcmV0
dXJuICFmb3JiaWRkZW5IZWFkZXJzLmNvbnRhaW5zKG5hbWUpICYmICFuYW1lLnN0YXJ0c1dpdGgo
cHJveHlTdHJpbmcsIGZhbHNlKSAmJgotICAgICAgICAgICAhbmFtZS5zdGFydHNXaXRoKHNlY1N0
cmluZywgZmFsc2UpOworICAgIEF0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpYyhTYWZlUmVxdWVz
dEhlYWRlcnMmLCBzYWZlUmVxdWVzdEhlYWRlcnMgPSAqbmV3IFNhZmVSZXF1ZXN0SGVhZGVycyk7
CisgICAgcmV0dXJuIHNhZmVSZXF1ZXN0SGVhZGVyczsKIH0KIAotc3RhdGljIGJvb2wgaXNPbkFj
Y2Vzc0NvbnRyb2xTaW1wbGVSZXF1ZXN0SGVhZGVyV2hpdGVsaXN0KGNvbnN0IFN0cmluZyYgbmFt
ZSkKK1NhZmVSZXF1ZXN0SGVhZGVyczo6U2FmZVJlcXVlc3RIZWFkZXJzKCkKKyAgICA6IG1fcHJv
eHlTdHJpbmcoInByb3h5LSIpCisgICAgLCBtX3NlY1N0cmluZygic2VjLSIpCiB7Ci0gICAgcmV0
dXJuIGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJhY2NlcHQiKSB8fCBlcXVhbElnbm9yaW5nQ2Fz
ZShuYW1lLCAiYWNjZXB0LWxhbmd1YWdlIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgImNv
bnRlbnQtdHlwZSIpOworICAgIG1fZm9yYmlkZGVuSGVhZGVycy5hZGQoImFjY2VwdC1jaGFyc2V0
Iik7CisgICAgbV9mb3JiaWRkZW5IZWFkZXJzLmFkZCgiYWNjZXB0LWVuY29kaW5nIik7CisgICAg
bV9mb3JiaWRkZW5IZWFkZXJzLmFkZCgiY29ubmVjdGlvbiIpOworICAgIG1fZm9yYmlkZGVuSGVh
ZGVycy5hZGQoImNvbnRlbnQtbGVuZ3RoIik7CisgICAgbV9mb3JiaWRkZW5IZWFkZXJzLmFkZCgi
Y29udGVudC10cmFuc2Zlci1lbmNvZGluZyIpOworICAgIG1fZm9yYmlkZGVuSGVhZGVycy5hZGQo
ImRhdGUiKTsKKyAgICBtX2ZvcmJpZGRlbkhlYWRlcnMuYWRkKCJleHBlY3QiKTsKKyAgICBtX2Zv
cmJpZGRlbkhlYWRlcnMuYWRkKCJob3N0Iik7CisgICAgbV9mb3JiaWRkZW5IZWFkZXJzLmFkZCgi
a2VlcC1hbGl2ZSIpOworICAgIG1fZm9yYmlkZGVuSGVhZGVycy5hZGQoInJlZmVyZXIiKTsKKyAg
ICBtX2ZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ0ZSIpOworICAgIG1fZm9yYmlkZGVuSGVhZGVycy5h
ZGQoInRyYWlsZXIiKTsKKyAgICBtX2ZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ0cmFuc2Zlci1lbmNv
ZGluZyIpOworICAgIG1fZm9yYmlkZGVuSGVhZGVycy5hZGQoInVwZ3JhZGUiKTsKKyAgICBtX2Zv
cmJpZGRlbkhlYWRlcnMuYWRkKCJ2aWEiKTsKIH0KIAotc3RhdGljIGJvb2wgaXNPbkFjY2Vzc0Nv
bnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdChjb25zdCBTdHJpbmcmIG5hbWUpCitib29sIFNh
ZmVSZXF1ZXN0SGVhZGVyczo6aXNTYWZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEhlYWRlcnNTZXQsIGFsbG93ZWRIZWFkZXJzLCAoKSk7Ci0g
ICAgaWYgKGFsbG93ZWRIZWFkZXJzLmlzRW1wdHkoKSkgewotICAgICAgICBhbGxvd2VkSGVhZGVy
cy5hZGQoImNhY2hlLWNvbnRyb2wiKTsKLSAgICAgICAgYWxsb3dlZEhlYWRlcnMuYWRkKCJjb250
ZW50LWxhbmd1YWdlIik7Ci0gICAgICAgIGFsbG93ZWRIZWFkZXJzLmFkZCgiY29udGVudC10eXBl
Iik7Ci0gICAgICAgIGFsbG93ZWRIZWFkZXJzLmFkZCgiZXhwaXJlcyIpOwotICAgICAgICBhbGxv
d2VkSGVhZGVycy5hZGQoImxhc3QtbW9kaWZpZWQiKTsKLSAgICAgICAgYWxsb3dlZEhlYWRlcnMu
YWRkKCJwcmFnbWEiKTsKKyAgICByZXR1cm4gIW1fZm9yYmlkZGVuSGVhZGVycy5jb250YWlucyhu
YW1lKSAmJiAhbmFtZS5zdGFydHNXaXRoKG1fcHJveHlTdHJpbmcsIGZhbHNlKQorICAgICAgICAm
JiAhbmFtZS5zdGFydHNXaXRoKG1fc2VjU3RyaW5nLCBmYWxzZSk7Cit9CisKK2NsYXNzIEFjY2Vz
c0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdCA6IE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgQWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0JiBzaGFyZWQo
KTsKKyAgICBib29sIGlzQWxsb3dlZChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gbV9hbGxvd2VkSGVhZGVycy5jb250YWlucyhuYW1lKTsKICAgICB9Citw
cml2YXRlOgorICAgIEFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdCgpOworICAg
IEhlYWRlcnNTZXQgbV9hbGxvd2VkSGVhZGVyczsKK307CisKK0FjY2Vzc0NvbnRyb2xSZXNwb25z
ZUhlYWRlcldoaXRlbGlzdCYgQWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0Ojpz
aGFyZWQoKQoreworICAgIEF0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpYyhBY2Nlc3NDb250cm9s
UmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QmLCB3aGl0ZWxpc3QgPSAqbmV3IEFjY2Vzc0NvbnRyb2xS
ZXNwb25zZUhlYWRlcldoaXRlbGlzdCk7CisgICAgcmV0dXJuIHdoaXRlbGlzdDsKK30KIAotICAg
IHJldHVybiBhbGxvd2VkSGVhZGVycy5jb250YWlucyhuYW1lKTsKK0FjY2Vzc0NvbnRyb2xSZXNw
b25zZUhlYWRlcldoaXRlbGlzdDo6QWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0
KCkKK3sKKyAgICBtX2FsbG93ZWRIZWFkZXJzLmFkZCgiY2FjaGUtY29udHJvbCIpOworICAgIG1f
YWxsb3dlZEhlYWRlcnMuYWRkKCJjb250ZW50LWxhbmd1YWdlIik7CisgICAgbV9hbGxvd2VkSGVh
ZGVycy5hZGQoImNvbnRlbnQtdHlwZSIpOworICAgIG1fYWxsb3dlZEhlYWRlcnMuYWRkKCJleHBp
cmVzIik7CisgICAgbV9hbGxvd2VkSGVhZGVycy5hZGQoImxhc3QtbW9kaWZpZWQiKTsKKyAgICBt
X2FsbG93ZWRIZWFkZXJzLmFkZCgicHJhZ21hIik7Cit9CisKK3N0YXRpYyBib29sIGlzT25BY2Nl
c3NDb250cm9sU2ltcGxlUmVxdWVzdEhlYWRlcldoaXRlbGlzdChjb25zdCBTdHJpbmcmIG5hbWUp
Cit7CisgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJhY2NlcHQiKSB8fCBlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCAiYWNjZXB0LWxhbmd1YWdlIikgfHwgZXF1YWxJZ25vcmluZ0Nh
c2UobmFtZSwgImNvbnRlbnQtdHlwZSIpOwogfQogCiAvLyBEZXRlcm1pbmVzIGlmIGEgc3RyaW5n
IGlzIGEgdmFsaWQgdG9rZW4sIGFzIGRlZmluZWQgYnkKQEAgLTI1MywxMiArMjgyLDEyIEBAIGJv
b2wgUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjpwYXJzZShjb24KICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBQcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OmFsbG93c0Nyb3NzU2l0ZU1ldGhv
ZChjb25zdCBTdHJpbmcmIG1ldGhvZCkKK2Jvb2wgUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjph
bGxvd3NDcm9zc1NpdGVNZXRob2QoY29uc3QgU3RyaW5nJiBtZXRob2QpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fbWV0aG9kcy5jb250YWlucyhtZXRob2QpIHx8IG1ldGhvZCA9PSAiR0VUIiB8fCBt
ZXRob2QgPT0gIlBPU1QiOwogfQogCi1ib29sIFByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxs
b3dzQ3Jvc3NTaXRlSGVhZGVycyhjb25zdCBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycykK
K2Jvb2wgUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NDcm9zc1NpdGVIZWFkZXJzKGNv
bnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFkZXJzKSBjb25zdAogewogICAgIEhUVFBIZWFk
ZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHJlcXVlc3RIZWFkZXJzLmVuZCgpOwogICAgIGZv
ciAoSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSByZXF1ZXN0SGVhZGVycy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKQEAgLTI2OCw3ICsyOTcsNyBAQCBib29sIFByZWZsaWdo
dFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzQ3JvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
UHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NSZXF1ZXN0KGJvb2wgaW5jbHVkZUNyZWRl
bnRpYWxzLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVz
dEhlYWRlcnMpCitib29sIFByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzUmVxdWVzdChi
b29sIGluY2x1ZGVDcmVkZW50aWFscywgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBI
ZWFkZXJNYXAmIHJlcXVlc3RIZWFkZXJzKSBjb25zdAogewogICAgIGlmIChtX2Fic29sdXRlRXhw
aXJ5VGltZSA8IGN1cnJlbnRUaW1lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTk4Niw3
ICsxMDE1LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0UmVxdWVzdEhlYWRlcihjbwogICAg
IH0KIAogICAgIC8vIEEgcHJpdmlsZWdlZCBzY3JpcHQgKGUuZy4gYSBEYXNoYm9hcmQgd2lkZ2V0
KSBjYW4gc2V0IGFueSBoZWFkZXJzLgotICAgIGlmICghZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKS0+Y2FuTG9hZExvY2FsUmVzb3VyY2VzKCkgJiYgIWlzU2FmZVJlcXVlc3RIZWFkZXIobmFt
ZSkpIHsKKyAgICBpZiAoIWRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkxvYWRMb2Nh
bFJlc291cmNlcygpICYmICFTYWZlUmVxdWVzdEhlYWRlcnM6OnNoYXJlZCgpLmlzU2FmZShuYW1l
KSkgewogICAgICAgICByZXBvcnRVbnNhZmVVc2FnZShkb2N1bWVudCgpLCAiUmVmdXNlZCB0byBz
ZXQgdW5zYWZlIGhlYWRlciBcIiIgKyBuYW1lICsgIlwiIik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0xMDE1LDYgKzEwNDQsNyBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldEFsbFJl
c3BvbnNlSGVhCiAKICAgICBWZWN0b3I8VUNoYXI+IHN0cmluZ0J1aWxkZXI7CiAKKyAgICBBY2Nl
c3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QmIGFjY2Vzc0NvbnRyb2xSZXNwb25zZUhl
YWRlcldoaXRlbGlzdCA9IEFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdDo6c2hh
cmVkKCk7CiAgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9yZXNwb25z
ZS5odHRwSGVhZGVyRmllbGRzKCkuZW5kKCk7CiAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpjb25z
dF9pdGVyYXRvciBpdCA9IG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkcygpLmJlZ2luKCk7IGl0
IT0gZW5kOyArK2l0KSB7CiAgICAgICAgIC8vIEhpZGUgU2V0LUNvb2tpZSBoZWFkZXIgZmllbGRz
IGZyb20gdGhlIFhNTEh0dHBSZXF1ZXN0IGNsaWVudCBmb3IgdGhlc2UgcmVhc29uczoKQEAgLTEw
MjYsNyArMTA1Niw3IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWEK
ICAgICAgICAgaWYgKGlzU2V0Q29va2llSGVhZGVyKGl0LT5maXJzdCkgJiYgIWRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCktPmNhbkxvYWRMb2NhbFJlc291cmNlcygpKQogICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgaWYgKCFtX3NhbWVPcmlnaW5SZXF1ZXN0ICYmICFpc09uQWNj
ZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0KGl0LT5maXJzdCkpCisgICAgICAgIGlm
ICghbV9zYW1lT3JpZ2luUmVxdWVzdCAmJiAhYWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hp
dGVsaXN0LmlzQWxsb3dlZChpdC0+Zmlyc3QpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaXQtPmZpcnN0LmNoYXJhY3RlcnMoKSwgaXQtPmZp
cnN0Lmxlbmd0aCgpKTsKQEAgLTEwNTYsNyArMTA4Niw4IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVz
dDo6Z2V0UmVzcG9uc2VIZWFkZXIKICAgICAgICAgcmV0dXJuICIiOwogICAgIH0KIAotICAgIGlm
ICghbV9zYW1lT3JpZ2luUmVxdWVzdCAmJiAhaXNPbkFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRl
cldoaXRlbGlzdChuYW1lKSkgeworICAgIGlmICghbV9zYW1lT3JpZ2luUmVxdWVzdCAKKyAgICAg
ICAgJiYgIUFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdDo6c2hhcmVkKCkuaXNB
bGxvd2VkKG5hbWUpKSB7CiAgICAgICAgIHJlcG9ydFVuc2FmZVVzYWdlKGRvY3VtZW50KCksICJS
ZWZ1c2VkIHRvIGdldCB1bnNhZmUgaGVhZGVyIFwiIiArIG5hbWUgKyAiXCIiKTsKICAgICAgICAg
cmV0dXJuICIiOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25566</attachid>
            <date>2008-11-27 23:13:35 -0800</date>
            <delta_ts>2008-11-28 01:14:29 -0800</delta_ts>
            <desc>Changed the static initialization to happen in the XHR constructor.</desc>
            <filename>RemoveStaticFromXHR-rev4.txt</filename>
            <type>text/plain</type>
            <size>9357</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODgyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMDgtMTEtMjcgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI0CisKKyAgICAgICAgTWFk
ZSBzdGF0aWMgaW5pdGlhbGl6YXRpb25zIGluIFhNTEh0dHBSZXF1ZXN0LmNwcCB0aHJlYWQtc2Fm
ZSBpbiBwcmVwYXJhdGlvbiBmb3IgdXNhZ2UKKyAgICAgICAgb2YgWE1MSHR0cFJlcXVlc3QgYnkg
V29ya2VycyAob24gdGhyZWFkcykuCisKKyAgICAgICAgTm8gb2JzZXJ2YWJsZSBjaGFuZ2UgaW4g
YmVoYXZpb3IsIHNvIG5vIHRlc3QuCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhOjpYTUxIdHRwUmVx
dWVzdFN0YXRpY0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UHJlZmxpZ2h0UmVzdWx0Q2FjaGVJ
dGVtOjphbGxvd3NDcm9zc1NpdGVNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6UHJlZmxpZ2h0
UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NDcm9zc1NpdGVIZWFkZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmlzU2FmZVJlcXVlc3RIZWFkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxp
c3QpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorCiAyMDA4LTExLTI3ICBDYW1l
cm9uIFp3YXJpY2ggIDx6d2FyaWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQu
CkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZpc2lvbiAzODgyMSkKKysrIFdlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsNDIgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGlu
Z0hhc2g+IEhlYWRlcnNTZXQ7CiAKK3N0cnVjdCBYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGEgewor
ICAgIFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSgpOworICAgIFN0cmluZyBtX3Byb3h5SGVhZGVy
UHJlZml4OworICAgIFN0cmluZyBtX3NlY0hlYWRlclByZWZpeDsKKyAgICBIYXNoU2V0PFN0cmlu
ZywgQ2FzZUZvbGRpbmdIYXNoPiBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzOworICAgIEhhc2hT
ZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IG1fYWxsb3dlZENyb3NzU2l0ZVJlc3BvbnNlSGVh
ZGVyczsKK307CisKK1hNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YTo6WE1MSHR0cFJlcXVlc3RTdGF0
aWNEYXRhKCkKKyAgICA6IG1fcHJveHlIZWFkZXJQcmVmaXgoInByb3h5LSIpCisgICAgLCBtX3Nl
Y0hlYWRlclByZWZpeCgic2VjLSIpCit7CisgICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5h
ZGQoImFjY2VwdC1jaGFyc2V0Iik7CisgICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQo
ImFjY2VwdC1lbmNvZGluZyIpOworICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJj
b25uZWN0aW9uIik7CisgICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQoImNvbnRlbnQt
bGVuZ3RoIik7CisgICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQoImNvbnRlbnQtdHJh
bnNmZXItZW5jb2RpbmciKTsKKyAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgiZGF0
ZSIpOworICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJleHBlY3QiKTsKKyAgICBt
X2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgiaG9zdCIpOworICAgIG1fZm9yYmlkZGVuUmVx
dWVzdEhlYWRlcnMuYWRkKCJrZWVwLWFsaXZlIik7CisgICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVh
ZGVycy5hZGQoInJlZmVyZXIiKTsKKyAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgi
dGUiKTsKKyAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgidHJhaWxlciIpOworICAg
IG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJ0cmFuc2Zlci1lbmNvZGluZyIpOworICAg
IG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJ1cGdyYWRlIik7CisgICAgbV9mb3JiaWRk
ZW5SZXF1ZXN0SGVhZGVycy5hZGQoInZpYSIpOworCisgICAgbV9hbGxvd2VkQ3Jvc3NTaXRlUmVz
cG9uc2VIZWFkZXJzLmFkZCgiY2FjaGUtY29udHJvbCIpOworICAgIG1fYWxsb3dlZENyb3NzU2l0
ZVJlc3BvbnNlSGVhZGVycy5hZGQoImNvbnRlbnQtbGFuZ3VhZ2UiKTsKKyAgICBtX2FsbG93ZWRD
cm9zc1NpdGVSZXNwb25zZUhlYWRlcnMuYWRkKCJjb250ZW50LXR5cGUiKTsKKyAgICBtX2FsbG93
ZWRDcm9zc1NpdGVSZXNwb25zZUhlYWRlcnMuYWRkKCJleHBpcmVzIik7CisgICAgbV9hbGxvd2Vk
Q3Jvc3NTaXRlUmVzcG9uc2VIZWFkZXJzLmFkZCgibGFzdC1tb2RpZmllZCIpOworICAgIG1fYWxs
b3dlZENyb3NzU2l0ZVJlc3BvbnNlSGVhZGVycy5hZGQoInByYWdtYSIpOworfQorCiBjbGFzcyBQ
cmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0gOiBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CiAgICAgUHJl
ZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtKGJvb2wgY3JlZGVudGlhbHMpCkBAIC02Nyw5ICsxMDMsOSBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgYm9vbCBwYXJzZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7Ci0gICAgYm9vbCBhbGxvd3NDcm9zc1NpdGVNZXRob2QoY29uc3QgU3RyaW5nJik7Ci0gICAg
Ym9vbCBhbGxvd3NDcm9zc1NpdGVIZWFkZXJzKGNvbnN0IEhUVFBIZWFkZXJNYXAmKTsKLSAgICBi
b29sIGFsbG93c1JlcXVlc3QoYm9vbCBpbmNsdWRlQ3JlZGVudGlhbHMsIGNvbnN0IFN0cmluZyYg
bWV0aG9kLCBjb25zdCBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycyk7CisgICAgYm9vbCBh
bGxvd3NDcm9zc1NpdGVNZXRob2QoY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgYm9vbCBhbGxv
d3NDcm9zc1NpdGVIZWFkZXJzKGNvbnN0IEhUVFBIZWFkZXJNYXAmKSBjb25zdDsKKyAgICBib29s
IGFsbG93c1JlcXVlc3QoYm9vbCBpbmNsdWRlQ3JlZGVudGlhbHMsIGNvbnN0IFN0cmluZyYgbWV0
aG9kLCBjb25zdCBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycykgY29uc3Q7CiAKIHByaXZh
dGU6CiAgICAgdGVtcGxhdGU8Y2xhc3MgSGFzaFR5cGU+CkBAIC0xMDMsNTQgKzEzOSwxMSBAQCBw
cml2YXRlOgogICAgIE11dGV4IG1fbXV0ZXg7CiB9OwogCi1zdGF0aWMgYm9vbCBpc1NhZmVSZXF1
ZXN0SGVhZGVyKGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEhlYWRlcnNTZXQsIGZvcmJpZGRlbkhlYWRlcnMsICgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgcHJveHlTdHJpbmcsICgicHJveHktIikpOwotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBzZWNTdHJpbmcsICgic2VjLSIpKTsKLSAgICAKLSAgICBpZiAoZm9yYmlk
ZGVuSGVhZGVycy5pc0VtcHR5KCkpIHsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImFj
Y2VwdC1jaGFyc2V0Iik7Ci0gICAgICAgIGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJhY2NlcHQtZW5j
b2RpbmciKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImNvbm5lY3Rpb24iKTsKLSAg
ICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImNvbnRlbnQtbGVuZ3RoIik7Ci0gICAgICAgIGZv
cmJpZGRlbkhlYWRlcnMuYWRkKCJjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nIik7Ci0gICAgICAg
IGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJkYXRlIik7Ci0gICAgICAgIGZvcmJpZGRlbkhlYWRlcnMu
YWRkKCJleHBlY3QiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImhvc3QiKTsKLSAg
ICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImtlZXAtYWxpdmUiKTsKLSAgICAgICAgZm9yYmlk
ZGVuSGVhZGVycy5hZGQoInJlZmVyZXIiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQo
InRlIik7Ci0gICAgICAgIGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ0cmFpbGVyIik7Ci0gICAgICAg
IGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ0cmFuc2Zlci1lbmNvZGluZyIpOwotICAgICAgICBmb3Ji
aWRkZW5IZWFkZXJzLmFkZCgidXBncmFkZSIpOwotICAgICAgICBmb3JiaWRkZW5IZWFkZXJzLmFk
ZCgidmlhIik7Ci0gICAgfQotICAgIAotICAgIHJldHVybiAhZm9yYmlkZGVuSGVhZGVycy5jb250
YWlucyhuYW1lKSAmJiAhbmFtZS5zdGFydHNXaXRoKHByb3h5U3RyaW5nLCBmYWxzZSkgJiYKLSAg
ICAgICAgICAgIW5hbWUuc3RhcnRzV2l0aChzZWNTdHJpbmcsIGZhbHNlKTsKLX0KLQogc3RhdGlj
IGJvb2wgaXNPbkFjY2Vzc0NvbnRyb2xTaW1wbGVSZXF1ZXN0SGVhZGVyV2hpdGVsaXN0KGNvbnN0
IFN0cmluZyYgbmFtZSkKIHsKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgImFj
Y2VwdCIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJhY2NlcHQtbGFuZ3VhZ2UiKSB8fCBl
cXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiY29udGVudC10eXBlIik7CiB9CiAKLXN0YXRpYyBib29s
IGlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJiBu
YW1lKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGVhZGVyc1NldCwgYWxsb3dlZEhlYWRl
cnMsICgpKTsKLSAgICBpZiAoYWxsb3dlZEhlYWRlcnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGFs
bG93ZWRIZWFkZXJzLmFkZCgiY2FjaGUtY29udHJvbCIpOwotICAgICAgICBhbGxvd2VkSGVhZGVy
cy5hZGQoImNvbnRlbnQtbGFuZ3VhZ2UiKTsKLSAgICAgICAgYWxsb3dlZEhlYWRlcnMuYWRkKCJj
b250ZW50LXR5cGUiKTsKLSAgICAgICAgYWxsb3dlZEhlYWRlcnMuYWRkKCJleHBpcmVzIik7Ci0g
ICAgICAgIGFsbG93ZWRIZWFkZXJzLmFkZCgibGFzdC1tb2RpZmllZCIpOwotICAgICAgICBhbGxv
d2VkSGVhZGVycy5hZGQoInByYWdtYSIpOwotICAgIH0KLQotICAgIHJldHVybiBhbGxvd2VkSGVh
ZGVycy5jb250YWlucyhuYW1lKTsKLX0KLQogLy8gRGV0ZXJtaW5lcyBpZiBhIHN0cmluZyBpcyBh
IHZhbGlkIHRva2VuLCBhcyBkZWZpbmVkIGJ5CiAvLyAidG9rZW4iIGluIHNlY3Rpb24gMi4yIG9m
IFJGQyAyNjE2Lgogc3RhdGljIGJvb2wgaXNWYWxpZFRva2VuKGNvbnN0IFN0cmluZyYgbmFtZSkK
QEAgLTI1MywxMiArMjQ2LDEyIEBAIGJvb2wgUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjpwYXJz
ZShjb24KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBQcmVmbGlnaHRSZXN1bHRDYWNoZUl0
ZW06OmFsbG93c0Nyb3NzU2l0ZU1ldGhvZChjb25zdCBTdHJpbmcmIG1ldGhvZCkKK2Jvb2wgUHJl
ZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NDcm9zc1NpdGVNZXRob2QoY29uc3QgU3RyaW5n
JiBtZXRob2QpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbWV0aG9kcy5jb250YWlucyhtZXRob2Qp
IHx8IG1ldGhvZCA9PSAiR0VUIiB8fCBtZXRob2QgPT0gIlBPU1QiOwogfQogCi1ib29sIFByZWZs
aWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzQ3Jvc3NTaXRlSGVhZGVycyhjb25zdCBIVFRQSGVh
ZGVyTWFwJiByZXF1ZXN0SGVhZGVycykKK2Jvb2wgUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjph
bGxvd3NDcm9zc1NpdGVIZWFkZXJzKGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFkZXJz
KSBjb25zdAogewogICAgIEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHJlcXVl
c3RIZWFkZXJzLmVuZCgpOwogICAgIGZvciAoSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSByZXF1ZXN0SGVhZGVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKQEAgLTI2OCw3
ICsyNjEsNyBAQCBib29sIFByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzQ3JvCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NS
ZXF1ZXN0KGJvb2wgaW5jbHVkZUNyZWRlbnRpYWxzLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29u
c3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpCitib29sIFByZWZsaWdodFJlc3VsdENh
Y2hlSXRlbTo6YWxsb3dzUmVxdWVzdChib29sIGluY2x1ZGVDcmVkZW50aWFscywgY29uc3QgU3Ry
aW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFkZXJzKSBjb25zdAog
ewogICAgIGlmIChtX2Fic29sdXRlRXhwaXJ5VGltZSA8IGN1cnJlbnRUaW1lKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTMyNiw2ICszMTksOSBAQCBYTUxIdHRwUmVxdWVzdDo6WE1MSHR0
cFJlcXVlc3QoRG9jdW1lbnQqCiAgICAgLCBtX2xhc3RTZW5kTGluZU51bWJlcigwKQogewogICAg
IEFTU0VSVChkb2N1bWVudCgpKTsKKyAgICAvLyBJbml0aWFsaXplIGFsbCBzdGF0aWMgZGF0YSB0
aGF0IGlzIG5lZWRlZCBieSBYTUxIdHRwUmVxdWVzdC4KKyAgICBBdG9taWNhbGx5SW5pdGlhbGl6
ZWRTdGF0aWMoWE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhKiwgc3RhdGljX2RhdGEgPSBuZXcgWE1M
SHR0cFJlcXVlc3RTdGF0aWNEYXRhKTsKKyAgICBtX3N0YXRpY19kYXRhID0gc3RhdGljX2RhdGE7
CiB9CiAKIFhNTEh0dHBSZXF1ZXN0Ojp+WE1MSHR0cFJlcXVlc3QoKQpAQCAtMTAwMSw2ICs5OTcs
MTIgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0UmVxdWVzdEhlYWRlckludAogICAgICAgICBy
ZXN1bHQuZmlyc3QtPnNlY29uZCArPSAiLCAiICsgdmFsdWU7CiB9CiAKK2Jvb2wgWE1MSHR0cFJl
cXVlc3Q6OmlzU2FmZVJlcXVlc3RIZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAorewor
ICAgIHJldHVybiAhbV9zdGF0aWNfZGF0YS0+bV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5jb250
YWlucyhuYW1lKSAmJiAhbmFtZS5zdGFydHNXaXRoKG1fc3RhdGljX2RhdGEtPm1fcHJveHlIZWFk
ZXJQcmVmaXgsIGZhbHNlKQorICAgICAgICAmJiAhbmFtZS5zdGFydHNXaXRoKG1fc3RhdGljX2Rh
dGEtPm1fc2VjSGVhZGVyUHJlZml4LCBmYWxzZSk7Cit9CisKIFN0cmluZyBYTUxIdHRwUmVxdWVz
dDo6Z2V0UmVxdWVzdEhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fcmVxdWVzdEhlYWRlcnMuZ2V0KG5hbWUpOwpAQCAtMTA2NCw2ICsxMDY2LDExIEBAIFN0
cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIKICAgICByZXR1cm4gbV9yZXNw
b25zZS5odHRwSGVhZGVyRmllbGQobmFtZSk7CiB9CiAKK2Jvb2wgWE1MSHR0cFJlcXVlc3Q6Omlz
T25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJiBuYW1l
KSBjb25zdAoreworICAgIHJldHVybiBtX3N0YXRpY19kYXRhLT5tX2FsbG93ZWRDcm9zc1NpdGVS
ZXNwb25zZUhlYWRlcnMuY29udGFpbnMobmFtZSk7Cit9CisKIFN0cmluZyBYTUxIdHRwUmVxdWVz
dDo6cmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0CiB7CiAgICAgU3RyaW5nIG1pbWVUeXBlID0gZXh0
cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX21pbWVUeXBlT3ZlcnJpZGUpOwpJbmRleDogV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCShyZXZpc2lvbiAzODgyMSkKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGaWxlOwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2Rl
cjsKK3N0cnVjdCBYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGE7CiAKIGNsYXNzIFhNTEh0dHBSZXF1
ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8WE1MSHR0cFJlcXVlc3Q+LCBwdWJsaWMgRXZlbnRUYXJn
ZXQsIHByaXZhdGUgU3VicmVzb3VyY2VMb2FkZXJDbGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QgewogcHVibGljOgpAQCAtMTQwLDYgKzE0MSw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcg
Z2V0UmVxdWVzdEhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAgIHZvaWQgc2V0
UmVxdWVzdEhlYWRlckludGVybmFsKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSk7CisgICAgYm9vbCBpc1NhZmVSZXF1ZXN0SGVhZGVyKGNvbnN0IFN0cmluZyYpIGNvbnN0
OwogCiAgICAgdm9pZCBjaGFuZ2VTdGF0ZShTdGF0ZSBuZXdTdGF0ZSk7CiAgICAgdm9pZCBjYWxs
UmVhZHlTdGF0ZUNoYW5nZUxpc3RlbmVyKCk7CkBAIC0xNjAsNiArMTYyLDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGxvYWRSZXF1ZXN0U3luY2hyb25vdXNseShSZXNvdXJjZVJlcXVlc3QmLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCBsb2FkUmVxdWVzdEFzeW5jaHJvbm91c2x5KFJlc291cmNl
UmVxdWVzdCYpOwogCisgICAgYm9vbCBpc09uQWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hp
dGVsaXN0KGNvbnN0IFN0cmluZyYpIGNvbnN0OworCiAgICAgYm9vbCBpc1NpbXBsZUNyb3NzU2l0
ZUFjY2Vzc1JlcXVlc3QoKSBjb25zdDsKICAgICBTdHJpbmcgYWNjZXNzQ29udHJvbE9yaWdpbigp
IGNvbnN0OwogICAgIGJvb2wgYWNjZXNzQ29udHJvbENoZWNrKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKQEAgLTIyNiw2ICsyMzAsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHVuc2lnbmVkIG1f
bGFzdFNlbmRMaW5lTnVtYmVyOwogICAgIFN0cmluZyBtX2xhc3RTZW5kVVJMOworICAgIFhNTEh0
dHBSZXF1ZXN0U3RhdGljRGF0YSogbV9zdGF0aWNfZGF0YTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25568</attachid>
            <date>2008-11-28 01:14:29 -0800</date>
            <delta_ts>2008-11-28 01:22:58 -0800</delta_ts>
            <desc>Another revision.  I think it is close.</desc>
            <filename>RemoveStaticFromXHR-rev5.txt</filename>
            <type>text/plain</type>
            <size>9488</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODgyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDgtMTEtMjggIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI0CisKKyAgICAgICAgTWFk
ZSBzdGF0aWMgaW5pdGlhbGl6YXRpb25zIGluIFhNTEh0dHBSZXF1ZXN0LmNwcCB0aHJlYWQtc2Fm
ZSBpbiBwcmVwYXJhdGlvbiBmb3IgdXNhZ2UKKyAgICAgICAgb2YgWE1MSHR0cFJlcXVlc3QgYnkg
V29ya2VycyAob24gdGhyZWFkcykuCisKKyAgICAgICAgTm8gb2JzZXJ2YWJsZSBjaGFuZ2UgaW4g
YmVoYXZpb3IsIHNvIG5vIHRlc3QuCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhOjpYTUxIdHRwUmVx
dWVzdFN0YXRpY0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UHJlZmxpZ2h0UmVzdWx0Q2FjaGVJ
dGVtOjphbGxvd3NDcm9zc1NpdGVNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6UHJlZmxpZ2h0
UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NDcm9zc1NpdGVIZWFkZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6aW5pdGlhbGl6ZVhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6OmlzU2FmZVJlcXVlc3RIZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6OmlzT25BY2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QpOgor
ICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorCiAyMDA4LTExLTI3ICBDYW1lcm9uIFp3
YXJpY2ggIDx6d2FyaWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuCkluZGV4
OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZpc2lvbiAzODgyNikKKysrIFdlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsNDIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+
IEhlYWRlcnNTZXQ7CiAKK3N0cnVjdCBYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGEgeworICAgIFhN
TEh0dHBSZXF1ZXN0U3RhdGljRGF0YSgpOworICAgIFN0cmluZyBtX3Byb3h5SGVhZGVyUHJlZml4
OworICAgIFN0cmluZyBtX3NlY0hlYWRlclByZWZpeDsKKyAgICBIYXNoU2V0PFN0cmluZywgQ2Fz
ZUZvbGRpbmdIYXNoPiBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzOworICAgIEhhc2hTZXQ8U3Ry
aW5nLCBDYXNlRm9sZGluZ0hhc2g+IG1fYWxsb3dlZENyb3NzU2l0ZVJlc3BvbnNlSGVhZGVyczsK
K307CisKK1hNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YTo6WE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRh
KCkKKyAgICA6IG1fcHJveHlIZWFkZXJQcmVmaXgoInByb3h5LSIpCisgICAgLCBtX3NlY0hlYWRl
clByZWZpeCgic2VjLSIpCit7CisgICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQoImFj
Y2VwdC1jaGFyc2V0Iik7CisgICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQoImFjY2Vw
dC1lbmNvZGluZyIpOworICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJjb25uZWN0
aW9uIik7CisgICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQoImNvbnRlbnQtbGVuZ3Ro
Iik7CisgICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQoImNvbnRlbnQtdHJhbnNmZXIt
ZW5jb2RpbmciKTsKKyAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgiZGF0ZSIpOwor
ICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJleHBlY3QiKTsKKyAgICBtX2ZvcmJp
ZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgiaG9zdCIpOworICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhl
YWRlcnMuYWRkKCJrZWVwLWFsaXZlIik7CisgICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5h
ZGQoInJlZmVyZXIiKTsKKyAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgidGUiKTsK
KyAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgidHJhaWxlciIpOworICAgIG1fZm9y
YmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJ0cmFuc2Zlci1lbmNvZGluZyIpOworICAgIG1fZm9y
YmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJ1cGdyYWRlIik7CisgICAgbV9mb3JiaWRkZW5SZXF1
ZXN0SGVhZGVycy5hZGQoInZpYSIpOworCisgICAgbV9hbGxvd2VkQ3Jvc3NTaXRlUmVzcG9uc2VI
ZWFkZXJzLmFkZCgiY2FjaGUtY29udHJvbCIpOworICAgIG1fYWxsb3dlZENyb3NzU2l0ZVJlc3Bv
bnNlSGVhZGVycy5hZGQoImNvbnRlbnQtbGFuZ3VhZ2UiKTsKKyAgICBtX2FsbG93ZWRDcm9zc1Np
dGVSZXNwb25zZUhlYWRlcnMuYWRkKCJjb250ZW50LXR5cGUiKTsKKyAgICBtX2FsbG93ZWRDcm9z
c1NpdGVSZXNwb25zZUhlYWRlcnMuYWRkKCJleHBpcmVzIik7CisgICAgbV9hbGxvd2VkQ3Jvc3NT
aXRlUmVzcG9uc2VIZWFkZXJzLmFkZCgibGFzdC1tb2RpZmllZCIpOworICAgIG1fYWxsb3dlZENy
b3NzU2l0ZVJlc3BvbnNlSGVhZGVycy5hZGQoInByYWdtYSIpOworfQorCiBjbGFzcyBQcmVmbGln
aHRSZXN1bHRDYWNoZUl0ZW0gOiBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CiAgICAgUHJlZmxpZ2h0
UmVzdWx0Q2FjaGVJdGVtKGJvb2wgY3JlZGVudGlhbHMpCkBAIC02Nyw5ICsxMDMsOSBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgYm9vbCBwYXJzZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0g
ICAgYm9vbCBhbGxvd3NDcm9zc1NpdGVNZXRob2QoY29uc3QgU3RyaW5nJik7Ci0gICAgYm9vbCBh
bGxvd3NDcm9zc1NpdGVIZWFkZXJzKGNvbnN0IEhUVFBIZWFkZXJNYXAmKTsKLSAgICBib29sIGFs
bG93c1JlcXVlc3QoYm9vbCBpbmNsdWRlQ3JlZGVudGlhbHMsIGNvbnN0IFN0cmluZyYgbWV0aG9k
LCBjb25zdCBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycyk7CisgICAgYm9vbCBhbGxvd3ND
cm9zc1NpdGVNZXRob2QoY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgYm9vbCBhbGxvd3NDcm9z
c1NpdGVIZWFkZXJzKGNvbnN0IEhUVFBIZWFkZXJNYXAmKSBjb25zdDsKKyAgICBib29sIGFsbG93
c1JlcXVlc3QoYm9vbCBpbmNsdWRlQ3JlZGVudGlhbHMsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBj
b25zdCBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycykgY29uc3Q7CiAKIHByaXZhdGU6CiAg
ICAgdGVtcGxhdGU8Y2xhc3MgSGFzaFR5cGU+CkBAIC0xMDMsNTQgKzEzOSwxMSBAQCBwcml2YXRl
OgogICAgIE11dGV4IG1fbXV0ZXg7CiB9OwogCi1zdGF0aWMgYm9vbCBpc1NhZmVSZXF1ZXN0SGVh
ZGVyKGNvbnN0IFN0cmluZyYgbmFtZSkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhlYWRl
cnNTZXQsIGZvcmJpZGRlbkhlYWRlcnMsICgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgcHJveHlTdHJpbmcsICgicHJveHktIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBzZWNTdHJpbmcsICgic2VjLSIpKTsKLSAgICAKLSAgICBpZiAoZm9yYmlkZGVuSGVh
ZGVycy5pc0VtcHR5KCkpIHsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImFjY2VwdC1j
aGFyc2V0Iik7Ci0gICAgICAgIGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJhY2NlcHQtZW5jb2Rpbmci
KTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImNvbm5lY3Rpb24iKTsKLSAgICAgICAg
Zm9yYmlkZGVuSGVhZGVycy5hZGQoImNvbnRlbnQtbGVuZ3RoIik7Ci0gICAgICAgIGZvcmJpZGRl
bkhlYWRlcnMuYWRkKCJjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nIik7Ci0gICAgICAgIGZvcmJp
ZGRlbkhlYWRlcnMuYWRkKCJkYXRlIik7Ci0gICAgICAgIGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJl
eHBlY3QiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoImhvc3QiKTsKLSAgICAgICAg
Zm9yYmlkZGVuSGVhZGVycy5hZGQoImtlZXAtYWxpdmUiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVh
ZGVycy5hZGQoInJlZmVyZXIiKTsKLSAgICAgICAgZm9yYmlkZGVuSGVhZGVycy5hZGQoInRlIik7
Ci0gICAgICAgIGZvcmJpZGRlbkhlYWRlcnMuYWRkKCJ0cmFpbGVyIik7Ci0gICAgICAgIGZvcmJp
ZGRlbkhlYWRlcnMuYWRkKCJ0cmFuc2Zlci1lbmNvZGluZyIpOwotICAgICAgICBmb3JiaWRkZW5I
ZWFkZXJzLmFkZCgidXBncmFkZSIpOwotICAgICAgICBmb3JiaWRkZW5IZWFkZXJzLmFkZCgidmlh
Iik7Ci0gICAgfQotICAgIAotICAgIHJldHVybiAhZm9yYmlkZGVuSGVhZGVycy5jb250YWlucyhu
YW1lKSAmJiAhbmFtZS5zdGFydHNXaXRoKHByb3h5U3RyaW5nLCBmYWxzZSkgJiYKLSAgICAgICAg
ICAgIW5hbWUuc3RhcnRzV2l0aChzZWNTdHJpbmcsIGZhbHNlKTsKLX0KLQogc3RhdGljIGJvb2wg
aXNPbkFjY2Vzc0NvbnRyb2xTaW1wbGVSZXF1ZXN0SGVhZGVyV2hpdGVsaXN0KGNvbnN0IFN0cmlu
ZyYgbmFtZSkKIHsKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgImFjY2VwdCIp
IHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJhY2NlcHQtbGFuZ3VhZ2UiKSB8fCBlcXVhbEln
bm9yaW5nQ2FzZShuYW1lLCAiY29udGVudC10eXBlIik7CiB9CiAKLXN0YXRpYyBib29sIGlzT25B
Y2Nlc3NDb250cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJiBuYW1lKQot
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGVhZGVyc1NldCwgYWxsb3dlZEhlYWRlcnMsICgp
KTsKLSAgICBpZiAoYWxsb3dlZEhlYWRlcnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGFsbG93ZWRI
ZWFkZXJzLmFkZCgiY2FjaGUtY29udHJvbCIpOwotICAgICAgICBhbGxvd2VkSGVhZGVycy5hZGQo
ImNvbnRlbnQtbGFuZ3VhZ2UiKTsKLSAgICAgICAgYWxsb3dlZEhlYWRlcnMuYWRkKCJjb250ZW50
LXR5cGUiKTsKLSAgICAgICAgYWxsb3dlZEhlYWRlcnMuYWRkKCJleHBpcmVzIik7Ci0gICAgICAg
IGFsbG93ZWRIZWFkZXJzLmFkZCgibGFzdC1tb2RpZmllZCIpOwotICAgICAgICBhbGxvd2VkSGVh
ZGVycy5hZGQoInByYWdtYSIpOwotICAgIH0KLQotICAgIHJldHVybiBhbGxvd2VkSGVhZGVycy5j
b250YWlucyhuYW1lKTsKLX0KLQogLy8gRGV0ZXJtaW5lcyBpZiBhIHN0cmluZyBpcyBhIHZhbGlk
IHRva2VuLCBhcyBkZWZpbmVkIGJ5CiAvLyAidG9rZW4iIGluIHNlY3Rpb24gMi4yIG9mIFJGQyAy
NjE2Lgogc3RhdGljIGJvb2wgaXNWYWxpZFRva2VuKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTI1
MywxMiArMjQ2LDEyIEBAIGJvb2wgUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjpwYXJzZShjb24K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBQcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OmFs
bG93c0Nyb3NzU2l0ZU1ldGhvZChjb25zdCBTdHJpbmcmIG1ldGhvZCkKK2Jvb2wgUHJlZmxpZ2h0
UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NDcm9zc1NpdGVNZXRob2QoY29uc3QgU3RyaW5nJiBtZXRo
b2QpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbWV0aG9kcy5jb250YWlucyhtZXRob2QpIHx8IG1l
dGhvZCA9PSAiR0VUIiB8fCBtZXRob2QgPT0gIlBPU1QiOwogfQogCi1ib29sIFByZWZsaWdodFJl
c3VsdENhY2hlSXRlbTo6YWxsb3dzQ3Jvc3NTaXRlSGVhZGVycyhjb25zdCBIVFRQSGVhZGVyTWFw
JiByZXF1ZXN0SGVhZGVycykKK2Jvb2wgUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3ND
cm9zc1NpdGVIZWFkZXJzKGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFkZXJzKSBjb25z
dAogewogICAgIEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHJlcXVlc3RIZWFk
ZXJzLmVuZCgpOwogICAgIGZvciAoSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBy
ZXF1ZXN0SGVhZGVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKQEAgLTI2OCw3ICsyNjEs
NyBAQCBib29sIFByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzQ3JvCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NSZXF1ZXN0
KGJvb2wgaW5jbHVkZUNyZWRlbnRpYWxzLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgSFRU
UEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpCitib29sIFByZWZsaWdodFJlc3VsdENhY2hlSXRl
bTo6YWxsb3dzUmVxdWVzdChib29sIGluY2x1ZGVDcmVkZW50aWFscywgY29uc3QgU3RyaW5nJiBt
ZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFkZXJzKSBjb25zdAogewogICAg
IGlmIChtX2Fic29sdXRlRXhwaXJ5VGltZSA8IGN1cnJlbnRUaW1lKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTMxMCw2ICszMDMsMjEgQEAgYm9vbCBQcmVmbGlnaHRSZXN1bHRDYWNoZTo6
Y2FuU2tpcFByZWZsaQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIFhNTEh0dHBSZXF1
ZXN0U3RhdGljRGF0YSogc3RhdGljRGF0YSA9IDA7CisKK3N0YXRpYyBYTUxIdHRwUmVxdWVzdFN0
YXRpY0RhdGEqIGNyZWF0ZVhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSgpCit7CisgICAgc3RhdGlj
RGF0YSA9IG5ldyBYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGE7CisgICAgcmV0dXJuIHN0YXRpY0Rh
dGE7Cit9CisKK3N0YXRpYyBYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGEqIGluaXRpYWxpemVYTUxI
dHRwUmVxdWVzdFN0YXRpY0RhdGEoKQoreworICAgIC8vIFVzZXMgZHVtbXkgdG8gYXZvaWQgd2Fy
bmluZ3MgYWJvdXQgYW4gdW51c2VkIHZhcmlhYmxlLgorICAgIEF0b21pY2FsbHlJbml0aWFsaXpl
ZFN0YXRpYyhYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGEqLCBkdW1teSA9IGNyZWF0ZVhNTEh0dHBS
ZXF1ZXN0U3RhdGljRGF0YSgpKTsKKyAgICByZXR1cm4gZHVtbXk7Cit9CisKIFhNTEh0dHBSZXF1
ZXN0OjpYTUxIdHRwUmVxdWVzdChEb2N1bWVudCogZG9jKQogICAgIDogQWN0aXZlRE9NT2JqZWN0
KGRvYywgdGhpcykKICAgICAsIG1fYXN5bmModHJ1ZSkKQEAgLTMyNiw2ICszMzQsNyBAQCBYTUxI
dHRwUmVxdWVzdDo6WE1MSHR0cFJlcXVlc3QoRG9jdW1lbnQqCiAgICAgLCBtX2xhc3RTZW5kTGlu
ZU51bWJlcigwKQogewogICAgIEFTU0VSVChkb2N1bWVudCgpKTsKKyAgICBpbml0aWFsaXplWE1M
SHR0cFJlcXVlc3RTdGF0aWNEYXRhKCk7CiB9CiAKIFhNTEh0dHBSZXF1ZXN0Ojp+WE1MSHR0cFJl
cXVlc3QoKQpAQCAtMTAwMSw2ICsxMDEwLDEyIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFJl
cXVlc3RIZWFkZXJJbnQKICAgICAgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgKz0gIiwgIiArIHZh
bHVlOwogfQogCitib29sIFhNTEh0dHBSZXF1ZXN0Ojppc1NhZmVSZXF1ZXN0SGVhZGVyKGNvbnN0
IFN0cmluZyYgbmFtZSkgY29uc3QKK3sKKyAgICByZXR1cm4gIXN0YXRpY0RhdGEtPm1fZm9yYmlk
ZGVuUmVxdWVzdEhlYWRlcnMuY29udGFpbnMobmFtZSkgJiYgIW5hbWUuc3RhcnRzV2l0aChzdGF0
aWNEYXRhLT5tX3Byb3h5SGVhZGVyUHJlZml4LCBmYWxzZSkKKyAgICAgICAgJiYgIW5hbWUuc3Rh
cnRzV2l0aChzdGF0aWNEYXRhLT5tX3NlY0hlYWRlclByZWZpeCwgZmFsc2UpOworfQorCiBTdHJp
bmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlcXVlc3RIZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lKSBj
b25zdAogewogICAgIHJldHVybiBtX3JlcXVlc3RIZWFkZXJzLmdldChuYW1lKTsKQEAgLTEwNjQs
NiArMTA3OSwxMSBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyCiAg
ICAgcmV0dXJuIG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKG5hbWUpOwogfQogCitib29sIFhN
TEh0dHBSZXF1ZXN0Ojppc09uQWNjZXNzQ29udHJvbFJlc3BvbnNlSGVhZGVyV2hpdGVsaXN0KGNv
bnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljRGF0YS0+bV9hbGxv
d2VkQ3Jvc3NTaXRlUmVzcG9uc2VIZWFkZXJzLmNvbnRhaW5zKG5hbWUpOworfQorCiBTdHJpbmcg
WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlTUlNRVR5cGUoKSBjb25zdAogewogICAgIFN0cmluZyBt
aW1lVHlwZSA9IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobV9taW1lVHlwZU92ZXJyaWRl
KTsKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAkocmV2aXNpb24gMzg4MjYpCisrKyBXZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNiArMTQwLDcgQEAgcHJp
dmF0ZToKIAogICAgIFN0cmluZyBnZXRSZXF1ZXN0SGVhZGVyKGNvbnN0IFN0cmluZyYgbmFtZSkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRSZXF1ZXN0SGVhZGVySW50ZXJuYWwoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICBib29sIGlzU2FmZVJlcXVlc3RIZWFkZXIo
Y29uc3QgU3RyaW5nJikgY29uc3Q7CiAKICAgICB2b2lkIGNoYW5nZVN0YXRlKFN0YXRlIG5ld1N0
YXRlKTsKICAgICB2b2lkIGNhbGxSZWFkeVN0YXRlQ2hhbmdlTGlzdGVuZXIoKTsKQEAgLTE2MCw2
ICsxNjEsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9hZFJlcXVlc3RTeW5jaHJvbm91c2x5KFJl
c291cmNlUmVxdWVzdCYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0QXN5
bmNocm9ub3VzbHkoUmVzb3VyY2VSZXF1ZXN0Jik7CiAKKyAgICBib29sIGlzT25BY2Nlc3NDb250
cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJikgY29uc3Q7CisKICAgICBi
b29sIGlzU2ltcGxlQ3Jvc3NTaXRlQWNjZXNzUmVxdWVzdCgpIGNvbnN0OwogICAgIFN0cmluZyBh
Y2Nlc3NDb250cm9sT3JpZ2luKCkgY29uc3Q7CiAgICAgYm9vbCBhY2Nlc3NDb250cm9sQ2hlY2so
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwo=
</data>
<flag name="review"
          id="11898"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>